c语言编写菜单程序

#include<stdio.h>
#include<graphics.h>
#include<conio.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();
}

② c语言菜单程序设计

随便乱写了一个程序,就是函数间的互相调用。
#include <stdio.h>
#include <stdlib.h>
void menu1()
{
puts("选择菜单");
puts("1.计算");
puts("2.显示回一些有趣的东西");
int num;
scanf("%d",&num);
switch(num)
{
case 1:system("cls");menu2();break;
case 2:system("cls");menu3();break;
}
}
void menu2()
{
puts("1+1=2");
system("pause");
system("cls");
menu1();
}
void menu3()
{
puts("你真答帅!");
system("pause");
system("cls");
menu1();
}
int main()
{
printf("Hello!\n");
menu1();
return 0;
}

③ C语言菜单程序编写

#include
<stdio.h>
#include
<math.h>
void
armstrong(int
a)
{
int
i;
int
n
=
1;
int
b
=
a;
int
s
=
0;
while(b
/=
10)
n++;
b
=
a;
for(i
=
0;
i
<
n;
i
++){
s
+=
(int)pow(b%10,
n);
b
/=
10;
}
if(s
==
a){
printf("%d
是水仙花数!
",
a);
}else{
printf("%d
不是水仙花数!
",
a);
}
}
void
prime(int
a)
{
int
i;
if(a
<
2)
{
printf("%d
不是素数!
",
a);
return
;
}
for(i
=
2;
i
<
a;
i
++){
if(a
%
i
==
0)
{
printf("%d
不是素数!
",
a);
return
;
}
}
printf("%d
是素数!
",
a);
}
void
max(int
a,
int
b,
int
c)
{
if(b
>
a)
a
=
b;
if(c
>
a)
a
=
c;
printf("最大值是:%d
",
a);
}
void
factorial(int
a)
{
int
i;
int
f
=
1;
for(i
=
a;
i
>1;
i
--)
f
*=
i;
printf("%d
的阶乘是:%d
",
a,
f);
}
int
main(int
argc,
char
**argv)
{
int
a,
b,
c;
int
type
;
int
run
=
1;
printf("本程序可完成某些数学计算:
");
printf(
"***********************************
"
"*
1.判断一个数是否为水仙花数。
*
"
"*
2.判断一个数是否为素数。
*
"
"*
3.求三个数的最大值。
*
"
"*
4.求一个数的阶乘。
*
"
"*
0.退出。
*
"
"***********************************
");
do{
printf("请按菜单进行选择(0-4):");
scanf("%d",
&type);
switch(type){
case
0:
while(1){
getchar();
printf("你确定退出吗?(y/n)");
a
=
getchar();
switch(a){
case
'y':
run
=
0;
break;
case
'n':
run
=
1;
break;
default:
break;
}
if((a
==
'y')
||
(a
==
'n'))
break;
}
break;
case
1:
printf("请输入一个数:");
scanf("%d",
&a);
armstrong(a);
break;
case
2:
printf("请输入一个数:");
scanf("%d",
&a);
prime(a);
break;
case
3:
printf("请输入三个数:");
scanf("%d%d%d",
&a,
&b,
&c);
max(a,
b,
c);
break;
case
4:
printf("请输入一个数:
");
scanf("%d",
&a);
factorial(a);
break;
default:
break;
}
}while(run);
return
0;
}

④ 编写一个C语言程序,显示如下菜单并实现相应的菜单选择功能

把2楼的稍微改了下
加了阶乘功能
#include<stdio.h>
#include<math.h>
void
my_jc()
{
int
c=0,i,sum=1;
printf("输入整数N:");
scanf("%d",&c);
for(i=1;i<=c;i++)
sum=sum*i;
printf("%d\n",sum);
}
void
my_LFG()
{
int
b=0;
printf("输入整数N:");
scanf("%d",&b);
printf("立方根为%f\n",pow(b,1.0/3.0))
;
}
void
my_LF()
{
int
a=0;
printf("输入整数N:");
scanf("%d",&a);
printf("立方为:%d\n",a*a*a);
}
void
main()
{
int
server=0;
while(server!=3)
{
printf("************************************************
\n");
printf("1.求整数n的立方\n")
;
printf("2.求整数n的立方根\n
")
;
printf("3.求n的阶乘并结束程序\n");
printf("************************************************\n");
printf("请选择服务类型:");
scanf("%d",&server);
switch(server)
{
case
1:
my_LF();
break;
case
2:
my_LFG();
break;
case
3:
{my_jc();break;}
}
}
}

⑤ c语言用switch语句实现菜单程序

#include <stdio.h>

int count(a,b,sign){

int num;

switch (sign) {

case '+':

num=(a+b);

break;

case '-':

num=(a-b);

break;

case '*':

num=(a*b);

break;

case '/':

num=a/b;

break;

default:

break;

}

return num;

}

int main(void){

char sign;

int ch,a,b,num;

// double num;

printf("1. a,b,add //求两数之和\n");

printf("2. a,b,sub //求两数之差\n");

printf("3. a,b,pro //求两数之积\n");

printf("4. a,b,div //求两数之商\n");

printf("5. exit\n\n");

while (1) {

printf("Please select a menu:");

scanf("%d",&ch);

switch (ch) {

case 1:

sign='+';

break;

case 2:

sign='-';

break;

case 3:

sign='*';

break;

case 4:

sign='/';

break;

default:

return 0;

}

printf("please input 2 number:\n");

scanf("%d%d",&a,&b);

num=count(a,b,sign);

printf("num=%d\n",num);

}

return 0;

}
//没有考虑除法浮点计算;没有考虑错误输入;

⑥ 如何用C语言做一个菜单,里面放程序

1、首先新建源文件c.c,用文本编辑器打开。

⑦ 求一个C语言菜单函数的程序

我写了一个完整程序给你参考,你可以在这个基础上增加你的功能。
代码如下(vc++6.0下编译通过):
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>

void func1()
{
printf("func1 ... \n");getch();
//coding here ...
}

void func2()
{
printf("func2 ... \n");getch();
//coding here ...
}

//any other func coding here ..

void menu() //主菜单
{
system("cls"); //清屏
printf("\n\t\t\t 菜单\n");
printf("\t\t\t#***********************#\n");
printf("\t\t\t# 1.xxxx #\n");
printf("\t\t\t# 2.xxxxxxx #\n");
printf("\t\t\t# //any other.... #\n");
printf("\t\t\t# 9.退出 #\n");
printf("\t\t\t#***********************#\n");
printf("\t\t\t 请选择(1-9): ");
}
void main()
{
char select;
while(1)
{
menu();
system("COLOR 9f");
fflush(stdin);
scanf("%c",&select);

getchar(); //读入回车符
if(!isdigit(select)) //如果不是数字字符
{
printf("\n\7Your select may be wrong, must enter the digit!\n");
getch();
}
else
{
switch (select)
{
case '1':
func1();
break;
case '2':
func2();
break;

//any other coding here ...

case '9':
exit(-1);//直接退出
default:
printf("\n\7\7Your selected digit may be wrong, select again!\n");
getch();
break;
}
}
}
}

希望对你有帮助。

⑧ 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的函数。

⑨ C语言菜单程序设计

//完整版写完了
#include<stdio.h>
#defineN4
voidfun1(inta[],intn)//建立数组
{
inti;
printf("输入数组a[%d] ",n);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
}

voidfun2(inta[],intn)//输出数组
{
inti;
for(i=0;i<n;i++)
printf("%d",a[i]);
printf(" ");

}

voidfun3(inta[],intn)//数组升序排序:选择排序法
{
inti,j,t;
for(j=1;j<n;j++)//N次比较
for(i=0;i<j;i++)//每趟中比j次
if(a[i]>a[j])//与a[i]后面的元素进行比较
{
t=a[i];a[i]=a[j];a[j]=t;
}
}

voidfun4(inta[],intn)//查找数据
{
intb,i,k=0;
printf("输入要查找的数:");
scanf("%d",&b);
for(i=0;i<n;i++)
{
if(a[i]==b)
printf("a[%d]=%d ",i,b);
elsek++;
if(k==n)printf("没有这个数 ");
}
}

voidfun5(inta[],intn)//逆序输出
{
inti;
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
printf(" ");

}

voidmain()
{
intnum,a[N];

printf("1.建立数组 ");
printf("2.输出数组 ");
printf("3.数组排序 ");
printf("4.查找数据 ");
printf("5.逆序输出 ");
printf("0.退出程序 ");

while(1==1){
printf(" 请选择功能:");
scanf("%d",&num);
switch(num)
{
case5:fun5(a,N);break;
case4:fun4(a,N);break;
case3:fun3(a,N);break;
case2:fun2(a,N);break;
case1:fun1(a,N);break;
case0:return;
}
}
}

⑩ 怎样用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("感谢使用 ");
    }