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语言编写菜单

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

    例程:

    #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();
    }
  2. 对于命令行菜单,直接通过不断刷新输出来模拟菜单行为。

    例程:

    #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]!='');/*查找完字符数组a结束*/
    }
    printf("子字符串出现次数: %d ",l);
    }
    voidcout()
    {
    intn=0,t=0,k=0;
    printf("请输入一个字符串: ");
    fflush(stdin);/*清除缓冲*/
    while((c=getchar())!=' ')
    {
    if(c>='a'&&c<='z')
    n++;
    if(c>='A'&&c<='Z')
    t++;
    if(c>='0'&&c<='9')
    k++;
    }
    printf("有大写字母: %d ",t);
    printf("有小写字母: %d ",n);
    printf("有数字: %d ",k);
    }
    voidnumber()
    {
    l=num;
    printf("请输入一个数字:(0-10) ");
    fflush(stdin);
    scanf("%d",&m);
    printf("%d对应的英文是: %s ",m,*(l+m-1));
    }
    voidmain()
    {
    while(1)
    {
    system("cls");
    menu();
    switch(n)
    {
    case1:system("cls");check();system("pause");break;
    case2:system("cls");cout();system("pause");break;
    case3:system("cls");number();system("pause");break;
    case4:system("cls");break;
    default:system("cls");break;
    }
    if(n==4)break;
    }
    printf("感谢使用 ");
    }

F. C语言 编写菜单

#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;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]!='\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");
}

楼主,终于帮你写完了,完美测试成功,第一功能因为学艺未精写了两个小时,艾,呵呵,不过我还是很开心,如果你有什么不懂可以HI我,我会帮你解答,呵呵,真的好开心,终于写出来了
哈哈。。。。

G. C语言中如何实现选项菜单的功能

#include<stdio.h>
#include<stdlib.h>

voidhello()
{
printf("helloworld ");
}

intmain()
{

intx;
while(1)
{
printf("-------------操作选项----------- ");
printf("1:返回菜单 ");
printf("2:退出程序 ");
printf("3:执行操作 ");
printf("-------------------------------- ");


printf("按数字键选择要执行的操作:");
scanf("%d",&x);
printf(" ");

//输入2跳出循环,退出程序
if(x==2)
break;

switch(x)
{
case1:break;//输入1,跳出switch语句,进入下一次循环
case3:hello();break;
default://数字输入错误,跳出siwtch语句,进入下一次循环
printf("输入的数字不正确 ");
break;
}
}
return0;
}

说明:有3个选项,1是用返回菜单,2是用于退出程序,3是用于执行相关的操作,这里只是一个示例,所以将要执行的操作,编写成了一个输出hello world的函数。

H. c语言写菜单的示例

#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000
void main1()
{
int a, *p;

p = &a;
printf("please input a number:");
scanf("%d", p); // 对p指向的a地址输入值
printf("a=%d\n*p=%d\n", a, *p); // 输出a地址存的值 输出p指向的地址a的内容
}
void main2()
{
int a,*p;

p = &a;
printf("please input a number:");
scanf("%d", &a); // 对p指向的a地址输入值
printf("p=%p *p=%d\n", p,*p);// 输出p指向的a的首地址号不足的位数用00补齐 输出p指向的地址a的内容
printf("%4d%4d %x\n", (*p)++, ++(*p), p);//输出现在p指向的地址,输出p指向的地址内的值加一后的值,输出p指向的地址内的值加一后的值再加一
printf("%4d%4d\n", *p++, *p);// 输出上个程序加一后的p指向的地址的内容
printf("p=%x\n", p);// 输出现在p指向的地址号
}
void sub(int x, int y, int *z)
{
*z = y - x;
}
void main3()
{
int a, b, c;
sub(10, 5, &a);// 把10和5分别富值给x,y 把a的地址传个*z在sub中对z指向的a地址富值
sub(7, a, &b);// 把7和a的值分别富值给x,y 把b的地址传个*z在sub中对z指向的b地址富值
sub(a, b, &c);// 把a的值和吧的值分别富值给x,y 把c的地址传个*z在sub中对z指向的c地址富值
printf("a=%d\nb=%d\nc=%d\n", a, b, c);// 输出被赋值后的a b c
}
void main4()
{
int a[] = {1, 2, 3, 4, 5};
int *p = NULL;

p = a;// p指向a的首地址
printf("%d ", *p);// 输出p指向的a首地址的第一个元素的内容
printf("%d ", *(++p));// p的指向后移动指向a的第二个元素并输出她的内容
printf("%d ", *++p);// p的指向后移动指向a的第二个元素并输出她的内容
printf("%d ", *(p--));// p输出值后指向的位子向前移一个元素
printf("%d ", *p++);// 输出p的值后再将p的指向向后移一个元素
printf("%d ", *p);// 输出p移后的指向的地址的值
printf("%d ", ++(*p));// 对p指向的地址的值加一后输出值
printf("%d\n ", *p);// 输出现在p指向的地址的值
}
f(int *t)
{
*t =10;
}
void main5()
{
int *p, a;

a = 2;
p = &a;// p指向a的地址
f(p);// 把p指向的a的地址传给*t在子函数中对a进行重新赋值;
printf("a=%d\n", a);// 输出a重新赋的值
}

