如何用C语言写一个菜单
常规:
# include & ltstdio.h & gt?
# include & ltgraphics.h & gt?
# include & ltconio.h & gt?
作废?main()?
{?
夏尔?str?
int?I,k,choice = 1;?
int?gd=DETECT,GM;?
init graph(& amp;gd,& amp通用,“?”);?
setbkcolor(2);?
settextstyle(3,0,3);?
outtextxy(140,120," a?那个?嘲弄?时钟。”);?
outtextxy(140,150," b?那个?数字?时钟。”);?
outtextxy(140,180," c?退出。”);?
setlinestyle(0,0,3);?
矩形(170,115,370,145);?
/*按向上和向下键选择所需选项*/?
for(I = 1;我& lt=100;i++)?
{?
str = getch();?
if(str==72)?
{?
-选择;?
if(choice = = 0)choice = 3;?
}?
if(str==80)?
{?
++选择;?
if(choice = = 4)choice = 1;?
}?
if(str = = 13)break;?/*按Enter键确认*/?
/*画个图做个菜单*/?
clear device();?
切换(选择)?
{?案子?1:?setlinestyle(0,0,3);?
矩形(170,115,400,145);?
settextstyle(3,0,3);?
outtextxy(140,120," a?那个?嘲弄?时钟。”);?
settextstyle(3,0,3);?
outtextxy(140,150," b?那个?数字?时钟。”);?
outtextxy(140,180," c?退出。”);?
打破;?
案子?2:?setlinestyle(0,0,3);?
矩形(170,145,400,175);?
settextstyle(3,0,3);?
outtextxy(140,120," a?那个?嘲弄?时钟。”);?
settextstyle(3,0,3);?
outtextxy(140,150," b?那个?数字?时钟。”);?
settextstyle(3,0,3);?
outtextxy(140,180," c?退出。”);?
打破;?
案子?3:?settextstyle(3,0,3);?
outtextxy(140,120," a?那个?嘲弄?时钟。”);?
outtextxy(140,150," b?那个?数字?时钟。”);?
settextstyle(3,0,3);?
outtextxy(140,180," c?退出。”);?
setlinestyle(0,0,3);?
矩形(170,175,400,205);?
打破;?
}?
}?
如果(i & gt=100)出口(0);/*如果按键次数超过100次,退出*/?
Switch(choice)/*这里是实现所需功能的参考函数*/?
{?
案子?1:?clear device();?
setbkcolor(4);?
settextstyle(3,0,4);?
outtextxy(160,120,“第65438号+0?有吗?不是吗?建成了。”);?打破;?
案子?2:?clear device();?
setbkcolor(4);?
settextstyle(3,0,4);?
outtextxy(160,150,“2号?有吗?不是吗?建成了。”);?
打破;?
案子?3:?退出(0);?
}?
getch();?
closegraph();?
}对于命令行菜单,通过不断刷新输出,直接模拟菜单行为。
常规:
#包含?& ltstdio.h & gt
#包含?& ltstdlib.h & gt?
#包含?& ltstring.h & gt
int?n,t,k;
int?m;
夏尔?s1[20],s2[20],c;
夏尔?* * l;
夏尔?*num[]={ "一"、"二"、"三"、"四"、"五"、"六"、"七"、"八"、"九"、"十" };
作废?菜单()
{
printf(" \ n \ n \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf("\t\t**1。查找S2在字符串S1 **\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 ",& ampn);
}
作废?检查()
{
夏尔?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 & ltk;n++)
if(a[n]==b[0])
{
j++;?/*记录相同数量的字符*/
做
{
if(a[++n]==b[++t])
{?
j++;
if(j==m)?
{
l++;/*相同数量的子字符串*/
j = 0;/*判断后,相同数量的字符将归零*/
t =-1;/*如果在判断++ t;t将归零*/
}
}
其他
{
j = 0;
t = 0;
打破;/*如果不是,跳出while循环,让for make n+1继续判断*/
}
}while(a[n]!='\0');/*搜索字符数组A的结尾*/
}
Printf("子串出现次数:\n%d\n ",l);
}?
作废?cout()
{
int?n=0,t=0,k = 0;
Printf("请输入一个字符串:\ n ");
fflush(stdin);/*清除缓冲区*/
while((c=getchar())!='\n ')
{
if(c & gt;= ' a ' & amp& ampc & lt='z ')
n++;
if(c & gt;= ' A ' & amp& ampc & lt='Z ')
t++;
if(c & gt;= ' 0 ' & amp& ampc & lt='9')
k++;
}
Printf("带大写字母:\n%d\n ",t);
Printf("带小写字母:\n%d\n ",n);
Printf("带数字:\n%d\n ",k);
}
作废?数字()
{
l = num
Printf("请输入一个数字:(0-10)\ n ");
fflush(stdin);
scanf("%d ",& ampm);
printf(" d "的英文是:\n%s\n ",m,*(l+m-1));
}
作废?主()
{
while(1)
{
系统(“cls”);
menu();
开关(n)
{
案子?1:system(" cls ");check();系统(“暂停”);打破;
案子?2:系统(“cls”);cout();系统(“暂停”);打破;
案子?3:系统(“cls”);number();系统(“暂停”);打破;
案子?4:系统(“cls”);打破;
默认值:system(" cls ");打破;?
}
如果(n==4)?打破;
}
Printf("感谢使用\ n ");
}