怎么写简单的C语言菜单?

这是题目要求:

设计一个含有多个菜单项的菜单程序。要求:
1)主菜单形式如下:
1 *******
2 *******
3 *******
4*******
5退出程序
2)用函数实现各模块功能。3)每种操作完成后返回主菜单。
怎么写啊。。。急求。,,

1、使用输出函数即可。

2、例程:

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
using namespace std;
 void xuanzepaixu()           //选择排序函数
 {
  printf("待添加,请按任意键继续...");
   getchar();
 }
 void erfenpaixu()           //二分查找函数
 {
  printf("待添加,请按任意键继续...");
  getchar();
 }
void menu()    //主菜单
{
    system("cls"); //清屏
 printf("\n\t\t\t        菜单\n");
 printf("\t\t\t#***********************#\n");
 printf("\t\t\t#    1选择排序          #\n");
 printf("\t\t\t#    2二分查找          #\n");
 printf("\t\t\t#    3返回              #\n");
 printf("\t\t\t#    4---关闭           #\n");
 printf("\t\t\t#***********************#\n");
 printf("\t\t\t      请选择(1-4) =:");
}
void main()
{
 char select;
 while(1)
 {  
     menu();
  system("COLOR 9f");       
  scanf("%c",&select);
  if(select=='3')
   break;      //返回上级菜单
  else
  {
   getchar(); //读入回车符
   if(!isdigit(select)) //如果不是数字字符
   {
    printf("\n\7Your select may be wrong, must enter the digit!\n");_getch();
   }
   else
   {
    
    switch (select)
    {
     case '1': xuanzepaixu();break;
        case '2': erfenpaixu();break;
     case '4':exit(0);             //直接退出
     default: 
     {
      printf("\n\7\7Your selected digit may be wrong, select again!\n");
      _getch();
      break;
     }
    }
   }
  }
 };
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
#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;
}
}
}追问

1,2,3,4是要执行一些命令,不是几个星号呀。。。

追答

那你替换成命令的提示文字啊

本回答被提问者和网友采纳
第2个回答  2014-12-12
#include <stdlib.h>
#include <stdio.h>
void function1(){
}
void function2(){
}
void function3(){
}
int main(int argc, char *argv[]){//主函数
char choice; //暂存选择
while(true){
printf("-----------------主题-----------21/11/14 18:38\n\n");
printf("1:功能1\n2:功能2\n3:功能3\n4:退出\n请选择操作:");
scanf("%c",&choice);
switch(choice){
case '1' : function1();break;
case '2' : function2();break;
case '3' : function3();break;
case '4' : return 0;break;
}
system("cls");
}
}
第3个回答  2014-12-13
#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<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我,我会帮你解答,呵呵,真的好开心,终于写出来了
哈哈。。。。
相似回答