void main6()
{
int a[10], j, *p;

for (j = 0; j < 10; j++)
a[j] = j+1; // 对数组a进行赋值
printf("\nOutput array using a[j]:\n");
for (j = 0; j < 10; j++)
printf("%d ", a[j]);// 输出赋值后的a
p = a; // p指向数组a首地址
printf("\nOutput array using p[j]:\n");
for (j = 0; j < 10; j++)
printf("%d ", p[j]); // 把指针p当数组用输出p指向的a的各个元素
printf("\nOutput array using*( p+j):\n");
for (j = 0; j < 10; j++)
printf("%d ", *(p+j)); // 把指针p当数组用输出p指向的a的各个元素
printf("\nOutput array using*( a+j):\n");
for (j = 0; j < 10; j++)
printf("%d ", *(a+j)); // 使用数组a的指针性质
printf("\nOutput array using *p++:\n");
for (j = 0; j < 10; j++)
printf("%d ", *p++); // 把指针p当数组用输出p指向的a的各个元素
printf("\n");
}
void Input(float *p,int n)
{
int i;
printf("Pleese input %d score: ",n);
for(i=0;i<n;i++)
{
scanf("%f",(p+i));
}
}
void Output(float *q,int n)
{
int i;
printf("Output the score:\n");
for(i=0;i<n;i++)
{
printf("%f\n",*(q+i));
}
}
void FMax(float score[], int n,float *maxs,int *maxn )
{
int i;
*maxs=score[0];
for(i=1;i<n;i++)
{
if(score[i]>*maxs)
{
*maxs=score[i];
*maxn=i;
}

}
}
void FMin(float score[], int n,float *mins,int *minn )
{
int i;
*mins=score[0];
for(i=1;i<n;i++)
{

if(score[i]<*mins)
{
*mins=score[i];
*minn=i;
}
}
}
void main7()
{
float score[MAX],maxs,mins;
int maxn,minn;
Input(score,10);
Output(score,10);
FMax(score,10,&maxs,&maxn);
FMin(score,10,&mins,&minn);
printf("maxscore=%.2f,\t\tmaxnum=%d\nminscore=%.2f,\t\tminnum=%d\n",maxs,maxn,mins,minn);
}
int aver(int (*p)[5],int q)
{
int j,m=0,b;
for(j=0;j<5;j++)
{
m+=*(*(p+q-1)+j);
}
b=m/5;
return(b);
}
void main8()
{
int i,j,(*pscore)[5],a,n,q[10][5];
pscore=q;
printf("Please input ten students's five scores:\n");
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&pscore[i*5+j]);
}
}
printf("Please input students's number:");
scanf("%d",&n);
a=aver(pscore,n);
printf("第%d学生五门成绩的平均值为:%d\n",n,a);
}
void main9()
{
char *str1,*str2,*str3,a[100],b[100],c[100];
str1=&a[0];
str2=&b[0];
str3=&c[0];
printf("str1=");
gets(str1);
printf("str2=");
gets(str2);
strcat(str1,str2);// 把字符串str2接到字符串str1的后面
printf("str1=%s\n",str1);// 输出连接后的字符串str1
strcpy(str3,str1);// 把字符串str1接到字符串str3的后面
printf("str3=%s\n",str3);// 输出连接后的字符串str3
}

