哈工大C语言课程设计报告
c语言课程设计报告详细版

c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。
2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。
3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。
4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。
技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。
2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。
3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。
4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。
2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。
3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。
4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。
课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。
学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。
教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。
2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。
3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。
二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。
c语言课程设计报告文档

c语言课程设计报告文档一、课程目标知识目标:1. 理解C语言的基本语法和程序结构,掌握变量定义、数据类型、运算符、表达式等基本概念;2. 学会使用C语言进行顺序结构、分支结构、循环结构的编程,并能运用这些结构解决实际问题;3. 掌握C语言数组和字符串的使用,熟练运用数组进行数据处理;4. 了解C语言函数的定义与调用,学会编写简单的函数,理解函数参数、返回值等概念;5. 了解C语言指针的基本概念,学会使用指针进行内存操作和数据传递。
技能目标:1. 培养学生运用C语言编程解决实际问题的能力;2. 培养学生具有良好的编程习惯,如代码规范、注释清晰等;3. 提高学生调试程序、查找并解决问题的能力;4. 培养学生团队协作能力,学会与他人共同完成项目。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神;2. 培养学生面对编程困难时,具有坚持不懈、勇于克服的品质;3. 增强学生的自信心,使其在编程实践中感受到成就感;4. 引导学生认识到编程对于社会发展的重要性,培养其社会责任感。
本课程旨在让学生掌握C语言的基本知识和技能,培养其编程思维和解决问题的能力,同时注重培养其情感态度价值观,使其成为具有全面素质的计算机编程人才。
在教学过程中,根据学生的年龄特点和认知水平,采用任务驱动的教学方法,以实例为主线,引导学生主动参与、探究学习。
通过课程学习,使学生能够具备一定的编程基础,为后续学习打下坚实基础。
二、教学内容本章节教学内容围绕C语言基础知识,结合课程目标,制定以下教学大纲:1. C语言概述- 了解C语言发展史、特点和应用领域;- 掌握C语言程序的基本结构。
2. 数据类型、变量和常量- 学习基本数据类型(整型、浮点型、字符型);- 掌握变量的定义、赋值和作用域;- 理解常量的概念及其使用。
3. 运算符与表达式- 掌握算术、关系、逻辑运算符及其优先级;- 学习表达式的构成和计算。
4. 顺序结构程序设计- 学习C语言程序的基本输入输出函数;- 编写简单的顺序结构程序。
C语言程序设计课程设计报告

C语言程序设计课程设计报告1. 引言C语言程序设计是计算机科学与技术领域中一门重要的课程。
本报告旨在总结并展示我在该课程中的设计项目。
该项目要求我们使用C 语言设计并实现一个具有特定功能的程序。
2. 项目背景本项目的背景是为了帮助学生加深对C语言的理解和应用。
通过实践项目,我们可以更好地掌握C语言的语法和技巧,提升我们的编程能力。
3. 项目目标本项目的目标是设计一个简单的学生成绩管理系统。
该系统可以实现以下功能:- 输入学生的姓名和成绩;- 计算学生的平均成绩和总成绩;- 根据学生成绩进行排序;- 输出学生成绩单。
4. 设计思路为了实现项目的目标,我采取了以下设计思路:- 使用结构体来保存学生的信息,每个结构体包括学生的姓名和成绩;- 使用数组来保存学生的信息,数组的每个元素对应一个学生的信息;- 使用循环和条件语句来实现用户界面和功能选项;- 使用排序算法对学生成绩进行排序。
5. 程序设计与实现在程序的设计与实现过程中,我首先定义了学生信息的结构体,并声明了相应的全局变量和函数。
接着,我编写了主函数,其中包括用户界面的显示和功能选项的处理。
用户界面的显示采用了简洁美观的格式,每次显示菜单供用户选择相应的功能。
用户可以通过输入对应的数字来选择功能,并根据提示进行相应的操作。
在实现功能方面,我使用了循环来保证程序能够持续运行,直到用户选择退出。
根据用户的选择,程序会调用不同的函数来完成相应的功能,比如输入学生信息、计算平均成绩和总成绩、排序学生成绩等。
6. 测试与验证为了验证程序的正确性和稳定性,我进行了多次测试。
我输入了不同数量和不同范围的学生信息,以确保程序能够正确处理各种情况下的数据。
通过测试,我发现程序能够正常运行,实现了预期的功能。
输入的学生信息能够被正确保存、计算和排序,最终能够输出正确的学生成绩单。
7. 总结与展望通过本项目的设计与实现,我加深了对C语言的理解和应用,提升了我的编程能力。
c语言课程设计实验报告

