菜单函数_c语言,求一个C语言菜单函数的程序?

匿名用户

1级

2015-05-17 回答

1、对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。

例程:

#include

#include

#include

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 

#include 

#include 

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;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");

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值