void main10( )
{
char *p = "abcdefghijklmnopq";
while( *p++!='e')// 指针p的指向地址向后移一个元素判断是不是等于'e'
printf("%c\n", *p);// 如果判断等于'e'就输出p指向的地址内的字符
}
void main11()
{
char b[] = "program";
char *a = "PROGRAM";
int i = 0;

printf("%c%s\n", *a,b+1);// 先对数组b加一后输出b 再输出*a
while (putchar(*(a+i)))
{
i++;
}
printf("i = %d\n", i);// 判断a有多少个字符输出
while (--i)
{
putchar(*(b + i)); // 将p字符串逆向输出不输出最后一个
}
printf("\n%s\n", &b[3]);// 输出b字符串的最后四位
}
void main12( )
{
int a=1, *p, **pp;
pp =&p;
p =&a;
a++;
printf ("%d,%d,%d\n",a,*p, **pp);// a是a加一后的值 *P是指向的a地址内的值 **pp是指向的 *P是指向的a地址内的值
}
void main13()
{
char *alpha[7]={ " ABCD","EFGH ","IJKL ","MNOP ","QRST ","UVWX ","YZ "};
char **p;
int i;
p = alpha;
for(i = 0;i < 4;i++)
printf("%c", *(p[i]));// 输出指向的前四个字符串的第一个字母
printf("\n");
}
void main14()
{
char n[100];
char *s [ ]={"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Ten"};
int i,x,len;
printf("输入一串阿拉伯数字:\n");
gets(n);
len=strlen(n);// 计算输入的n的长度
for(i=0;i<len;i++)
{
x=*(n+i)-48; /* 48为字符"0"的ASCII码 */
printf("%s ",s[x]);// 将输入的数字当地址号
}
printf("\n");
}
unsigned int MyStrlen(char s[ ])
{
char *p = s;

while (*p !='\0' )
{
p++;
}
return(p-s );
}
void main15()
{
char a[1000];
int b;
printf("Input char number:");
gets(a);
b= MyStrlen(a);
printf("The number's len:%d\n",b);
}
void reading(char (*a)[5], int *num)
{
int i=0;
gets(a[i]);
while(!strcmp(a[i],"****")==0)
{

gets(a[i]);
}
*num=i;
}
void findmax(char (*a)[5], int *num,char **max)
{
int i;
for (*max=a[0],i=1;i<*num;i++)
{
if(strcmp(a[i],*max)>0)
*max=a[i];
}
}
void main16()
{
char ss[10][5],*ps;
int n;
reading(ss,&n);
findmax(ss,&n,&ps);
printf("max=%s\n",ps);
}
int *search1(int(*s)[4],int *len,int *n)
{
int i,j;

for (i = *n; i<*len; i++)
{
for (j=0; j<4; j++)
{
if (*(*(s+i)+j) < 60)
{
*n=i;
return s[i];//如有不及格的返回地址
}
}
}
return NULL;//如果没有返回NULL,好打出没有成绩不及格的同学
}
int *search2(int(*s)[4],int *len,int *n)
{
int i,j;

for (i = *n; i<*len; i++)
{
for (j=0; j<4; j++)
{
if (*(*(s+i)+j) < 90)
{
*n=i;
return s[i];//如有不及格的返回地址
}
}
}
return NULL;//如果没有返回NULL,好打出没有成绩不及格的同学
}
void main17()
{
int i,j,n,score[1000][4],count=0,x;
int *p;
p=&score[0][0];
printf("Pleese input the students's total number(小于1000):\n ");
scanf("%d",&n);
printf("Pleese input every student's score:\n ");
for(i=0;i<n;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&p[i*4+j]);
}
}
printf("是100分制请输入100,150分制请输入150:");
scanf("%d",&x);
switch(x)
{
case 100:
i=0;//从第一个开始擦找
while (i<n+1)
{
p=search1(score,&n, &i);

if (p)//如果有
{
printf("不及格的是第 %d 个人,三科成绩分别为:\n",i+1);

for (j = 0; j < 4; j++)
{
printf("%d, ", *p++);
}

count++;//记录有几个不及格的

printf("\n");

}
i++;
}

if (!p&&count==0)//如果没有
{
printf("没有成绩不及格的同学\n");
}
break;
case 150:
i=0;//从第一个开始擦找
while (i<n+1)
{
p=search2(score,&n, &i);

if (p)//如果有
{
printf("不及格的是第 %d 个人,三科成绩分别为:\n",i+1);

for (j = 0; j < 4; j++)
{
printf("%d, ", *p++);
}

count++;//记录有几个不及格的

printf("\n");

}
i++;
}

if (!p&&count==0)//如果没有
{
printf("没有成绩不及格的同学\n");
}
break;
default:
printf("Incorrect letter entered .");
}
}
#define MAXI 16
#define N 5
void sort(char (*s)[MAXI],int n)
{
int i , j;
char *temp =(char *)malloc(sizeof(char ) * MAXI) ;
for(i = 0; i < n-1 ; i++)
{
for(j = i+1; j < n ; j++)
{
if(strcmp(s[i] , s[j]) > 0) //这里的排序不能用s[i] = s[j],错误:incompatible types in assignment
{
strcpy(temp,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],temp);
}
}
}
free(temp);
}
void print(char (*s)[MAXI],int n)
{
int i;
for(i = 0; i < n ; i++)
{
printf("%s\n",s[i]);
}
}
void main18()
{
int index;
char str[N][MAXI];
for(index = 0; index < N ;index++)
{
printf("请输入第%d个字符串:\n",index+1);
gets(str[index] );
}
sort(str,N);
print(str,N);
}
void main19()
{
printf("\t\t\t\t欢迎使用");
printf("\n");
printf("\t\t*************************************************");
printf("\n\t\t*\t\t\t\t\t\t*");
printf("\n\t\t*\t\t\t\t\t\t*");
printf("\n\t\t*\t\t输入1.第①个实验\t\t*");
printf("\n\t\t*\t\t输入2.第②个实验\t\t*");
printf("\n\t\t*\t\t输入3.第③个实验\t\t*");
printf("\n\t\t*\t\t输入4.第④个实验\t\t*");
printf("\n\t\t*\t\t输入5.第⑤个实验\t\t*");
printf("\n\t\t*\t\t输入6.第⑥个实验\t\t*");
printf("\n\t\t*\t\t输入7.第⑦个实验\t\t*");
printf("\n\t\t*\t\t输入8.第⑧个实验\t\t*");
printf("\n\t\t*\t\t输入9.第⑨个实验\t\t*");
printf("\n\t\t*\t\t输入10.第⑩个实验\t\t*");
printf("\n\t\t*\t\t输入11.第⑾个实验\t\t*");
printf("\n\t\t*\t\t输入12.第⑿个实验\t\t*");
printf("\n\t\t*\t\t输入13.第⒀个实验\t\t*");
printf("\n\t\t*\t\t输入14.第⒁个实验\t\t*");
printf("\n\t\t*\t\t输入15.第⒂个实验\t\t*");
printf("\n\t\t*\t\t输入16.第⒃个实验\t\t*");
printf("\n\t\t*\t\t输入17.第⒄个实验\t\t*");
printf("\n\t\t*\t\t输入18.第⒅个实验\t\t*");
printf("\n\t\t*\t\t输入0.结束\t\t\t*");
printf("\n\t\t*************************************************\n");
}
void main()
{
int n,m;
do{
system("cls");
main19();
printf("请输入所需要选择运行的程序的序号:");
scanf("%d",&n);
switch(n)
{
case 1:
main1();
break;
case 2:
main2();break;
case 3:
main3();break;
case 4:
main4();break;
case 5:
main5();break;
case 6:
main6();break;
case 7:
main7();break;
case 8:
main8();break;
case 9:
main9();break;
case 10:
main10();break;
case 11:
main11();break;
case 12:
main12();break;
case 13:
main13();break;
case 14:
main14();break;
case 15:
main15();break;
case 16:
main16();break;
case 17:
main17();break;
case 18:
main18();break;
default:
printf("选错了!!!!!!!\n");
}
printf("不想继续就输入0否则输入任意数字:");
scanf("%d",&m);
}while(m!=0);
}

