有菜单函数的例题c语言 c语言编写菜单函数

C语言编程做一个简单的菜单#include stdio.h
#include stdlib.h
void menu()//菜单绘制
{
printf("---------------------------------------\n");
printf("\t\t 0.退出\n");
printf("\t\t 1.录入信息\n");
printf("\t\t 2.查找信息\n");
printf("\t\t 3.删除信息\n");
printf("\t\t 4.浏览信息\n");
printf("\t\t5.有其他疑问找群主")
printf("\t\t6.C8群: 491994603")
printf("---------------------------------------\n");
}
void keyDown()//按键处理
{
int choice;
scanf("%d", choice);
switch (choice)
{
case 0:
printf("退出程序\n");
Sleep(2000);
return 0;
case 1:
//调用菜单1实现函数
break;
case 2:
//调用菜单2实现函数
break;
case 3:
//调用菜单3实现函数
break;
case 4:
//调用菜单4实现函数
break;
default:
printf("输入错误\n");
}
system("pause");
return 0;
}
int main()
{
while(1)
{
menu();
keyDown();
system("cls");
【有菜单函数的例题c语言 c语言编写菜单函数】}
return 0;
}
求一个C语言菜单函数的程序?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");
}
我想尽快知道这道C语言题的解法#includestdio.h /*引用库函数*/
#includestdlib.h
#includectype.h
#includestring.h
typedef struct /*定义结构体数组*/
{
char num[10]; /*学号*/
char name[20]; /*姓名*/
int score; /*成绩*/
}Student;
Student stu[80]; /*结构体数组变量*/
int menu_select() /*菜单函数*/
{
char c;
do{
system("cls"); /*运行前清屏*/
printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/
printf("\t\t | 1. Input Records |\n");
printf("\t\t | 2. Display All Records |\n");
printf("\t\t | 3. Sort |\n");
printf("\t\t | 4. Insert a Record |\n");
printf("\t\t | 5. Delete a Record |\n");
printf("\t\t | 6. Query |\n");
printf("\t\t | 7. Statistic |\n");
printf("\t\t | 8. Add Records from a Text File|\n");
printf("\t\t | 9. Write to a Text file |\n");
printf("\t\t | 0. Quit |\n");
printf("\t\t*****************************************\n");
printf("\t\t\tGive your Choice(0-9):");
c=getchar(); /*读入选择*/
}while(c'0'||c'9');
return(c-'0'); /*返回选择*/
}
int Input(Student stud[],int n) /*输入若干条记录*/
{int i=0;
char sign,x[10]; /*x[10]为清除多余的数据所用*/
while(sign!='n'sign!='N') /*判断*/
{ printf("\t\t\tstudent's num:"); /*交互输入*/
scanf("\t\t\t%s",stud[n i].num);
printf("\t\t\tstudent's name:");
scanf("\t\t\t%s",stud[n i].name);
printf("\t\t\tstudent's score:");
scanf("\t\t\t%d",stud[n i].score);
gets(x); /*清除多余的输入*/
printf("\t\t\tany more records?(Y/N)");
scanf("\t\t\t%c",sign); /*输入判断*/
i;
}
return(n i);
}
void Display(Student stud[],int n) /*显示所有记录*/
{
int i;
printf("\t\t\t-----------------------------------\n"); /*格式头*/
printf("\t\t\tnumber name score\n");
printf("\t\t\t-----------------------------------\n");
for(i=1;in 1;i) /*循环输入*/
{
printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].score);
if(i1i==0) /*每十个暂停*/
{printf("\t\t\t-----------------------------------\n"); /*格式*/
printf("\t\t\t");
system("pause");
printf("\t\t\t-----------------------------------\n");
}
}
printf("\t\t\t");
system("pause");
}
void Sort_by_num(Student stud[],int n) /*按学号排序*/
{ int i,j,*p,*q,s;
char t[10];
for(i=0;in-1;i) /*冒泡法排序*/
for(j=0;jn-1-i;j)
if(strcmp(stud[j].num,stud[j 1].num)0)
{strcpy(t,stud[j 1].num);
strcpy(stud[j 1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j 1].name);
strcpy(stud[j 1].name,stud[j].name);
strcpy(stud[j].name,t);
p=stud[j 1].score;
q=stud[j].score;
s=*p;
*p=*q;
*q=s;
}
}
int Insert_a_record(Student stud[],int n) /*插入一条记录*/
{char x[10]; /*清除多余输入所用*/
printf("\t\t\tstudent's num:"); /*交互式输入*/
scanf("\t\t\t%s",stud[n].num);
printf("\t\t\tstudent's name:");
scanf("\t\t\t%s",stud[n].name);
printf("\t\t\tstudent's score:");
scanf("\t\t\t%d",stud[n].score);
gets(x);
n;
Sort_by_num(stud,n); /*调用排序函数*/
printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/
return(n);
}
int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/
{ char s[20];
int i=0,j;
printf("\t\t\ttell me his(her) name:"); /*交互式问寻*/
scanf("%s",s);
while(strcmp(stud[i].name,s)!=0in) i; /*查找判断*/
if(i==n)
{ printf("\t\t\tnot find!\n"); /*返回失败信息*/
return(n);
}
for(j=i;jn-1;j) /*删除操作*/
{
strcpy(stud[j].num,stud[j 1].num);
strcpy(stud[j].name,stud[j 1].name);
stud[j].score=stud[j 1].score;
}
printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/
return(n-1);
}
void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/
{ char s[20];
int i=0;
printf("\t\t\tinput his(her) name:"); /*交互式输入*/
scanf("\t\t\t%s",s);
while(strcmp(stud[i].name,s)!=0in) i; /*查找判断*/
if(i==n)
{ printf("\t\t\tnot find!\n"); /*输入失败信息*/
return;
}
printf("\t\t\this(her) number:%s\n",stud[i].num); /*输出该学生信息*/
printf("\t\t\this(her) score:%d\n",stud[i].score);
}
void Statistic(Student stud[],int n) /*新增功能,输出统计信息*/
{ int i,j=0,k=0,sum=0;
float aver; /*成绩平均值*/
for(i=0;in;i) /*循环输入判断*/
{
sum =stud[i].score;
if(stud[j].scorestud[i].score) j=i;
if(stud[k].scorestud[i].score) k=i;
}
aver=1.0*sum/n;
printf("\t\t\tthere are %d records.\n",n); /*总共记录数*/
printf("\t\t\tthe hignest score:\n"); /*最高分*/
printf("\t\t\tnumber:%s name:%s score:%d\n",stud[j].num,stud[j].name,stud[j].score);
printf("\t\t\tthe lowest score:\n"); /*最低分*/
printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k].num,stud[k].name,stud[k].score);
printf("\t\t\tthe average score is %5.2f\n",aver); /*平均分*/
}
int AddfromText(Student stud[],int n) /*从文件中读入数据*/
{ int i=0,num;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename); /*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{ printf("\t\t\tcann't open the file\n"); /*打开失败信息*/
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",num); /*读入总记录量*/
while(inum) /*循环读入数据*/
{
fscanf(fp,"%s%s%d",stud[n i].num,stud[n i].name,stud[n i].score);
i;
}
n =num;
fclose(fp); /*关闭文件*/
printf("\t\t\tSuccessed!\n");
printf("\t\t\t");
system("pause");
return(n);
}
void WritetoText(Student stud[],int n) /*将所有记录写入文件*/
{
int i=0;
FILE *fp; /*定义文件指针*/
char filename[20]; /*定义文件名*/
printf("\t\t\tWrite Records to a Text File\n"); /*输入文件名*/
printf("\t\t\tInput the filename:");
scanf("\t\t\t%s",filename);
if((fp=fopen(filename,"w"))==NULL) /*打开文件*/
{
printf("\t\t\tcann't open the file\n");
system("pause");
return;
}
fprintf(fp,"%d\n",n); /*循环写入数据*/
while(in)
{
fprintf(fp,"%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score);
i;
}
fclose(fp); /*关闭文件*/
printf("Successed!\n"); /*返回成功信息*/
}
void main() /*主函数*/
{
int n=0;
for(;;)
{
switch(menu_select()) /*选择判断*/
{
case 1:
printf("\t\t\tInput Records\n"); /*输入若干条记录*/
n=Input(stu,n);
break;
case 2:
printf("\t\t\tDisplay All Records\n"); /*显示所有记录*/
Display(stu,n);
break;
case 3:
printf("\t\t\tSort\n");
Sort_by_num(stu,n); /*按学号排序*/
printf("\t\t\tSort Suceessed!\n");
printf("\t\t\t");
system("pause");
break;
case 4:
printf("\t\t\tInsert a Record\n");
n=Insert_a_record(stu,n); /*插入一条记录*/
printf("\t\t\t");
system("pause");
break;
case 5:
printf("\t\t\tDelete a Record\n");
n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/
printf("\t\t\t");
system("pause");
break;
case 6:
printf("\t\t\tQuery\n");
Query_a_record(stu,n); /*查找并显示一个记录*/
printf("\t\t\t");
system("pause");
break;
case 7:
printf("\t\t\tStatistic\n");
Statistic(stu,n); /*新增功能 , 输出统计信息*/
printf("\t\t\t");
system("pause");
break;
case 8:
printf("\t\t\tAdd Records from a Text File\n");
n=AddfromText(stu,n); /*新增功能,输出统计信息*/
break;
case 9:
printf("\t\t\tWrite to a Text file\n");
WritetoText(stu,n); /*循环写入数据*/
printf("\t\t\t");
system("pause");
break;
case 0:
printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*结束程序*/
printf("\t\t\t");
system("pause");
exit(0);
}
}
}
C语言高手进来?。?小弟有个题要问你们?。?谢谢啦int menu_select() /*菜单函数*/
这句上面少一个}
你加上就可以了
如题,C语言编程 要求运用函数,希望有大神能够来帮助一下#include stdio.h
void manu(){
system("cls");
printf("======================================\n");
printf(" Please choose one of the following:\n");
printf("1) Copy files\n");
printf("2)move files\n");
printf("3) Remove files\n");
printf("4) quit\n");
printf("Enter the number of your choice:\n");
printf("======================================\n");
}
int getv(int xj, int sj){
int v;
do {
manu();
scanf("%d",v);
if (v=xjv=sj) break;
} while(1);
return v;
}
int main()
{
int x;
x = getv(1,4);
switch(x){
case 1: printf("I will do copy files\n");break;
case 2: printf("I will do move files\n");break;
case 3: printf("I will do erase files\n");break;
case 4: return 0;
}
return 0;
}
高分悬赏C语言题目?。。?/h2>我写了个程序 蛮简单的 其实就是一个单链表的操作 这种程序一般也就一百多行就解决了 我运行过的 已经满足了你要的功能 绝对是独一无二的哈 那单链表的头指针就是我的浩方ID
你是地大的吧 程序运行时候要注意不要输入错误 尤其是电话号码 在就是有的语句写的比较长 此页面显示不了自动换行了 你粘贴到VC上时候一定要把那些语句连接起来
#include"stdio.h"
#include"malloc.h"
#include"string.h"
#include"stdlib.h"
typedef struct node
{
char name[16];
char post[16];
intpnumber;
char email[16];
struct node *next;
}body;
void Initiate( body **head)
{
if((*head=(body *)malloc(sizeof(body)))==NULL)exit(1);
(*head)-next=NULL;
}
void Insert(body *head,body *x)
{
body *q;
q=(body *)malloc(sizeof(body));
strcpy(q-name,x-name);
q-pnumber=x-pnumber;
strcpy(q-post,x-post);
strcpy(q-email,x-email);
q-next=head-next;
head-next=q;
}
void del(body *head,body *x)
{
body *p;
p=head;
while(strcmp(p-next-name,x-name)!=0) p=p-next;
p-next=p-next-next;
printf("已删除%s",x-name);
printf("的信息!\n");
}
void change(body *head,body *x)
{
body *p,*q;
q=x;
p=head;
while(strcmp(p-next-name,q-name)!=0) p=p-next;
p=p-next;
printf("请做修改\n");
printf("name:");
scanf("%s",p-name);
printf("phone number:");
scanf("%d",p-pnumber);
printf("post:");
scanf("%s",p-post);
printf("email:");
scanf("%s",p-email);
}
void searchname( body *head,body *x)
{
body *p;
p=head-next;
while(strcmp(p-name,x-name)!=0p-next!=NULL) p=p-next;
if(strcmp(p-name,x-name)==0)
{
printf("name%s",p-name);
printf("phone number%d",p-pnumber);
printf("post%s",p-post);
printf("email%s",p-email);
}
else printf("查无此人!");
}
void searchnum( body *head,body *x)
{
body *p;
p=head-next;
while(p-pnumber!=x-pnumberp-next!=NULL ) p=p-next;
if(p-pnumber==x-pnumber)
{
printf("name%s",p-name);
printf("phone number%d",p-pnumber);
printf("post%s",p-post);
printf("email%s",p-email);
}
else printf("查无此人!");
}
void Show(body *head)
{
body *p;
p=head;
while(p-next!=NULL)
{
p=p-next;
printf("name%s",p-name);
printf("phone number%d",p-pnumber);
printf("post%s",p-post);
printf("email%s\n",p-email);
}
}
void income(body *x)
{
printf("name:");
scanf("%s",x-name);
printf("phone number:");
scanf("%d",x-pnumber);
printf("post:");
scanf("%s",x-post);
printf("email:");
scanf("%s",x-email);
}
void main()
{
body *oppo,one;
int m;
m=0;
Initiate(oppo);
printf("服务如下 :\n");
printf("1-插入2-删除3-姓名查询4-号码查询5-修改6-显示7-退出");
while(m!=7)
{
printf("\n选择服务:");
scanf("%d",m);
if(m==1) { income(one);Insert(oppo,one);}
else if(m==2) { printf("要删除对象的姓名:");scanf("%s",one.name);del(oppo,one);}
else if(m==3) { printf("要查询对象的姓名:");scanf("%s",one.name);searchname(oppo,one);}
else if(m==4) { printf("要查询对象的号码:");scanf("%d",one.pnumber);searchnum(oppo,one);}
else if(m==5) { printf("要修改对象的姓名:");scanf("%s",one.name);change(oppo,one);}
else if(m==6) Show(oppo);
else if(m==7) printf("退出\n");
elseprintf("error!\n");
}
}
有菜单函数的例题c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言编写菜单函数、有菜单函数的例题c语言的信息别忘了在本站进行查找喔 。

    推荐阅读