西文下拉菜单课程设计报告.doc

上传人:小飞机 文档编号:2793477 上传时间:2023-02-25 格式:DOC 页数:20 大小:122KB
返回 下载 相关 举报
西文下拉菜单课程设计报告.doc_第1页
第1页 / 共20页
西文下拉菜单课程设计报告.doc_第2页
第2页 / 共20页
西文下拉菜单课程设计报告.doc_第3页
第3页 / 共20页
西文下拉菜单课程设计报告.doc_第4页
第4页 / 共20页
西文下拉菜单课程设计报告.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《西文下拉菜单课程设计报告.doc》由会员分享,可在线阅读,更多相关《西文下拉菜单课程设计报告.doc(20页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上课程设计题目:西文下拉菜单的设计主要功能:1、完成一个类似TC集成系统菜单的西文下拉菜单的设计2、不要求实现各子菜单的功能要求:可以通过光标键的移动来选择不同的菜单项,被选择的菜单项反相显示,当选定某个菜单项后,按回车键可以实现一个简单的动作。设计目的:设计西文下拉菜单,运用所学的函数编程一个简单的西文下拉菜单。通过课程设计,加深对C语言的理解,锻炼查找资料、获取信息的能力,了解简单的数据结构和接口技术,增强大家的团队精神和凝聚力,了解初步的面向对象和软件工程知识。由一个简单的程序改编成一个复杂的程序是一件很不简单的事情。通过编程实践和实际应用,进一步熟悉和巩固C语言

2、语法知识和程序设计的基本方法; 利用适当形式的命题,了解结构化程序设计的方法,培养自顶而下、逐步细化的编程思维方式; 通过一定的文档要求,培养学生良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。C语言程序课程设计是我们在学习完C语言课程后集中安排的2周的实践技能训练环节。它的目的是通过实践环节的训练,使我们进一步加深对C语言知识的综合理解,提高C语言应用技能,并结合专业特点培养我们计算机程序的应用能力。总设计:(程序设计组成框图、流程图)程序设计组成框图主函数system(color 16);KK( )vMainMenu()File_PrintFileMenu()Edit_Pr

3、intFileMenu()Help_PrintFileMenu()our()Yy( )Yy1( )Yy2( )File_a_PrintFileMenu()le_ab_FiPrintFileMenu()File_abc_PrintFileMenu()Edit_a_PrintFileMenu()Edit_ab_PrintFileMenu()Edit_abc_PrintFileMenu()Help_a_PrintFileMenu()Help_ab_PrintFileMenu()Pp()Help_abc_PrintFileMenu()Pp()流程图File_a调用函数同(1)(1)调用函数开始主函数S

4、ystem( )KK( )VmainMune菜单F1菜单F2 菜单F 3 F菜单F4yy( )Pp( )调用函数File_abFile_abc调用上移fF4Our( )退出YN调用函数getch()=13YN跳出同(1)同(1)File_aFile_abFile_abc调用函数调用函数yy1( )yy2( )输出功能同(1)同(1)下移switch(getch(80)switch(getch(72)下移Pp( )getch()=13Pp( )getch()=13上移下移上移Edit_aEdit_abEdit_abcEdit_aEdit_abEdit_abcHelp_aHelp_ab.Help_

5、abcHelp_aHelp_abHelp_abc调用函数YN输出功能跳出(2)同(2) 同(2) 同(2) 同(2) 同(2)调用函数(3)同(3) 同(3) 同(3) 同(3) 同(3)输出功能跳出switch(getch(80)switch(getch(72)switch(getch(80)switch(getch(72)详细设计:(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)整个系统除了主函数外,另外还有将近十个函数,实现五大功能:输入功能、显示功能、输出功能、以及光标键的上下移动功能、跳出选项功能。各个函数的详细设计说明分别如下:1、 主函数 main()利用无限

6、次循环for(;)和system ()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。2、 命名函数 void .Menu()用void命名我们要做的菜单函数,如void File_PrintFileMenu();void Edit_PrintFileMenu();void Help_PrintFileMenu(); 等等,使接下来的函数调用能调用处我们制作的下拉菜单。 3、 按键函数 GetAsyncKeyState利用按键函数GetAsyncKeyState来控制程序,它组要负责对按键的识别和识别后的函数调用功能。4、 颜色调用函数 system(cls)利用system(cls

7、)的颜色调用函数,我们能从颜色库中调用各种颜色来制作我们的下拉菜单,使我们的下拉菜单更为简单化。5、 If else 语句在我们的程序中我们用到了ifelse语句来做判断作用,还用到了if语句的嵌套。应当注意if与else得配对关系。Else总是与它上面的最近的未配对的if配对。6、 Switch语句Switch语句是多分支选择语句。Switch后面括号内的“表达式”,ANSI标准允许它为任何类型;当表达式的值与某一个case后面的常量表达式的值相等时,就执行case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句;每一个case的常量表达

8、式的值必须互不相同;否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案);各个case和default得出现次序不影响执行结果;执行完一个case后面的语句后,流程控制转移到下一个case继续执行;总的说来,我们的程序就是用一些基本的函数语句制作成的,而我饿美女程序中的下拉菜单的边框本应该也使应函数语句来调用的,后来为方便找想,更使在网上看到一些C语言高手直接在程序上画出,我们就引用了他们的方法。但这个直接换出来的方法也不见得不是个很好的放法,简单还明了。接下来我就来说明这个程序中我扶着的模块吧。我们采用分模块设计程序,我们的这个西文下拉菜单程序分为三个模块,每个模块的功能基

9、本相同,只是执行的途径不同而已,下面我介绍一下模块三的功能。程序开始执行时,调用库函数里的函数system(color 16),用命令来执行平面的颜色。接着,继续执行,调用函数kk(),一开始执行函数kk(),就调用主菜单函数vmainmune(),执行时输出主菜单(File Edit Help Our),模块二的功能就是执行主菜单中的Edit的任务,输出Edit的下拉子菜单,并执行其子菜单的简单的功能。输出主菜单后,系统将调用库函数中的另一个函数GetAsyncKeyState(VK_F1), 选择按键F3,又调用函数Help_PrintFileMenu(),输出Help的下拉菜单。之后,返

10、回kk()函数,接着继续执行,调用函数yy()1,yy()1函数的功能就是对Help菜单的选项进行上下选择。在这里,同样调用了库函数中的函数GetAsyncKeyState(VK_F9),按一下下光标键键,调用函数Help_a_PrintFileMenu(),既输出对Edit第一个选项的选择,再调用函数PP(),如需要输出其功能,按一下Enter键,将输出其简单的功能,如不需输出其功能,调用PP()函数后,将不执行任何操作跳出PP()。对Edit菜单进行选择了一次,下光标键和上光标键将自加一,每按一下下光标键,菜单将向下选择一次。上光标键是向上选择键,其实现过程与向下选择的过程相同,每完成一次

11、向上选择,下光标键和上光标键将自减一,在你进行操作是出错时,按一下F11键,将调用库函数system(cls),其功能是对屏幕进行清屏,再调用kk()函数,回到显示主菜单的状态,继续你所需的操作。调试与测试:(调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。)调试方法,首先进行人工检查,在写好一个程序以后,而应对程序进行人工检查;接着在人工检查无误后,再上机调试,在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正;第三在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序

12、,有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以很容易判断结果正确与否。大多数错误都是逻辑上的错误,所以对这样的错误我们都会很仔细的检查和分析可以采用以下办法:1.将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。2.如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。3.也可以用“条件编译”命

13、令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不用再编译了,也不再被执行了)。这种方法可以不必一一去掉printf函数语句,以提高效率。4.如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。如有则改正之,接着修改程序。5.有的系统还提供debug(调试)工具,跟踪程序并给出相应信息在制作过称中,我们碰到很多问题。刚开始我们做的时候只是做出了一个而简单的下拉菜单,而且只能用F1控制第一个菜单的出现,而后面的菜单无论我们怎么改都弄不出F2的下拉菜单,那时候就郁闷了一天,终于在第二天农畜来下了菜单F2,F3等等都能控制的下拉菜单。在这

14、个制作过程中,我们遇到了函数命名不清楚还有逻辑上的错误。在经过我们严密的检查,一层层的逻辑检查,终于检查出了错误。通过课本上以及一些资料上的说明,我们把我们的程序改好了。虽然这个程序做出来不是最好的,但经过我们一段时间的努力还是做出了一些效果,相信只要再给我们一些时间,我们能把这个程序能得更加完美。软件使用说明:西文下拉菜单:这是一个简单的西文下拉菜单的软件,能输出一个主菜单,对应的菜单能输出子菜单,选中对应的选项后能执行简单的功能。在这个软件的设计中,一共采用了八个按键对它进行控制,每个按键都有对应的功能,下面对每个按键的功能进行说明:F1:按一下F1键,能弹出文件(file)的菜单。F2:

15、按一下F2键,能弹出编辑(edit)的菜单。F3:按一下F3键,能弹出帮助 (help) 的菜单。F4: 按一下F4键,能弹出开发成员的名字。下光标键:按一下下光标键,光标下移。上光标:按一下上光标键,光标上移。F11:挨一下F11键,返回主菜单。回车键:按一下回车键键,执行当前所选功能。课程设计心得与体会:做了两周的课程设计,有很多的,有关于C语言方面的,更多的是关于人与人之间关系方面的。我们组一共有三个人,我得到了另外两个同学以及其他同学的帮助。我想没有他们我可能都要放弃了,因为我本人对C语言也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。经过一个多星期的C语言课程设计,

16、感觉自己收获不少!首先是:链表本来上课是没有上的,但这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C语言的重要性。这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做

17、出一个中看不中用的程序或者软件。相信这次的课程设计为我以后继续从事计算机工作打了一个小小的开头。由于这是第一次进行设计,写文档,难免会写得不好!通过此次C语言程序设计实践,本人实在是获益不浅!C语言是这个学期开的课程,但这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我傻坐着不知道该做什么,后来就写了几个预处理命令。回去以后,我想,这样不行,这样下去还得了!我就重新复习了一遍我们这个学期学习的内容,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题!一开始做题,也是有点模糊,在组员的指导下,我们慢慢的进入状态,我们做的是一个西文下拉菜

18、单,内容包括很多。运用的函数也是非常的复杂,我们一组有三个人,我分工合作,首先一个组员一起完成了结构题,然后我们一人各负责一个函数程序的设计,经过一个半星期的努力,我们完成了大半个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的操作,是我们最大的问题,不过,我们做好后,经过反复检查,我们也懂得设计和运用了。同时,也让我知道了,合作的力量,如果是孤军奋战的话,我也不能在规定时间内完成,当然,也多亏老师的指导。通过对西文下拉菜单的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C

19、语言以及C+的使用得到了进一步的提高。针对数据结构的书本知识得到了进一步的巩固,具体化就是加深了我对C语言程序的结构的理解,C+6.0变成的应用,函数的应用等。对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。结构设计的合理性决定了这个程序的价值。在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。 经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验!附录一:(

20、参考文献)C程序设计: 谭浩强著 清华大学出版社 C语言高级实例解析:著 清华大学出版社 C语言程序设计实例精粹 谭明金,俞海英编著 电子工业出版社 附录二:(部分程序清单和执行结果(带有较详细的注释)完整程序:#include #include #include #includevoid vMainMenu()/*主菜单*/ printf(File(F1)tEdit(F2)tHelp(F3)tour(F4) 下(up)上(down)n); printf( 确定(enter)退(f11)n);/*输出主菜单*/void kk()/*命名函数名*/int fF1 = 0,fF2=0,fF3=0,

21、fF4=0,fF9=0,fF10=-1; void File_PrintFileMenu();/*下拉菜单函数*/void Edit_PrintFileMenu();/*下拉菜单函数*/ void Help_PrintFileMenu();/*下拉菜单函数*/ void yy(); void yy1(); void yy2(); void our();/*下拉菜单函数*/ void pp();vMainMenu();while(1) if(GetAsyncKeyState(VK_F1)0) /*按键函数*/ if(fF1 = 0)File_PrintFileMenu(); yy(); /*调用

22、YY函数*/ Sleep(100); if(GetAsyncKeyState(VK_F2)0) /*按键函数*/ if(fF2 = 0) Edit_PrintFileMenu(); yy1(); Sleep(100); if(GetAsyncKeyState(VK_F3)0) /*按键函数*/ if(fF3 = 0)Help_PrintFileMenu(); yy2(); Sleep(100); if(GetAsyncKeyState(VK_F4)0) /*按键函数*/ if(fF4 = 0)our(); yy(); Sleep(100);break; system(pause); void

23、pp()/*选择函数*/while(1) if(getch()=13) /*检测按下的键再判断是不是enter键*/ printf(nnnnn正在执行其他程序.n); goto loop;else goto loop;loop:;void yy()/*光标调用函数*/void File_a_PrintFileMenu();void File_abc_PrintFileMenu();void File_ab_PrintFileMenu();void yya();while(1) switch(getch()/*检测按下的键再判断是不是上下光标键*/ case 80:File_a_PrintFil

24、eMenu();pp();yya();break; case 72:File_abc_PrintFileMenu();pp();yya();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void yya()void File_ab_PrintFileMenu();void File_a_PrintFileMenu();void File_abc_PrintFileMenu();void yyab();while(1) switch(getch() case 80:File_ab_PrintFileMenu();pp();yyab

25、();break; case 72:File_abc_PrintFileMenu();pp();break;if(GetAsyncKeyState(VK_F11)0)/*按下f11键退出*/ system(cls); kk(); void yyab()void File_abc_PrintFileMenu();void File_a_PrintFileMenu();void File_ab_PrintFileMenu();void yyabc();while(1) switch(getch() case 80:File_abc_PrintFileMenu();pp();yyabc();brea

26、k;case 72:File_a_PrintFileMenu();pp();yy();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void yyabc()void File_ab_PrintFileMenu();while(1) switch(getch() case 80:yy();break;case 72:File_ab_PrintFileMenu();pp();yyab();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); /*/void yy1()/*Ed

27、it_a_PrintFileMenu()光标调用函数*/void Edit_a_PrintFileMenu();void Edit_abc_PrintFileMenu();void Edit_ab_PrintFileMenu();void eyya();while(1) switch(getch() case 80:Edit_a_PrintFileMenu();pp();eyya();break; case 72:Edit_abc_PrintFileMenu();pp();eyya();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk()

28、; void eyya()void Edit_ab_PrintFileMenu();void Edit_a_PrintFileMenu();void Edit_abc_PrintFileMenu();void eyyab();while(1) switch(getch() case 80:Edit_ab_PrintFileMenu();pp();eyyab();break; case 72:Edit_abc_PrintFileMenu();pp();break;if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void eyyab()void E

29、dit_abc_PrintFileMenu();void Edit_a_PrintFileMenu();void Edit_ab_PrintFileMenu();void eyyabc();void eyy1();while(1) switch(getch() case 80:Edit_abc_PrintFileMenu();pp();eyyabc();break;case 72:Edit_a_PrintFileMenu();pp();yy1();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void eyyabc()void

30、eyy1();void Edit_ab_PrintFileMenu();while(1) switch(getch() case 80:yy1();break;case 72:Edit_ab_PrintFileMenu();pp();eyyab();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void yy2()/*光标调用函数*/void Help_a_PrintFileMenu();void Help_abc_PrintFileMenu();void Help_ab_PrintFileMenu();void hyya();

31、while(1) switch(getch() case 80:Help_a_PrintFileMenu();pp();hyya();break; case 72:Help_abc_PrintFileMenu();pp();hyya();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void hyya()void Help_ab_PrintFileMenu();void Help_a_PrintFileMenu();void Help_abc_PrintFileMenu();void hyyab();while(1) switc

32、h(getch() case 80:Help_ab_PrintFileMenu();pp();hyyab();break; case 72:Help_abc_PrintFileMenu();pp();break;if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void hyyab()void Help_abc_PrintFileMenu();void Help_a_PrintFileMenu();void Help_ab_PrintFileMenu();void hyyabc();while(1) switch(getch() case 80:

33、Help_abc_PrintFileMenu();pp();hyyabc();break;case 72:Help_a_PrintFileMenu();pp();yy2();break; if(GetAsyncKeyState(VK_F11)0) system(cls); kk(); void hyyabc()void Help_ab_PrintFileMenu();while(1) switch(getch() case 80:yy2();break;case 72:Help_ab_PrintFileMenu();pp();hyyab();break; if(GetAsyncKeyState

34、(VK_F11)0) system(cls); kk(); /*File_a_PrintFileMenu()菜单模块*/void File_PrintFileMenu()/*文件菜单*/ system(cls); vMainMenu(); printf(n); printf( New n); printf( Open n); printf( Save n); printf(Save as. n); printf(Save all n); printf(n); printf(Change dir. n); printf(Print n); printf(Dos shell n); printf(

35、n); printf(Quit Alt+xn); printf(n);void File_a_PrintFileMenu()/*新建文件函数*/ int fF9=1; system(cls); vMainMenu(); printf(n); printf(New n); printf( Open n); printf( Save n); printf(Save as. n); printf(Save all n); printf(n); printf(Change dir. n); printf(Print n); printf(Dos shell n); printf(n); printf(

36、Quit Alt+xn); printf(n);void File_ab_PrintFileMenu() system(cls); vMainMenu(); printf(n); printf( New n); printf(Openn); printf( Save n); printf(Save as. n); printf(Save all n); printf(n); printf(Change dir. n); printf(Print n); printf(Dos shell n); printf(n); printf(Quit Alt+xn); printf(n);void Fil

37、e_abc_PrintFileMenu() system(cls); vMainMenu(); printf(n); printf( New n); printf( Open n); printf(Saven); printf(Save as. n); printf(Save all n); printf(n); printf(Change dir. n); printf(Print n); printf(Dos shell n); printf(n); printf(Quit Alt+xn); printf(n);/*Edit_PrintFileMenu()菜单模块*/void Edit_PrintFileMenu() system(cls); vMainMenu(); printf( n); printf( Undo n); printf( Redo n); printf( n); printf( Cut n); printf( Copy n); printf( Paste n); printf( Clear n); printf( Copy example n); printf( n); printf( Shoe clipboardn); printf(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号