I. C语言编写菜单

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//值传递
voidfun1(chara)
{
a='b';
}
//地址传递
charfun2(char*a)
{
*a='a';
return*a;
}
//动态分配数组
voidfun3(char*&a)
{
a=(char*)malloc(sizeof(char));
}
charcaidan()
{
charchoose[5];
printf(" *************************************** ");
printf("┌──────┐ ");
printf("│菜单│ ");
printf("__________________________________ ");
printf("│1,按值传递| ");
printf("│2,按地址传递| ");
printf("│3,动态数组演示| ");
printf("│4,退出| ");
printf("└────────────────┙ ");
printf("************************************** ");
do
{
printf("请输入您的选择(1-4):");
scanf("%s",choose);
}while(strcmp(choose,"1")&&strcmp(choose,"2")&&strcmp(choose,"3")&&strcmp(choose,"4"));
//返回选择的菜单,注意如果输入太长这里会异常,因为choose[5],只申请了5个字节。
returnchoose[0];
}
voidmain()
{
//执行菜单的选择
while(1)
{
switch(caidan())
{
case'1':
{
chara='a';
fun1(a);
//按值传递内容不变
break;
}
case'2':
{
charb='b';
chara=fun2(&b);
//按地址传递内容会变
break;
}
case'3':
{
char*p=NULL;
fun3(p);
//动态数组分配成功
break;
}
case'4':exit(0);
}
}

}