这样试试:
兴宁ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
#includestdio.h
int menu(){
int p;
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);
return p;
}
int main(){
int ch;
//...
while(1){
system("cls");
ch=menu();
if(ch==0)
break;
switch(ch){
case 1:
//调用 录入学生信息 的函数
break;
case 2:
//调用 ... 的函数
break;
case 3:
//调用 ... 的函数
break;
case 4:
//调用 ... 的函数
break;
}
}
system("pause");
return 0;
}
这样的可以吗?
这都是使用printf打印出来的,之后等待用户输入一个数值,根据这个数值调用不同的功能函数,即可实现文字菜单效果
/************************************************
* 函数名:Menu
* 功能:绘制主菜单界面,并根据输入转跳到其它功能
************************************************/
int Menu()
{
char cScan; //cScan用于记录键盘的输入
/* ┏━┓┃┛┗ */
printf("\n\n");
printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("\t┃ 欢迎使用员工管理系统BetaV1.0 ┃\n");
printf("\t┃ by 1500830221 ┃\n");
printf("\t┃ 1、查看所有员工信息 ┃\n");
printf("\t┃ 2、添加员工 ┃\n");
printf("\t┃ 3、查找员工 ┃\n");
printf("\t┃ 4、删除员工或修改资料 ┃\n");
printf("\t┃ 5、重设密码 ┃\n");
printf("\t┃ 6、将员工信息以文本文档输出 ┃\n");
printf("\t┃ 7、清屏 ┃\n");
printf("\t┃ 8、查看版本信息 ┃\n");
printf("\t┃ 9、退出 ┃\n");
printf("\t┃ ┃\n");
printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n");
cScan=getch();
return cScan-48;
}
enum{FIRST,CALCULATE,SECOND,RESULT};
int menu(int status,int result=0)
{
switch(status)
{
case FIRST:
{
printf("请输入第一个数");
int x;
scanf("%d",x);
return x;
break;
}
case SECOND:
{
printf("请输入第二个数");
int x;
scanf("%d",x);
return x;
break;
}
case CALCULATE:
{
printf("请输入运算符号");
char x;
scanf("%c",x);
return x;
break;
}
case RESULT:
{
printf("运算结果是%d\n",result);
return 1;
break;
}
}
}
main()
{
int x=0,y=0,status=0,result=0,calculate
x=menu(status);
status++;
while(!(calculate=='+' | calculate=='-' | calculate=='*' | calculate=='/'))
calculate=menu(status);
status++;
y=menu(status);
status++;
switch(calculate)
{
case '+':result=x+y;break;
case '-':result=x-y;break;
case '*':result=x*y;break;
case '/':result=x/y;break;
}
menu(status,result);
}
1、对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。
例程:
#includestdio.h
#includegraphics.h
#includeconio.h
void main()
{
char str;
int i,k,choice=1;
int gd=DETECT,gm;
initgraph(gd,gm," ");
setbkcolor(2);
settextstyle(3,0,3);
outtextxy(140,120,"A. The Mock Clock.");
outtextxy(140,150,"B. The Digital Clock.");
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)
{ case 1: setlinestyle(0,0,3);
rectangle(170,115,400,145);
settextstyle(3,0,3);
outtextxy(140,120,"A. The Mock Clock.");
settextstyle(3,0,3);
outtextxy(140,150,"B. The Digital Clock.");
outtextxy(140,180,"C. Exit.");
break;
case 2: setlinestyle(0,0,3);
rectangle(170,145,400,175);
settextstyle(3,0,3);
outtextxy(140,120,"A. The Mock Clock.");
settextstyle(3,0,3);
outtextxy(140,150,"B. The Digital Clock.");
settextstyle(3,0,3);
outtextxy(140,180,"C. Exit.");
break;
case 3: settextstyle(3,0,3);
outtextxy(140,120,"A. The Mock Clock.");
outtextxy(140,150,"B. The Digital Clock.");
settextstyle(3,0,3);
outtextxy(140,180,"C. Exit.");
setlinestyle(0,0,3);
rectangle(170,175,400,205);
break;
}
}
if(i=100)exit(0);/*如果按键超过100次退出*/
switch(choice)/*这里引用函数,实现所要的功能*/
{
case 1: cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,120,"No.1 have not built."); break;
case 2: cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,150,"No.2 have not built.");
break;
case 3: exit(0);
}
getch();
closegraph();
}
2、对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。
例程:
#include stdio.h
#include stdlib.h
#include string.h
int n,t,k;
int m;
char s1[20],s2[20],c;
char **l;
char *num[]={"one","two","three","four","five","six","seven","eight","nine","ten"};
void menu()
{
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);
}
void check()
{
char a[20],b[20];
int j=0,k,m,l=0;
int t=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);
}
void cout()
{
int n=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);
}
void number()
{
l=num;
printf("请输入一个数字:(0-10)\n");
fflush(stdin);
scanf("%d",m);
printf("%d对应的英文是:\n%s\n",m,*(l+m-1));
}
void main()
{
while(1)
{
system("cls");
menu();
switch(n)
{
case 1:system("cls");check();system("pause");break;
case 2:system("cls");cout();system("pause");break;
case 3:system("cls");number();system("pause");break;
case 4:system("cls");break;
default:system("cls");break;
}
if(n==4) break;
}
printf("感谢使用\n");
}