1、对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。
例程:
#includestdio.h
#includegraphics.h
#includeconio.h
voidmain()
{
charstr;
inti,k,choice=1;
intgd=DETECT,gm;
initgraph(gd,gm,"");
setbkcolor(2);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
outtextxy(140,150,"B.TheDigitalClock.");
outtextxy(140,180,"C.Exit.");
setlinestyle(0,0,3);
rectangle(170,115,370,145);
/*按上下键选择所需选项*/
for(i=1;i=100;i++)
str=getch();
if(str==72)
--choice;
if(choice==0)choice=3;
}
if(str==80)
++choice;
if(choice==4)choice=1;
if(str==13)break;/*按回车键确认*/
/*画图做菜单*/
cleardevice();
switch(choice)
{case1:setlinestyle(0,0,3);
rectangle(170,115,400,145);
break;
case2:setlinestyle(0,0,3);
rectangle(170,145,400,175);
case3:settextstyle(3,0,3);
rectangle(170,175,400,205);
if(i=100)exit(0);/*如果按键超过100次退出*/
switch(choice)/*这里引用函数,实现所要的功能*/
case1:cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,120,"No.1havenotbuilt.");break;
case2:cleardevice();
outtextxy(160,150,"No.2havenotbuilt.");
case3:exit(0);
getch();
closegraph();
2、对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。
#includestdlib.h
#includestring.h
intn,t,k;
intm;
chars1[20],s2[20],c;
char**l;
char*num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};
voidmenu()
printf("\n\n\t\t*******************************************************\n");
printf("\t\t**1.查找字符串S1中S2出现的次数**\n");
printf("\t\t**2.统计字符串中大小写字母,数字出现的次数**\n");
printf("\t\t**3.将数字翻译成英语**\n");
printf("\t\t**4.结束**\n");
printf("\t\t*******************************************************\n");
printf("\t\t您的输入:");
fflush(stdin);
scanf("%d",n);
voidcheck()
chara[20],b[20];
intj=0,k,m,l=0;
intt=0,n=0;
printf("请输入主字符串:\n");
scanf("%s",a);
k=strlen(a);
printf("请输入子字符串:\n");
scanf("%s",b);
m=strlen(b);
for(n=0;nk;n++)
if(a[n]==b[0])
j++;/*记录相同的字符数*/
do
if(a[++n]==b[++t])
j++;
if(j==m)
l++;/*子字符串相同数*/
j=0;/*判断后相同字符数归零*/
t=-1;/*判断中if中++t;t将会归零*/
else
j=0;
t=0;
break;/*如果不同跳出while循环让for使n+1继续判断*/
}while(a[n]!='\0');/*查找完字符数组a结束*/
printf("子字符串出现次数:\n%d\n",l);
voidcout()
intn=0,t=0,k=0;
printf("请输入一个字符串:\n");
fflush(stdin);/*清除缓冲*/
while((c=getchar())!='\n')
if(c='a'c='z')
n++;
if(c='A'c='Z')
t++;
if(c='0'c='9')
k++;
printf("有大写字母:\n%d\n",t);
printf("有小写字母:\n%d\n",n);
printf("有数字:\n%d\n",k);
voidnumber()
l=num;
printf("请输入一个数字:(0-10)\n");
scanf("%d",m);
printf("%d对应的英文是:\n%s\n",m,*(l+m-1));
while(1)
system("cls");
menu();
switch(n)
case1:system("cls");check();system("pause");break;
case2:system("cls");cout();system("pause");break;
case3:system("cls");number();system("pause");break;
case4:system("cls");break;
default:system("cls");break;
if(n==4)break;
printf("感谢使用\n");
这样试试:
intmenu(){
intp;
printf("\t\t欢迎使用学生成绩管理系统\n");
printf("\t\t\t0:退出\n");
printf("\t\t\t1:录入学生信息\n");
printf("\t\t\t2:排序打印成绩\n");
printf("\t\t\t3:统计分布情况\n");
printf("\t\t\t4:查询学生信息\n");
printf("^_^提示:请输入操作命令:");
scanf("%d",p);
returnp;
intmain(){
intch;
//...
while(1){
ch=menu();
if(ch==0)
switch(ch){
case1:
//调用录入学生信息的函数
case2:
//调用...的函数
case3:
case4:
system("pause");
return0;
voidmenu()在c语言中的意思是:
main是每一个程序都必须具有的,它是由系统定义的。
其后面的一对()说明main是一个称为函数的程序块。每一个C语言程序都是从函数main开始的,也结束于main函数最后一个花括号。
main()是应用程序的主函数,menu()是普通函数
一个叫menu的函数,传入的参数是空(不用传参进来),这个函数返回值是int(整形)数据?
1、如果只是想返回已经写好的主菜单页面的话可以直接在当前函数中结束位置调用主菜单所在的函数,如果想输入某值返回的话就加个输入提示比如在其他函数页面加上“输入0返回主菜单”就可以在任意时候输入0来返回当然实现的时候也是输入语句加判断语句加调用主菜单所在函数,调用前先调用清屏函数。
2、例程:
intmenu()
{intrt;
charstr[256];
printf("1****\n");
printf("2****\n");
printf("3****\n");
printf("4****\n");
printf("5退出程序\n");
printf("请选择,输入选项前面的数字后回车:");scanf("%s",str);
if(str[0]='1'str[0]='5')rt=str[0]-'0';elsert=0;
returnrt;
voidf1(){}
voidf2(){}
voidf3(){}
voidf4(){}
{ints,loop=1;
while(loop)
{s=menu();
switch(s)
{case1:f1();break;
case2:f2();break;
case3:f3();break;
case4:f4();break;
case5:loop=0;break;
default:break;
enum{FIRST,CALCULATE,SECOND,RESULT};
intmenu(intstatus,intresult=0)
switch(status)
caseFIRST:
printf("请输入第一个数");
intx;
scanf("%d",x);
returnx;
caseSECOND:
printf("请输入第二个数");
caseCALCULATE:
printf("请输入运算符号");
charx;
scanf("%c",x);
caseRESULT:
printf("运算结果是%d\n",result);
return1;
main()
intx=0,y=0,status=0,result=0,calculate
x=menu(status);
status++;
while(!(calculate=='+'|calculate=='-'|calculate=='*'|calculate=='/'))