c语言课程设计实验报告一、教学目标本课程的目标是让学生掌握C语言的基本语法、数据结构、算法和编程技巧,培养学生独立编程和解决问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和关键字。
–理解数据类型、变量、常量的概念及使用。
–熟悉运算符、表达式、语句的结构。
–学习函数的定义、声明和调用。
–掌握数组、指针、字符串的基本操作。
–了解结构体、共用体、枚举类型等数据结构。
–学习基本算法和排序、查找等常用算法。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。
–熟练使用集成开发环境(IDE)进行程序调试和运行。
–掌握编程规范和代码注释,编写可读性强的代码。
–学会使用函数模块化编程,提高代码重用性。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣,激发创新意识。
–培养学生的团队合作精神和自主学习能力。
–强化学生的编程实践能力,提高解决实际问题的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言基本语法和关键字。
2.数据类型、变量、常量的使用和声明。
3.运算符、表达式、语句的结构和用法。
4.函数的定义、声明和调用。
5.数组、指针、字符串的基本操作和应用。
6.结构体、共用体、枚举类型等数据结构的概念和使用。
7.基本算法和排序、查找等常用算法。
8.第一周:C语言基本语法和关键字。
9.第二周:数据类型、变量、常量的使用和声明。
10.第三周:运算符、表达式、语句的结构和用法。
11.第四周:函数的定义、声明和调用。
12.第五周:数组、指针、字符串的基本操作和应用。
13.第六周:结构体、共用体、枚举类型等数据结构的概念和使用。
14.第七周:基本算法和排序、查找等常用算法。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:教师通过讲解、示例等方式,向学生传授C语言的基本知识和编程技巧。
2.讨论法:教师引导学生进行问题讨论,培养学生的编程思维和解决问题的能力。
哈工大威海c语言实验报告

哈工大威海c语言实验报告
哈工大威海C语言实验报告
在哈工大威海的C语言实验中,学生们通过实验课程深入了解了C语言的基本
概念和编程技巧。
本次实验报告将介绍实验的内容、过程和结果,以及学生们
的收获和体会。
实验内容主要包括C语言的基本语法、数据类型、运算符、控制语句、函数和
数组等内容。
学生们在实验课上通过实际编程操作,掌握了C语言的基本编程
技巧和方法,深入理解了C语言的特点和应用。
在实验过程中,学生们通过编写简单的程序,如求解两个数的和、差、积、商等,加深了对C语言基本语法和运算符的理解;通过编写控制语句和循环语句,如if语句、switch语句、while循环、for循环等,加深了对程序流程控制的理解;通过编写函数和数组,加深了对模块化编程和数据结构的理解。
实验结果表明,学生们在实验课上取得了较好的成绩,通过实际操作和编程练习,加深了对C语言的理解和掌握,提高了编程能力和解决问题的能力。
通过本次实验,学生们不仅学到了C语言的基本知识和技能,还培养了团队合
作精神和创新意识,提高了解决问题的能力和实际操作的能力。
实验课程的设
计和实施,为学生们提供了一个良好的学习平台,促进了他们的综合素质和能
力的提高。
总之,哈工大威海C语言实验报告是一次成功的实验课程,学生们通过实际操
作和编程练习,深入理解了C语言的基本概念和编程技巧,取得了较好的成绩,提高了编程能力和解决问题的能力。
这将为他们今后的学习和工作打下坚实的
基础。
哈工大 C语言实验报告(答案)

实验1简单C 程序设计2、将下列由程序流程图描述的算法,转换为C 源代码并填写到图1-3b 框中,然后输入计算机并运行后并分析其运行结果(本小题2分)。
图1-3a 程序流程图图1-3bC 源程序3、项目编程(本小题12分)(1)请向计算机输入a,b,c 三个值,经过程序处理后,要求输出其中最大的一个。
/*C 语言源代码*/main(){}项目要求:①画出程序流程图;②根据流程图编写程序图1-4a 程序流程图图1-4b C 源程序(2)请向计算机输入a,b,c 三个值,经过程序处理后,要求按值从小到大输出。
项目要求:①画出程序流程图;②根据流程图编写程序/*输出最大值*/main(){}项目提示:①可采用if结构;②a,b,c由scanf函数输入程序流程图/*将a,b,c三个值由小到大输出*/main(){}1-5a程序流程图图1-5b C源程序(3)编程实现打印下列由字母组成的树形。
说明:本项目编程的知识点是让学生对双重循环语句结构的理解,清楚双重循环的特点(即当外循环变量中的值变化一次时,则内循环变量中的值要变化若干次)。
提示:可用外循环变量代表行数;内循环变量代表需打印字符的个数。
难点:①字符个数是按奇数变化递增②左右边界字符打印的位置图1-6a字母A-G组成的树形/*打印图形*/main(){}图1-6b C源程序(4)设计报选体育科目统计程序设某学校在新生入学时,需报选体育选修科目。
体育科目包括:篮球、排球、体操、兵乓球和网球。
请为某班级(30人)统计报选各体育科目人数。
项目要求:①画出程序流程图;②根据流程图编写源程序项目提示:可采用switch与for结构程序流程图C语言源代码main(){}图1-7a程序流程图图1-7b C 源程序实验2数组与排序五、项目编程(本题12分,每小题4分)1、将下列一组数读入到a 数组中,然后从a数组中找出其中最大的元素并与第一个数互换;然后从a数组中找出最小的元素并与最后一个数互换,而其余元素的位置不变。
课程设计报告模板c语言

