西文下拉菜单程序设计方案研究报告Word文档格式.docx
《西文下拉菜单程序设计方案研究报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《西文下拉菜单程序设计方案研究报告Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。
详细设计:
(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)
整个系统除了主函数外,另外还有将近十个函数,实现五大功能:
输入功能、显示功能、输出功能、以及光标键的上下移动功能、跳出选项功能。
各个函数的详细设计说明分别如下:
1、主函数main()
利用无限次循环for(;
;
)和system()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
2、命名函数void….Menu()
用void命名我们要做的菜单函数,如voidFile_PrintFileMenu();
voidEdit_PrintFileMenu();
voidHelp_PrintFileMenu();
等等,使接下来的函数调用能调用处我们制作的下拉菜单。
3、按键函数GetAsyncKeyState
利用按键函数GetAsyncKeyState来控制程序,它组要负责对按键的识别和识别后的函数调用功能。
4、颜色调用函数system("
cls"
)
利用system("
)的颜色调用函数,我们能从颜色库中调用各种颜色来制作我们的下拉菜单,使我们的下拉菜单更为简单化。
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<
F1>
Edit<
F2>
Help<
F3>
Our<
F4>
),模块二的功能就是执行主菜单中的Edit<
的任务,输出Edit的下拉子菜单,并执行其子菜单的简单的功能。
输出主菜单后,系统将调用库函数中的另一个函数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("
),其功能是对屏幕进行清屏,再调用kk()函数,回到显示主菜单的状态,继续你所需的操作。
软件使用说明:
西文下拉菜单:
这是一个简单的西文下拉菜单的软件,能输出一个主菜单,对应的菜单能输出子菜单,选中对应的选项后能执行简单的功能。
在这个软件的设计中,一共采用了八个按键对它进行控制,每个按键都有对应的功能,下面对每个按键的功能进行说明:
F1:
按一下F1键,能弹出文件(file)的菜单。
F2:
按一下F2键,能弹出编辑(edit)的菜单。
F3:
按一下F3键,能弹出帮助(help)的菜单。
F4:
按一下F4键,能弹出开发成员的名字。
下光标键:
按一下下光标键,光标下移。
上光标:
按一下上光标键,光标上移。
F11:
挨一下F11键,返回主菜单。
回车键:
按一下回车键键,执行当前所选功能。
完整程序:
#include<
stdio.h>
stdlib.h>
windows.h>
#include<
conio.h>
voidvMainMenu()/*主菜单*/
{
printf("
File(F1)\tEdit(F2)\tHelp(F3)\tour(F4)下(up)上(down)\n"
);
确定(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)<
if(fF2==0)
Edit_PrintFileMenu();
yy1();
if(GetAsyncKeyState(VK_F3)<
if(fF3==0)
Help_PrintFileMenu();
yy2();
if(GetAsyncKeyState(VK_F4)<
if(fF4==0)
our();
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();
switch(getch())/*检测按下的键再判断是不是上下光标键*/
case80:
{File_a_PrintFileMenu();
pp();
yya();
}break;
case72:
File_abc_PrintFileMenu();
if(GetAsyncKeyState(VK_F11)<
0)
{system("
kk();
voidyya()
{voidFile_ab_PrintFileMenu();
voidFile_a_PrintFileMenu();
voidyyab();
switch(getch())
File_ab_PrintFileMenu();
yyab();
if(GetAsyncKeyState(VK_F11)<
0)/*按下f11键退出*/
voidyyab()
voidyyabc();
yyabc();
case72:
File_a_PrintFileMenu();
yy();
voidyyabc()
/*************************************************************************************/
voidyy1()/*Edit_a_PrintFileMenu()光标调用函数*/
{voidEdit_a_PrintFileMenu();
voidEdit_abc_PrintFileMenu();
voidEdit_ab_PrintFileMenu();
voideyya();
{Edit_a_PrintFileMenu();
eyya();
Edit_abc_PrintFileMenu();
voideyya()
{voidEdit_ab_PrintFileMenu();
voidEdit_a_PrintFileMenu();
voideyyab();
Edit_ab_PrintFileMenu();
eyyab();
voideyyab()
voideyyabc();
voideyy1();
eyyabc();
Edit_a_PrintFileMenu();
yy1();
voideyyabc()
voidyy2()/*光标调用函数*/
{voidHelp_a_PrintFileMenu();
voidHelp_abc_PrintFileMenu();
voidHelp_ab_PrintFileMenu();
voidhyya();
{Help_a_PrintFileMenu();
hyya();
Help_abc_PrintFileMenu();
}
voidhyya()
{voidHelp_ab_PrintFileMenu();
voidHelp_a_PrintFileMenu();
voidhyyab();
Help_ab_PrintFileMenu();
hyyab();
voidhyyab()
voidhyyabc();
hyyabc();
Help_a_PrintFileMenu();
yy2();
voidhyyabc()
/************File_a_PrintFileMenu()菜单模块****************************/
voidFile_PrintFileMenu()/*文件菜单*/
┌───────┐\n"
│New│\n"
│Open│\n"
│Save│\n"
│Saveas...│\n"
│Saveall│\n"
│───────│\n"
│Changedir...│\n"
│Print│\n"
│Dosshell│\n"
│QuitAlt+x│\n"
└───────┘\n"
voidFile_a_PrintFileMenu()/*新建文件函数*/
{intfF9=1;
│~~~~New~~~~~~│\n"
voidFile_ab_PrintFileMenu()
│~~~~Open~~~~~~│\n"
voidFile_abc_PrintFileMenu()
│~~~~Save~~~~~~│\n"
/****************Edit_PrintFileMenu()菜单模块*************************/
voidEdit_PrintFileMenu()
┌───────┐\n"
│Undo│\n"
│Redo│\n"
│───────│\n"
│Cut│\n"
│Copy│\n"
│Paste│\n"
│Clear│\n"
│Copyexample│\n"
│Shoeclipboard│\n"
└───────┘\n"
voidEdit_a_PrintFileMenu()
│~~~~~Undo~~~~│\n"
voidEdit_ab_PrintFileMenu()
┌