C语言怎样编写程序运行完后,不自动结束,而是返回程序的开始???

我用c语言编了一段程序,程序开始会有一个菜单,有几个选项(switch编写)用户选择后,程序执行用户所选的项。
我现在希望在程序执行完后,不自动结束,而是再次返回菜单开始,既用户可以再次进行选择。菜单最后一项为exit,既退出。选择后,程序结束,退出。
也就是说,程序不能自动结束,只能通过在菜单里选择退出才能结束。请教这样怎么编写?

首先,你能够写出菜单函数了吗?
如果可以的话?你的问题便在于这两段代码“system("cls")和system("pause")"了
参考以下,这个菜单函数
void menu()
{
Sleep(2000);
//调用dos命令清空控制台屏幕
system("cls");

//打印功能菜单界面
Sleep(500);
printf("\n\n\t\t\t\t学员管理系统平台\n");
Sleep(500);
printf("\n\t\t\t\t 欢迎您!\n");
Sleep(500);
printf("\n\t\t\t\t\t\t重庆足下软件教育\n");
Sleep(500);
printf("\n\t\t************************************************\n");
Sleep(500);
printf("\n\t\t◎功能菜单:\n\n");
Sleep(1000);
printf("\t\t************************************************\n");
printf("\t\t 1、录入单个学员信息 ☆ 2、显示所有学员信息\n");
printf("\t\t************************************************\n");
Sleep(1000);
printf("\t\t************************************************\n");
printf("\t\t 3、排序显示学员信息 ☆ 4、插入单个学员信息\n");
printf("\t\t************************************************\n");
Sleep(1000);
printf("\t\t************************************************\n");
printf("\t\t 5、删除单个学员信息 ☆ 6、查找单个学员信息\n");
printf("\t\t************************************************\n");
Sleep(1000);
printf("\t\t************************************************\n");
printf("\t\t 7、读取所有学员信息 ☆ 8、保存所有学员信息\n");
printf("\t\t************************************************\n");
Sleep(1000);
printf("\t\t************************************************\n");
printf("\t\t 9、清空全部学员信息 ☆ 0、退出学员管理系统\n");
printf("\t\t************************************************\n");
}
********************************************然后,再在主函数中,调用这个菜单函数;
void main()
{
int choice,i;//定义用户选择变量

do
{
//显示菜单
menu();
printf("\n\t请选择:");
scanf("%d",&choice); //接受用户选择

switch(choice)
{
case 1:
system("cls"); //清屏
printf("\n单个学员信息的循环录入\n");
input();
display();
system("pause");
break;

case 2:
system("cls");
display();
system("pause"); //暂停一下程序
break;

case 3:
system("cls");

if(n==0)
{
printf("\t\t学员个数为0,无法排序,请先录入!\n");
system("pause");
break;
}
else
{
sort(); ;//调用排序函数
system("pause");
break;
}

case 4:
system("cls");
insert(); //调用插入函数
system("pause");
break;

case 5:
system("cls");
remove(); //调用删除函数
system("pause");
break;
case 6:
system("cls");
search(); //调用查找函数
system("pause");
break;

case 7:
system("cls");
n=read(); //调用读取函数
printf("读取成功!\n");
system("pause");
break;

case 8:
system("cls");
save(); //调用保存函数
system("pause");
break;

case 9:
system("cls");
n=0; //清空学员个数
printf("清空完成!\n");
system("pause");
break;

case 0: //退出程序
system("cls");

for(i=5;i>=0;i--)
{
Sleep(1000);
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t请稍等,还有%d秒推出程序!\n\n\n",i);
}
system("cls");
printf("\n\n\n\n\n\n你已经成功退出程序\n\t\t谢谢使用,欢迎再次登录!\n");
exit(0);
break;

default:
system("cls");
printf("\n\n\n\n\n\t\t请选择0-9之间的数!\n");
system("pause");
}
}while(1);
}
而你的问题就在当你调用了主函数中的菜单函数中的某个函数,在执行程序并结束后,将退出整个程序,就在于“你没有写"system("pause")系统清屏,system("pause");返回菜单"这两段代码而已
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-07

放在前后都可以
函数的使用分为声明和定义
1.如果函数在主函数后面定义,则要在调用前声明。
2.如果函数在主函数之前定义,则调用前不用再此声明,直接用就可以。
注:函数的定义指的是有函数体,即指定了函数的功能,函数的声明是不用写出函数体的
例如:int max(int int);它是声明
int max(int a,int b);它是定义
{
a>b?a:b;
}
对于这些在C语言的书中还会有具体讲解。
第2个回答  2011-06-06
这个很简单,可以将全部菜单选项放在while循环中,设置一个int flag=0;
while(flag==0){.....},在最后一项exit中添加flag=1即可,不懂留言即可!!本回答被提问者采纳
第3个回答  2011-06-06
我的方法:::

char x=0;
while( x!='6' ) /* 当选择菜单为6时,exit , 不为6就继续*/
{
cout<<"**********************************************************"<<endl;
cout<<"1--输入\t2--修改";
cout<<"\t3--显示所有\t4--查询\t5--删除\t6--Exit退出"<<endl;
cout<<"**********************************************************"<<endl;
cin >> x;
switch( x )
{
case '1' : { Insert(); break; }
case '2' : { Change(); break; }
case '3' : { Sort(); break; }
case '4' : { FindAsk();break; }
case '5' : { Delete(); break; }
case '6' : { break; }
default : { break; }
}
}
第4个回答  2011-06-06
switch(select)
{
case 1:input();break;
case 2:change();break;
case 3:find();break;
case 4:del();break;
case 5:output();break;
case 6:menu_2();break;
case 0:exit(0);break;
}
以这个为例,当你输入的数为0时才退出。也就是你在菜单中加入提示想干什么,然后输入就OK了。
当你在其它子函数里想退回菜单的话,加一条语句:menu()/*菜单*/;就可以了。本回答被网友采纳
相似回答