课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。
学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。
教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。
在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。
将课程目标分解为具体的学习成果,以便于后续教学设计和评估。
二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。
C语言程序设计课程设计报告——尹航、赵增阳组

哈尔滨工业大学英才学院2012本科《C语言程序设计课程设计》报告项目题目:哈弗曼编码问题班级:1236007项目组编号:班第组项目组成员:姓名学号尹航6123310701赵增阳6123310704指导教师:赵玲玲开始日期:2013年5月28日完成日期:2013年6月20日哈工大软件学院2008级本科《综合课程设计》报告目录2012级本科《C语言程序设计课程设计》评价表 (1)哈尔滨工业大学课程设计任务书 (2)第1部分项目开发计划 (4)第2部分系统分析 (5)第3部分系统设计 ............................................................. 错误!未定义书签。
第4部分系统实现及测试 .. (8)第5部分项目总结 (9)参考文献 (14)附录 (14)哈工大软件学院2008级本科《综合课程设计》报告2012级本科《C语言程序设计课程设计》评价表- 1 -哈工大软件学院2008级本科《综合课程设计》报告哈尔滨工业大学课程设计任务书- 2 -哈工大软件学院2008级本科《综合课程设计》报告- 3 -哈工大软件学院2008级本科《综合课程设计》报告第1部分项目开发计划1.1 项目要完成的工作(1)根据用户给出的文件(book.txt),将其中的数据压缩为哈弗曼编码表示数据文件。
本项目要完成实现此功能程序的制作。
(2)生成字符与哈夫曼编码的对照表,以及用哈夫曼编码表示数据的文件1.2 项目分工表1-2-1 项目分工1.3项目计划安排表1-3-1 项目计划安排- 4 -哈工大软件学院2008级本科《综合课程设计》报告第2部分系统分析2.1 系统需要的功能与性能2.1.1 系统需要的功能(1)可以根据用户给出的文件生成对应的哈夫曼码(2)根据生成的哈夫曼码压缩用户给出的文件(3)将生成的哈夫曼码和压缩后的文件分别打印到文件2.1.2 系统需要的性能(1)快速生成所需的哈夫曼码;(2)根据生成的哈夫曼码快速无误的压缩指定文件2.2 系统重点、难点·哈夫曼树构建:(1)对哈夫曼树的理解(2)确定父代和它的两个儿代结点关系与位置的确定(3)找到合适的变量储存哈夫曼树(4)根据给定的文章构建哈夫曼树·文件输出:(1)确定每个字符对应的哈弗曼编码每一位的值:由子代节点块与其父代的关系(leftchild or rightchild)来确定子代层到父代层的路径应取0(leftchild)还是1(rightchild)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
H a r b i n I n s t i t u t e o f T e c h n o l o g y课程设计说明书(论文)课程名称: C语言课程设计设计题目:音乐程序与波特图院系:航天学院控制科学与工程系班级:设计者:学号:指导教师:设计时间:哈尔滨工业大学教务处哈尔滨工业大学课程设计任务书题目一1.1题目详细描述:播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。
1.2程序设计思路及流程图:1.3#include <stdio.h>#include <dos.h>#include <stdlib.h>#include <time.h>#include <bios.h>#include <conio.h>#define N1 16#define N2 8#define N4 4#define N8 2#define N16 1#define END 0void playmusic(int n,int *c);void typemusic();enum NOTES{C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494,C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988,C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10};typedef enum NOTES SONG;SONG song1[]={C0,N4+N2,E0,N4,G0,N2,G0,N2,A0,N1,G0,N1,E0,N4+N2,C0,N4,G0,N1/3,G0,N1/3,G0,N1/3,E0,N1,C0,N1,G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,C0,N1,END,END};SONG song2[]={A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,E1,N1,B0,N1+N1,S,N1,E0,N1,A0,N1+N2,G0,N2,A0,N1,C1,N1,G0,N1+N1,S,N1,E0,N2,E0,N2,F0,N1+N2,E0,N2,F0,N1,C0,N1,E0,N1+N1,S,N1,C1,N2,C1,N2,B0,N1+N2,370, N2,F0,N1,B0,N1,B0,N1+N2,S,N1,A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1, E1,N1,B0,N1+N2,END,END};int main(){int m,n,c=1;char b='y';while(b=='y'){printf("Hello,what do you want to do by this program?\n");printf("1.Listen to music.-------Press 1\n");printf("2.Play music by yourself.-------Press 2\n");scanf("%d",&m);while(m!=1&&m!=2&&m!=3) /*选择方式*/{printf("You typed wrong!Do not push me around.:(\n");scanf("%d",&m);}if(m==1){printf("I have two musics,choose one!(Press 1/2)\n");scanf("%d",&n);while(n!=1&&n!=2){printf("You typed wrong!Do not push me around.:(\n");scanf("%d",&n);}playmusic(n,&c);}else if(m==2){typemusic();}getchar();printf("Do you want to continue?(y/n)\n");scanf("%c",&b);}return 0;}void playmusic(int n,int *c){int note=0,fre,dur,control;char d;clock_t goal;if(n==1){while(song1[note]!=END){fre=*c*song1[note];dur=song1[note+1];if(kbhit()) break;if(fre){ /*若频率值fre非0*/outportb(0x43,0xb6); /*初始化2号定时器 */fre=(unsigned)(1193180L/fre); /*计算计数初值 */outportb(0x42,(char)fre); /*先写计数初值的低8位*/outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/control=inportb(0x61); /*读0x61的状态*/outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ }goal=(clock_t)dur+clock( );while(goal>clock( ));if(dur)outportb(0x61,control);note+=2;}}else{while(song2[note]!=END){fre=*c*song2[note];dur=song2[note+1];if(kbhit()) break;if(fre){ /*若频率值fre非0*/outportb(0x43,0xb6); /*初始化2号定时器 */fre=(unsigned)(1193180L/fre); /*计算计数初值 */outportb(0x42,(char)fre); /*先写计数初值的低8位*/outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/control=inportb(0x61); /*读0x61的状态*/outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ }goal=(clock_t)dur+clock( );while(goal>clock( ));if(dur)outportb(0x61,control);note+=2;}}getchar();printf("Do you want to raise/lower the frequency? Press r/l\nIf you do not want press n\n"); scanf("%c",&d);if(d=='r')*c*=2;else if(d=='l')*c*=0.5;else if(d=='n')*c=*c;}void typemusic(){char ch;clock_t goal;int fre=0,control,dur=2;printf("Play your own music!\n(You can play on the keyboard by pressing Z-M,A-J,Q-U,1-7)\n"); printf("If you are bored press /\n");do{ch=getch();if(ch=='/');else{switch(ch){case 'z':fre=C10;break;case 'x':fre=D10;break;case 'c':fre=E10;break;case 'v':fre=F10;break;case 'b':fre=G10;break;case 'n':fre=A10;break;case 'm':fre=B10;break;case 'a':fre=C0;break;case 's':fre=D0;break;case 'd':fre=E0;break;case 'f':fre=F0;break;case 'g':fre=G0;break;case 'h':fre=A0;break;case 'j':fre=B0;break;case 'q':fre=C1;break;case 'w':fre=D1;break;case 'e':fre=E1;break;case 'r':fre=F1;break;case 't':fre=G1;break;case 'y':fre=A1;break;case 'u':fre=B1;break;case '1':fre=C2;break;case '2':fre=D2;break;case '3':fre=E2;break;case '4':fre=F2;break;case '5':fre=G2;break;case '6':fre=A2;break;case '7':fre=B2;break;default:printf("You typed wrong!Do not push me around.:(\n");}}if(fre){ /*若频率值fre非0*/outportb(0x43,0xb6); /*初始化2号定时器 */fre=(unsigned)(1193180L/fre); /*计算计数初值 */outportb(0x42,(char)fre); /*先写计数初值的低8位*/outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/control=inportb(0x61); /*读0x61的状态*/outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/}goal=(clock_t)dur+clock( ); /* clock()是计时函数,而与其相关的数据类型是clock_t,返回当前程序占用的CPU时间,用clock()返回的值除于CLOCK_PER_SEC常量可以得到当前程序的运行时间,单位是秒 */while(goal>clock( ));if(dur)outportb(0x61,control);}while (ch!='/');}1.4程序运行结果及自评:1.5程序调试中遇到过的问题及解决办法在编辑弹奏的程序时,没有弄明白延时函数,无法让按键发声,后来明白了延时函数的原理,把时长设成4,就可以了,还有就是按/时直接退出,后来把if放到前面,就解决了。