c语言中菜单
A. c语言菜单怎么弄
中国电力出版社书号为5123-5504-0的C语言程序设计书上有介绍方法:
现在,通过一个简单的开发实例来理解上述概念。该应用软件运行时,首先出现一个菜单,用户选择某一菜单项后进入相应子模块处理具体问题,处理结束后回到主菜单。当在主菜单上选择退出功能后,软件运行结束。将各子模块划分成子函数后,进一步将菜单初始化和界面显示、选择功能划分成子函数,最终设计出来的函数代码框架如下:
#include <stdio.h>
//菜单初始化函数:设置菜单文字
void InitMenu( char *Menu[] )
{
Menu[0]="1. 菜单项1名称 ";
…
}
// 显示菜单、接受用户选择函数
// 初学者可以使用printf、getch函数实现基本交互
// 进阶后可以引入图形、字体、功能键、鼠标等元素进行人机交互
int ChooseMenu( char *Menu[], int MaxItem )
{
return 1; // 选择菜单1
…
return 0; // 选择退出
}
//模块一
void sub1(void)
{
…
}
void main( void )
{
char *Menu[10],MaxItem=10; //指针数组存储菜单名称:0-9项
intdone=0; //退出标志,为1时退出
InitMenu( Menu ); //调用菜单初始化模块
do
{
// 每轮循环都重新显示界面、接受用户选择、根据用户选择执行相应分支
switch( ChooseMenu(Menu, MaxItem ) )
{
case 1:
sub1();
break;
case 2:
…
case 0:
done=1;
}
}while(!done);
}
在结构那一章还有一个课程设计的菜单,太长了,感兴趣找书看看吧
B. 在c语言中,一个菜单套着一个菜单,如何从二级菜单跳回一级菜单
1、首先在打开的C语言编程软件中,编写这个【homePage】函数。
C. c语言如何返回菜单
1、如果只是想返回已经写好的主菜单页面的话 可以直接在当前函数中结束位置调用主菜单所在的函数,如果想输入某值返回的话 就加个输入提示 比如 在其他函数页面加上“输入0返回主菜单”就可以在任意时候 输入0来返回 当然实现的时候也是输入语句加判断语句 加调用主菜单所在函数,调用前先调用清屏函数。
2、例程:
#include<stdio.h>
intmenu()
{intrt;
charstr[256];
printf("1**** ");
printf("2**** ");
printf("3**** ");
printf("4**** ");
printf("5退出程序 ");
printf("请选择,输入选项前面的数字后回车:");scanf("%s",str);
if(str[0]>='1'&&str[0]<='5')rt=str[0]-'0';elsert=0;
returnrt;
}
voidf1(){}
voidf2(){}
voidf3(){}
voidf4(){}
voidmain()
{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;
}
}
}
D. c语言中,怎样实现子菜单向主菜单回退
1、如果只是想返回已经写好的主菜单页面的话 可以直接在当前函数中结束位置调用主菜单所在的函数,如果想输入某值返回的话 就加个输入提示 比如 在其他函数页面加上“输入0返回主菜单”就可以在任意时候 输入0来返回 当然实现的时候也是输入语句加判断语句 加调用主菜单所在函数,调用前先调用清屏函数。
2、例程:
#include<stdio.h>int menu(){ int rt; char str[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'; else rt=0; return rt;}void f1() {}void f2() {}void f3() {}void f4() {}void main(){ int s,loop=1; while ( loop ) { s=menu(); switch ( s ) { case 1: f1(); break; case 2: f2(); break; case 3: f3(); break; case 4: f4(); break; case 5: loop=0; break; default: break; } }}
E. 怎样用C语言编写菜单
对于窗口组件菜单,需要根据不同平台,通过图形编程接口,进行菜单的编制。
例程:
#include<stdio.h>
#include<graphics.h>
#include<conio.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);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
settextstyle(3,0,3);
outtextxy(140,150,"B.TheDigitalClock.");
outtextxy(140,180,"C.Exit.");
break;
case2:setlinestyle(0,0,3);
rectangle(170,145,400,175);
settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
settextstyle(3,0,3);
outtextxy(140,150,"B.TheDigitalClock.");
settextstyle(3,0,3);
outtextxy(140,180,"C.Exit.");
break;
case3:settextstyle(3,0,3);
outtextxy(140,120,"A.TheMockClock.");
outtextxy(140,150,"B.TheDigitalClock.");
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)/*这里引用函数,实现所要的功能*/
{
case1:cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,120,"No.1havenotbuilt.");break;
case2:cleardevice();
setbkcolor(4);
settextstyle(3,0,4);
outtextxy(160,150,"No.2havenotbuilt.");
break;
case3:exit(0);
}
getch();
closegraph();
}对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。
例程:
#include<stdio.h>
#include<stdlib.h>
#include<string.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(" ******************************************************* ");
printf(" **1.查找字符串S1中S2出现的次数** ");
printf(" **2.统计字符串中大小写字母,数字出现的次数** ");
printf(" **3.将数字翻译成英语** ");
printf(" **4.结束** ");
printf(" ******************************************************* ");
printf(" 您的输入:");
fflush(stdin);
scanf("%d",&n);
}
voidcheck()
{
chara[20],b[20];
intj=0,k,m,l=0;
intt=0,n=0;
printf("请输入主字符串: ");
scanf("%s",a);
k=strlen(a);
printf("请输入子字符串: ");
scanf("%s",b);
m=strlen(b);
for(n=0;n<k;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]!='