西文下拉菜单程序设计方案研究报告.docx
- 文档编号:20156376
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:27
- 大小:224.13KB
西文下拉菜单程序设计方案研究报告.docx
《西文下拉菜单程序设计方案研究报告.docx》由会员分享,可在线阅读,更多相关《西文下拉菜单程序设计方案研究报告.docx(27页珍藏版)》请在冰豆网上搜索。
西文下拉菜单程序设计方案研究报告
西文下拉菜单设计报告
课程名称:
C语言程序课程设计
实验名称:
西文下拉菜单设计
姓名:
董兆静
学号:
2012051424
指导老师:
丁富华
实践时间:
课程设计题目:
西文下拉菜单的设计
主要功能:
1、完成一个类似TC集成系统菜单的西文下拉菜单的设计
2、不要求实现各子菜单的功能
要求:
可以通过光标键的移动来选择不同的菜单项,被选择的菜单项反相显示,当选定某个菜单项后,按回车键可以实现一个简单的动作。
总设计:
(程序设计组成框图、流程图)
程序设计组成框图
流程图
File_a
详细设计:
(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)
整个系统除了主函数外,另外还有将近十个函数,实现五大功能:
输入功能、显示功能、输出功能、以及光标键的上下移动功能、跳出选项功能。
各个函数的详细设计说明分别如下:
1、主函数main()
利用无限次循环for(;;)和system()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
2、命名函数void….Menu()
用void命名我们要做的菜单函数,如voidFile_PrintFileMenu();voidEdit_PrintFileMenu();voidHelp_PrintFileMenu();等等,使接下来的函数调用能调用处我们制作的下拉菜单。
3、按键函数GetAsyncKeyState
利用按键函数GetAsyncKeyState来控制程序,它组要负责对按键的识别和识别后的函数调用功能。
4、颜色调用函数system("cls")
利用system("cls")的颜色调用函数,我们能从颜色库中调用各种颜色来制作我们的下拉菜单,使我们的下拉菜单更为简单化。
5、Ifelse语句
在我们的程序中我们用到了if…else语句来做判断作用,还用到了if语句的嵌套。
应当注意if与else得配对关系。
Else总是与它上面的最近的未配对的if配对。
6、Switch语句
Switch语句是多分支选择语句。
Switch后面括号内的“表达式”,ANSI标准允许它为任何类型;当表达式的值与某一个case后面的常量表达式的值相等时,就执行case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句;每一个case的常量表达式的值必须互不相同;否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案);各个case和default得出现次序不影响执行结果;执行完一个case后面的语句后,流程控制转移到下一个case继续执行;
我们采用分模块设计程序,我们的这个西文下拉菜单程序分为三个模块,每个模块的功能基本相同,只是执行的途径不同而已,下面我介绍一下模块三的功能。
程序开始执行时,调用库函数里的函数system("color16"),用命令来执行平面的颜色。
接着,继续执行,调用函数kk(),一开始执行函数kk(),就调用主菜单函数vmainmune(),执行时输出主菜单(File
输出主菜单后,系统将调用库函数中的另一个函数GetAsyncKeyState(VK_F1),选择按键F3,又调用函数Help_PrintFileMenu(),输出Help的下拉菜单。
之后,返回kk()函数,接着继续执行,调用函数yy()1,yy()1函数的功能就是对Help菜单的选项进行上下选择。
在这里,同样调用了库函数中的函数GetAsyncKeyState(VK_F9),按一下下光标键键,调用函数Help_a_PrintFileMenu(),既输出对Edit第一个选项的选择,再调用函数PP(),如需要输出其功能,按一下Enter键,将输出其简单的功能,如不需输出其功能,调用PP()函数后,将不执行任何操作跳出PP()。
对Edit菜单进行选择了一次,下光标键和上光标键将自加一,每按一下下光标键,菜单将向下选择一次。
上光标键是向上选择键,其实现过程与向下选择的过程相同,每完成一次向上选择,下光标键和上光标键将自减一,在你进行操作是出错时,按一下F11键,将调用库函数system("cls"),其功能是对屏幕进行清屏,再调用kk()函数,回到显示主菜单的状态,继续你所需的操作。
软件使用说明:
西文下拉菜单:
这是一个简单的西文下拉菜单的软件,能输出一个主菜单,对应的菜单能输出子菜单,选中对应的选项后能执行简单的功能。
在这个软件的设计中,一共采用了八个按键对它进行控制,每个按键都有对应的功能,下面对每个按键的功能进行说明:
F1:
按一下F1键,能弹出文件(file)的菜单。
F2:
按一下F2键,能弹出编辑(edit)的菜单。
F3:
按一下F3键,能弹出帮助(help)的菜单。
F4:
按一下F4键,能弹出开发成员的名字。
下光标键:
按一下下光标键,光标下移。
上光标:
按一下上光标键,光标上移。
F11:
挨一下F11键,返回主菜单。
回车键:
按一下回车键键,执行当前所选功能。
完整程序:
#include
#include
#include
#include
voidvMainMenu()/*主菜单*/
{
printf("File(F1)\tEdit(F2)\tHelp(F3)\tour(F4)下(up)上(down)\n");
printf("确定(enter)退(f11)\n");
}/*输出主菜单*/
voidkk()/*命名函数名*/
{
intfF1=0,fF2=0,fF3=0,fF4=0,fF9=0,fF10=-1;
voidFile_PrintFileMenu();/*下拉菜单函数*/
voidEdit_PrintFileMenu();/*下拉菜单函数*/
voidHelp_PrintFileMenu();/*下拉菜单函数*/
voidyy();
voidyy1();
voidyy2();
voidour();/*下拉菜单函数*/
voidpp();
vMainMenu();
while
(1)
{
if(GetAsyncKeyState(VK_F1)<0)/*按键函数*/
{
if(fF1==0)
File_PrintFileMenu();
yy();/*调用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");}
voidpp()/*选择函数*/
{
while
(1)
{
if(getch()==13)/*检测按下的键再判断是不是enter键*/
{
printf("\n\n\n\n\n正在执行其他程序...........\n");
gotoloop;
}
elsegotoloop;
}
loop:
;
}
voidyy()/*光标调用函数*/
{voidFile_a_PrintFileMenu();
voidFile_abc_PrintFileMenu();
voidFile_ab_PrintFileMenu();
voidyya();
while
(1)
{
switch(getch())/*检测按下的键再判断是不是上下光标键*/
{
case80:
{File_a_PrintFileMenu();pp();yya();}break;
case72:
File_abc_PrintFileMenu();pp();yya();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidyya()
{voidFile_ab_PrintFileMenu();
voidFile_a_PrintFileMenu();
voidFile_abc_PrintFileMenu();
voidyyab();
while
(1)
{
switch(getch())
{
case80:
File_ab_PrintFileMenu();pp();yyab();break;
case72:
File_abc_PrintFileMenu();pp();break;
}
if(GetAsyncKeyState(VK_F11)<0)/*按下f11键退出*/
{system("cls");kk();
}
}
}
voidyyab()
{
voidFile_abc_PrintFileMenu();
voidFile_a_PrintFileMenu();
voidFile_ab_PrintFileMenu();
voidyyabc();
while
(1)
{
switch(getch())
{
case80:
File_abc_PrintFileMenu();pp();yyabc();break;
case72:
File_a_PrintFileMenu();pp();yy();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidyyabc()
{
voidFile_ab_PrintFileMenu();
while
(1)
{
switch(getch())
{
case80:
yy();break;
case72:
File_ab_PrintFileMenu();pp();yyab();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
/*************************************************************************************/
voidyy1()/*Edit_a_PrintFileMenu()光标调用函数*/
{voidEdit_a_PrintFileMenu();
voidEdit_abc_PrintFileMenu();
voidEdit_ab_PrintFileMenu();
voideyya();
while
(1)
{
switch(getch())
{
case80:
{Edit_a_PrintFileMenu();pp();eyya();}break;
case72:
Edit_abc_PrintFileMenu();pp();eyya();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voideyya()
{voidEdit_ab_PrintFileMenu();
voidEdit_a_PrintFileMenu();
voidEdit_abc_PrintFileMenu();
voideyyab();
while
(1)
{
switch(getch())
{
case80:
Edit_ab_PrintFileMenu();pp();eyyab();break;
case72:
Edit_abc_PrintFileMenu();pp();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voideyyab()
{
voidEdit_abc_PrintFileMenu();
voidEdit_a_PrintFileMenu();
voidEdit_ab_PrintFileMenu();
voideyyabc();
voideyy1();
while
(1)
{
switch(getch())
{
case80:
Edit_abc_PrintFileMenu();pp();eyyabc();break;
case72:
Edit_a_PrintFileMenu();pp();yy1();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voideyyabc()
{
voideyy1();
voidEdit_ab_PrintFileMenu();
while
(1)
{
switch(getch())
{
case80:
yy1();break;
case72:
Edit_ab_PrintFileMenu();pp();eyyab();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidyy2()/*光标调用函数*/
{voidHelp_a_PrintFileMenu();
voidHelp_abc_PrintFileMenu();
voidHelp_ab_PrintFileMenu();
voidhyya();
while
(1)
{
switch(getch())
{
case80:
{Help_a_PrintFileMenu();pp();hyya();}break;
case72:
Help_abc_PrintFileMenu();pp();hyya();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidhyya()
{voidHelp_ab_PrintFileMenu();
voidHelp_a_PrintFileMenu();
voidHelp_abc_PrintFileMenu();
voidhyyab();
while
(1)
{
switch(getch())
{
case80:
Help_ab_PrintFileMenu();pp();hyyab();break;
case72:
Help_abc_PrintFileMenu();pp();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidhyyab()
{
voidHelp_abc_PrintFileMenu();
voidHelp_a_PrintFileMenu();
voidHelp_ab_PrintFileMenu();
voidhyyabc();
while
(1)
{
switch(getch())
{
case80:
Help_abc_PrintFileMenu();pp();hyyabc();break;
case72:
Help_a_PrintFileMenu();pp();yy2();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
voidhyyabc()
{
voidHelp_ab_PrintFileMenu();
while
(1)
{
switch(getch())
{
case80:
yy2();break;
case72:
Help_ab_PrintFileMenu();pp();hyyab();break;
}
if(GetAsyncKeyState(VK_F11)<0)
{system("cls");kk();
}
}
}
/************File_a_PrintFileMenu()菜单模块****************************/
voidFile_PrintFileMenu()/*文件菜单*/
{
system("cls");
vMainMenu();
printf("┌───────┐\n");
printf("│New│\n");
printf("│Open│\n");
printf("│Save│\n");
printf("│Saveas...│\n");
printf("│Saveall│\n");
printf("│───────│\n");
printf("│Changedir...│\n");
printf("│Print│\n");
printf("│Dosshell│\n");
printf("│───────│\n");
printf("│QuitAlt+x│\n");
printf("└───────┘\n");
}
voidFile_a_PrintFileMenu()/*新建文件函数*/
{intfF9=1;
system("cls");
vMainMenu();
printf("┌───────┐\n");
printf("│~~~~New~~~~~~│\n");
printf("│Open│\n");
printf("│Save│\n");
printf("│Saveas...│\n");
printf("│Saveall│\n");
printf("│───────│\n");
printf("│Changedir...│\n");
printf("│Print│\n");
printf("│Dosshell│\n");
printf("│───────│\n");
printf("│QuitAlt+x│\n");
printf("└───────┘\n");
}
voidFile_ab_PrintFileMenu()
{
system("cls");
vMainMenu();
printf("┌───────┐\n");
printf("│New│\n");
printf("│~~~~Open~~~~~~│\n");
printf("│Save│\n");
printf("│Saveas...│\n");
printf("│Saveall│\n");
printf("│───────│\n");
printf("│Changedir...│\n");
printf("│Print│\n");
printf("│Dosshell│\n");
printf("│───────│\n");
printf("│QuitAlt+x│\n");
printf("└───────┘\n");
}
voidFile_abc_PrintFileMenu()
{
system("cls");
vMainMenu();
printf("┌───────┐\n");
printf("│New│\n");
printf("│Open│\n");
printf("│~~~~Save~~~~~~│\n");
printf("│Saveas...│\n");
printf("│Saveall│\n");
printf("│───────│\n");
printf("│Changedir...│\n");
printf("│Print│\n");
printf("│Dosshell│\n");
printf("│───────│\n");
printf("│QuitAlt+x│\n");
printf("└───────┘\n");
}
/****************Edit_PrintFileMenu()菜单模块*************************/
voidEdit_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("│Copyexample│\n");
printf("│───────│\n");
printf("│Shoeclipboard│\n");
printf("└───────┘\n");
}
voidEdit_a_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("│Copyexample│\n");
printf("│───────│\n");
printf("│Shoeclipboard│\n");
printf("└───────┘\n");
}
voidEdit_ab_PrintFileMenu()
{
system("cls");
vMainMenu();
printf("┌
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西文 下拉 菜单 程序设计 方案 研究 报告