C语言实现单位车辆调度管理

C语言实现单位车辆调度管理

本文实例为大家分享了C语言实现单位车辆调度管理的具体代码,供大家参考,具体内容如下

单位车辆信息包括:车牌号、车型、载重(客)量,车牌,生产厂家,出厂日期,购买日期,购买单价等;车辆调度信息还应包括:用车人,用车单位,调度人,出车车牌,出车司机,出车用途,出车日期,出车时间,收车日期,收车时间及出车费用等信息等。设计“车辆调度管理系统”,使之能提供以下功能:

系统以菜单方式工作;

车辆调度信息录入功能(车辆调度信息用文件vehicle.txt保存);

车辆信息及车辆调度信息浏览功能;

车辆调度查询和排序功能: 

车辆信息及车辆调度信息的删除与修改等功能。

代码如下,完全原创,代码功能完整!!

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int feature;//定义输入的功能选项 char now_date[12];//定义系统当前日期存储缓冲区 SYSTEMTIME sys; //定义系统时间变量 //定义车辆数据结构 typedef struct Vehicle {     char *ver_id;//定义车辆编号     char *ver_no;//定义车辆牌号     char *weight;//定义车辆对应载重量     char *ver_trand;//定义车牌     char *factory;//定义车辆生产厂家     char *outdate;//定义车辆出厂日期     char *buydate;//定义车辆购买日期     char *section;//定义车辆调用单位     char *purpose;//定义车辆出车用途     char *usedate;//定义车辆出车日期     char *usetime;//定义车辆调度时长     char *useprice;//定义车辆出车费用     char *price;//定义车辆购买单价     char *ver_type;//定义车辆类型     char *ver_status;//定义车辆状态     char *state;//定义车辆运营状态     char *service;//定义车辆维修情况     char *violation;//定义车辆违章情况     char *ver_last_date;//定义车辆归还日期     char *lender_name;//定义租车人姓名     char *lender_id;//定义租车人身份证号码     char *return_time;//定义归还时间 }Vehicle,*VData; //定义车辆链表 typedef struct VNode {     Vehicle data;     struct VNode *next; }VNode,*VehicleList; //声明函数 VehicleList select_vehicle(VehicleList L, char * key);//定义车辆查询函数 VehicleList InitList(VehicleList L);//定义链表初始化函数 VehicleList LoadData(VehicleList L, char *filename);//定义信息读取函数 void SaveData(VehicleList L, char *filename);//定义存储数据函数 int main_menu();//定义主菜单 int dispatch(VehicleList L, char *lender_name, char *lender_id, char *return_time, char *section,char *purpose,              char *usedate,char *useprice,char *usetime);//定义车辆调度函数 void back_vehicle(VehicleList L, char * key, char *lender_name, char *lender_id);//定义车辆归还函数 void list_all(VehicleList L);//定义车辆总览函数 VehicleList select_vehicle(VehicleList L, char * key);//定义车辆查询函数 VehicleList register_vehicle(VehicleList L);//定义车辆登记函数 void delete_vehicle(VehicleList L, char * key);//定义车辆删除函数 int datecmp(char *a,char *b);//定义日期比较函数 int quit();//定义退出函数 char *getS(); //定义字符串输入接口函数 char *getS() {     char *c;     char s[30];     scanf("%s",s);     c=(char*)malloc(sizeof(char)*(strlen(s)+1));     strcpy(c,s);     return c; } //定义链表初始化函数 VehicleList InitList(VehicleList L) {     L=(VehicleList)malloc(sizeof(VNode));     L->next=NULL;     return L; } //定义比较日期大小函数 int datecmp(char *a,char *b) {     int i;     for(i=0;i<11;i++)     {         if(a[i]>b[i])             return 1;         else if(a[i]==b[i])             continue;         else             return -1;     }     return 0; } //定义从文件加载数据函数 VehicleList LoadData(VehicleList L,char *filename) {     VehicleList p,q;     //Vehicle v,v2,v3;     Vehicle vdata;     FILE *fp;//定义文件指针     char ver_id[20],ver_no[20],weight[20],ver_trand[20],factory[20],outdate[20];     char buydate[20],price[20],ver_type[20],ver_status[20],ver_date[20],usetime[20];     char section[20],purpose[20],usedate[20],useprice[20];     char state[20],service[20],violation[20];     char lender_name[20],lender_id[20],return_time[20];     q=L;     if((fp = fopen(filename,"r+")) == NULL)     {         printf("文件数据读取失败!\n");     }     else     {         while (!feof(fp))//将文件中数据读取到链表中         {             fscanf(fp,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\r\n",                    ver_id,ver_no,weight,ver_trand,factory,outdate,buydate,price,ver_type,ver_status,                    ver_date,purpose,usedate,usetime,useprice,state,service,violation,                    lender_name,lender_id,return_time);             vdata.ver_id=(char*)malloc(sizeof(char)*(strlen(ver_id)+1));             vdata.ver_no=(char*)malloc(sizeof(char)*(strlen(ver_no)+1));             vdata.weight=(char*)malloc(sizeof(char)*(strlen(weight)+1));             vdata.ver_trand=(char*)malloc(sizeof(char)*(strlen(ver_trand)+1));             vdata.factory=(char*)malloc(sizeof(char)*(strlen(factory)+1));             vdata.outdate=(char*)malloc(sizeof(char)*(strlen(outdate)+1));             vdata.buydate=(char*)malloc(sizeof(char)*(strlen(buydate)+1));             vdata.price=(char*)malloc(sizeof(char)*(strlen(price)+1));             //vdata.section=(char*)malloc(sizeof(char)*(strlen(section)+1));             vdata.purpose=(char*)malloc(sizeof(char)*(strlen(purpose)+1));             vdata.usedate=(char*)malloc(sizeof(char)*(strlen(usedate)+1));             vdata.usetime=(char*)malloc(sizeof(char)*(strlen(usetime)+1));             vdata.useprice=(char*)malloc(sizeof(char)*(strlen(useprice)+1));             vdata.ver_type=(char*)malloc(sizeof(char)*(strlen(ver_type)+1));             vdata.state=(char*)malloc(sizeof(char)*(strlen(state)+1));             vdata.service=(char*)malloc(sizeof(char)*(strlen(service)+1));             vdata.violation=(char*)malloc(sizeof(char)*(strlen(violation)+1));             vdata.ver_status=(char*)malloc(sizeof(char)*(strlen(ver_status)+1));             vdata.ver_last_date=(char*)malloc(sizeof(char)*(strlen(ver_date)+1));             vdata.lender_name=(char*)malloc(sizeof(char)*(strlen(lender_name)+1));             vdata.lender_id=(char*)malloc(sizeof(char)*(strlen(lender_id)+1));             vdata.return_time=(char*)malloc(sizeof(char)*(strlen(return_time)+1));             strcpy(vdata.ver_id,ver_id);             strcpy(vdata.ver_no,ver_no);             strcpy(vdata.weight,weight);             strcpy(vdata.ver_trand,ver_trand);             strcpy(vdata.factory,factory);             strcpy(vdata.outdate,outdate);             strcpy(vdata.buydate,buydate);             strcpy(vdata.price,price);             strcpy(vdata.purpose,purpose);             strcpy(vdata.usedate,usedate);             strcpy(vdata.usetime,usetime);             strcpy(vdata.useprice,useprice);             strcpy(vdata.ver_type,ver_type);             strcpy(vdata.ver_status,ver_status);             strcpy(vdata.state,state);             strcpy(vdata.service,service);             strcpy(vdata.violation,violation);             strcpy(vdata.ver_last_date,ver_date);             strcpy(vdata.lender_name,lender_name);             strcpy(vdata.lender_id,lender_id);             strcpy(vdata.return_time,return_time);             p=(VehicleList)malloc(sizeof(VNode));             p->data=vdata;             q->next=p;             q=p;         }         fclose(fp);     }     q->next=NULL;     return L; } //定义存储数据函数 void SaveData(VehicleList L, char *filename) {     VehicleList p;     FILE *fp;//定义文件指针     p=L;     if((fp = fopen(filename,"w+")) == NULL)     {         printf("文件写入失败!\n");     }     else     {         while (p->next != NULL)         {             fprintf(fp,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\r\n",p->next->data.ver_id,                     p->next->data.ver_no,p->next->data.weight,p->next->data.ver_trand,p->next->data.factory,                     p->next->data.outdate,p->next->data.buydate,p->next->data.price,                     p->next->data.usedate,p->next->data.useprice,                     p->next->data.ver_type,p->next->data.ver_status,p->next->data.usetime,                     p->next->data.state,p->next->data.service,p->next->data.violation,                     p->next->data.ver_last_date,p->next->data.lender_name,                     p->next->data.lender_id,p->next->data.return_time);             p=p->next;         }     }     fclose(fp); } //定义主菜单 int main_menu() {     int i;     printf("******************************************************\n");     printf("*                     汽车调度程序                   *\n");     printf("*                                         韩力毅     *\n");     printf("******************************************************\n");     printf("*                      1.汽车调度                    *\n");     printf("*                      2.汽车归还                    *\n");     printf("*                      3.车辆总况一览                *\n");     printf("*                      4.车辆查询                    *\n");     printf("*                      5.新车登记                    *\n");     printf("*                      6.车辆注销                    *\n");     printf("*                      7.退出系统                    *\n");     printf("******************************************************\n");     printf("*                      请选择: 1-7                   *\n");     printf("******************************************************\n");     printf("请输入您的选项:");     scanf("%d", &i);     feature=i;     return i; } //定义功能1--汽车调度 int dispatch(VehicleList L, char *lender_name, char *lender_id, char *return_time, char *section,char *purpose,              char *usedate,char *useprice,char *usetime) {     char *vtype,*vid;//车型     VehicleList p,q1,q2;     char tmpdate[20];     int i=0;     p=L;     q1=L;     q2=L;     strcpy(tmpdate,now_date);     printf("\n请选择您需要的车型(A.大型车 B.中型车 C.小型车 E.返回主菜单 请输入大写字母!):");     vtype = getS();     if (strcmp("E",vtype) == 0) return 0;//如果输入E,返回主菜单     printf("\n*************************************本次出车费用为200元*************************************\n");     printf("\n****************************************可选车辆列表******************************************");     printf("\n车辆编号   车牌号  载重量  车牌  车辆类型    车辆状态    上次出车时间(DDYYMM)\n");     while (L->next != NULL)     {//显示符合条件的在库车辆信息         if (strcmp("出车中",L->next->data.ver_status) !=0 && strcmp(vtype,L->next->data.ver_type) ==0)         {             if(datecmp(tmpdate,L->next->data.ver_last_date) > -1)//调用比较未调度时间的函数             {                 q1=L;//获得最长时间没有被调度的车的节点指针                 strcpy(tmpdate,q1->next->data.ver_last_date);             }             printf("%6s %10s %-10s %3s %8s %13s %15s\n",                    L->next->data.ver_id,L->next->data.ver_no,L->next->data.weight,L->next->data.ver_trand,L->next->data.ver_type,                    L->next->data.ver_status,L->next->data.ver_last_date);         }         if (strcmp("NEW",L->next->data.ver_last_date) ==0 && strcmp(vtype,L->next->data.ver_type) ==0)         {             i++;//计算新车数量             q2=L;//获得新车的节点指针         }         L=L->next;     }     L=p;     printf("**************************************************************************\n");     printf("请输入车辆编号或输入W智能筛选(输入E返回主菜单):");     vid = getS();     if (strcmp("W",vid) == 0)     {         if(i>0)         {             printf("\n****************************************车辆调度结果****************************************");             printf("\n已调出车辆:%s,载重量:%s,车牌:%s,出车日期:%s\n",q2->next->data.ver_id,q2->next->data.weight,q2->next->data.ver_trand,now_date);             printf("**********************************************************************************************\n");             q2->next->data.ver_status="出车中";//修改车辆状态和上次出车时间             q2->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));             strcpy(q2->next->data.ver_last_date,now_date);             strcpy(q2->next->data.lender_name,lender_name);             strcpy(q2->next->data.lender_id,lender_id);             strcpy(q2->next->data.return_time,return_time);             strcpy(q2->next->data.section,section);             strcpy(q2->next->data.purpose,purpose);             strcpy(q2->next->data.usedate,usedate);             strcpy(q2->next->data.useprice,useprice);             strcpy(q2->next->data.usetime,usetime);             return 1;         }         else         {             printf("\n****************************************车辆调度结果****************************************");             printf("\n已调出车辆:%s,载重量:%s,车牌:%s,出车日期:%s\n",q1->next->data.ver_id,q1->next->data.weight,q1->next->data.ver_trand,now_date);             printf("**********************************************************************************************\n");             q1->next->data.ver_status="出车中";//修改车辆状态和上次出车时间             q1->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));             strcpy(q1->next->data.ver_last_date,now_date);             strcpy(q1->next->data.lender_name,lender_name);             strcpy(q1->next->data.lender_id,lender_id);             strcpy(q1->next->data.return_time,return_time);             strcpy(q2->next->data.section,section);             strcpy(q2->next->data.purpose,purpose);             strcpy(q2->next->data.usedate,usedate);             strcpy(q2->next->data.useprice,useprice);             strcpy(q2->next->data.usetime,usetime);             return 1;         }     }     else if ((p=select_vehicle(L,vid)) != NULL)     {         p->next->data.ver_status="出车中";//修改车辆状态和上次出车时间         p->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));         strcpy(p->next->data.ver_last_date,now_date);         strcpy(p->next->data.lender_name,lender_name);         strcpy(p->next->data.lender_id,lender_id);         strcpy(p->next->data.return_time,return_time);         strcpy(q2->next->data.section,section);         strcpy(q2->next->data.purpose,purpose);         strcpy(q2->next->data.usedate,usedate);         strcpy(q2->next->data.useprice,useprice);         strcpy(q2->next->data.usetime,usetime);         printf("\n****************************************车辆调度结果****************************************");         printf("\n已调出车辆:%s,载重量:%s,车牌:%s,出车日期:%s\n",p->next->data.ver_id,p->next->data.weight,p->next->data.ver_trand,now_date);         printf("**********************************************************************************************\n");         return 1;     }     else if (strcmp("E",vid) == 0)     {         return 0;     }     else     {         printf("输入错误,请返回!\n");         return 4;     }     return 4; } //定义功能2--汽车归还 void back_vehicle(VehicleList L, char * key, char *lender_name,                   char *lender_id) {     VehicleList p;     if ((p=select_vehicle(L,key)) != NULL)     {         if (strcmp(lender_name,p->next->data.lender_name) == 0 &&             strcmp(lender_id,p->next->data.lender_id) == 0)//姓名和身份证号输入正确才可还车         {             if (datecmp(now_date,p->next->data.return_time) < 1)//如果实际归还时间超出预定归还时间,提示到服务台办理             {                 p->next->data.ver_status="可调出";//恢复车辆状态及租车人信息为初始状态                 p->next->data.lender_name="N/A";                 p->next->data.lender_id="N/A";                 p->next->data.return_time="N/A";                 printf("\n汽车归还成功!\n\n");             }             else             {                 printf("\n归还失败,您的车辆已超期,请到总服务台办理超期还车手续!\n\n");             }         }         else         {             printf("\n租车人姓名或身份证号输入有误!\n\n");         }     }else{         printf("\n没有查询到编号为:%s的车辆信息!\n\n",key);     } } //定义功能3--车辆总况一览 void list_all(VehicleList L) {     printf("\n车辆编号  车 牌 号  载重量  车 牌  生产厂家  出 厂 日 期  购 买 日 期  购买单价  车型  车辆状态  车辆运营状态  车辆维修情况  车辆违章情况  上次出车时间  租车人姓名  计划归还时间\n");     while (L->next != NULL)     {         //显示所有已登记车辆信息         //if(strcmp("出车中",L->next->data.ver_status) !=0)         printf("%6s %10s %6s %8s %9s %11s %12s %9s %4s %10s %10s %12s %13s %13s %18s %14s\n",                L->next->data.ver_id,L->next->data.ver_no,L->next->data.weight,                L->next->data.ver_trand,L->next->data.factory,                L->next->data.outdate,L->next->data.buydate,L->next->data.price,                L->next->data.ver_type,L->next->data.ver_status,L->next->data.state,                L->next->data.service,L->next->data.violation,L->next->data.ver_last_date,                L->next->data.lender_name,L->next->data.return_time);         L=L->next;     }     printf("\n");     system("pause"); } //定义功能4--车辆查询 VehicleList select_vehicle(VehicleList L, char * key) {     VehicleList p;     p=L;     while (p->next != NULL)     {         //如果查找到符合条件的车辆信息,则返回这个车辆信息节点的指针,strcmp,字符串比较函数         if (strcmp(key,p->next->data.ver_id) == 0 || strcmp(key,p->next->data.ver_no) == 0)         {             return p;//P为该车辆信息节点的指针         }         else         {             p=p->next;         }     }     return NULL; } //定义功能5--新车登记 VehicleList register_vehicle(VehicleList L) {     VehicleList p,q;     Vehicle v;//定义新增车辆结构体     int id=1001;//初始车辆编号起始ID     char tmpID[5];//车辆编号格式化为字符串     q=L;     while (q->next != NULL)     {         q=q->next;//将指针调至链表尾部以插入新数据     }     //printf("请输入车辆编号: ");     //v.ver_id=getS();     printf("请输入车牌号: ");     v.ver_no=getS();     printf("请输入载重量: ");     v.weight=getS();     printf("请输入车牌: ");     v.ver_trand=getS ();     printf("请输入生产厂家: ");     v.factory=getS();     printf("请输入出厂日期:(格式,如2012-02-22) ");     v.outdate=getS();     printf("请输入购买日期:(格式,如2012-02-22) ");     v.buydate=getS();     printf("请输入购买单价: ");     v.price=getS();     printf("请选择车辆类型(A/B/C): ");     v.ver_type=getS();     printf("请输入车辆运营状态(正常/报废): ");     v.state=getS();     printf("请输入车辆维修情况(否/几次): ");     v.service=getS();     printf("请输入车辆违章情况(否/几次): ");     v.violation=getS();     v.ver_status="可调出";     v.ver_last_date="NEW";     v.lender_name=(char*)malloc(10);     strcpy(v.lender_name, "N/A       ");     v.lender_id=(char*)malloc(10);     strcpy(v.lender_id, "N/A       ");     v.return_time=(char*)malloc(10);     strcpy(v.return_time, "N/A       ");     v.section=(char*)malloc(10);     strcpy(v.section,"N/A       ");     v.purpose=(char*)malloc(10);     strcpy(v.purpose,"N/A       ");     v.usedate=(char*)malloc(10);     strcpy(v.usedate,"N/A       ");     v.useprice=(char*)malloc(10);     strcpy(v.useprice,"N/A       ");     v.usetime=(char*)malloc(10);     strcpy(v.usetime,"N/A       ");     //自动生成车辆编号     sprintf(tmpID, "%d", id);     while(select_vehicle(L,tmpID) != NULL)     {         id++;         sprintf(tmpID, "%d", id);//将id转为字符串存储到tmpID中     }     v.ver_id=(char*)malloc(sizeof(char)*(strlen(tmpID)+1));//分配内存空间     strcpy(v.ver_id,tmpID);//将tmpID拷贝到车辆信息结构中     if(select_vehicle(L,v.ver_no) == NULL)     {         //检查是否已有该车牌号         p=(VehicleList)malloc(sizeof(VNode));//创建新的车辆节点         p->data=v;         q->next=p;//连接新的车辆节点         q=p;    //将q指针移至最后节点         q->next=NULL;//将最后一个节点的next设为NULL         printf("\n成功登记牌号为:%s的车辆,车辆编号为:%s!\n\n",v.ver_no,v.ver_id);     }     else     {         printf("\n已存在该车辆!\n\n");     }     return L; } //定义功能6--车辆注销 void delete_vehicle(VehicleList L, char * key) {     VehicleList p,q;     p=L;     if ((p=select_vehicle(L,key)) != NULL)     {         q=p->next;         p->next=q->next;//将节点p连接到下下一个节点,即删除找到的节点         free(q);         printf("\n已注销编号为%s的车辆!\n\n",key);     }     else     {         printf("\n没有找到符合条件的车辆!\n\n");     }     system("pause"); } //定义功能7--退出系统函数 int quit() {     char *temp;     temp=getS();//接受用户输入     if(strcmp("Y",temp)==0)     {         return 1;//返回1,为确实退出     }     else if(strcmp("N",temp)==0)     {         return 0;//返回0,则不退出,并清屏,加载主菜单     }     else     {         return 2;//返回2,说明输入错误,任意键返回主菜单     }     return 2;//默认返回2 } int main() {     VehicleList L1,tmpL;     char *vehicle_key,*lender_name,*lender_id,*return_time,*section,*purpose,*usedate,*useprice,*usetime;     char *filename="vehicle.txt";//设置数据文件     GetLocalTime(&sys);     sprintf(now_date,"%4d-%02d-%02d",sys.wYear,sys.wMonth,sys.wDay);     L1=(VehicleList)malloc(sizeof(VNode));     L1=InitList(L1);     L1=LoadData(L1,"vehicle.txt");     main_menu:     //SaveData(L1,filename);//每完成一个操作都保存数据到文件,默认选择7程序退出时才保存数据     main_menu();//加载主菜单     switch (feature)     {         case 1:         {             int i;             printf("请输入租车人姓名: ");             lender_name = getS();             printf("请输入租车人身份证号: ");             lender_id = getS();             printf("请输入用车单位: ");             section = getS();             printf("请输入出车用途: ");             purpose = getS();             printf("请输入出车时长(格式N天): ");             usetime = getS();             printf("请输入出车日期(格式YYYY-MM-DD,如 %s): ",now_date);             usedate = getS();             printf("请输入计划归还时间(格式YYYY-MM-DD,如 %s): ",now_date);             return_time = getS();             useprice = "200";             if (datecmp(now_date,return_time) > 0)             {                 printf("\n归还时间输入错误,最少需要租一天,即时间应该大于等于 %s\n\n",now_date);                 system("pause");                 system("cls");                 goto main_menu;             }             i=dispatch(L1,lender_name,lender_id,return_time,section,purpose,usedate,useprice,usetime);        //调用车辆调度函数             if (i==0)             {                 system("cls");                 goto main_menu;             }             else             {                 system("pause");                 system("cls");                 goto main_menu;             }         }         case 2:         {             printf("请输入汽车编号: ");             vehicle_key = getS();             printf("请输入租车人姓名: ");             lender_name = getS();             printf("请输入租车人身份证号: ");             lender_id = getS();             back_vehicle(L1,vehicle_key,lender_name,lender_id);//调用车辆归还函数             system("pause");             system("cls");             goto main_menu;         }         case 3:         {             list_all(L1);//调用车辆总览函数             system("cls");             goto main_menu;         }         case 4:         {             printf("请输入汽车编号或车牌号: ");             vehicle_key=getS();             tmpL=select_vehicle(L1,vehicle_key);//调用车辆查找函数             if (tmpL != NULL)//返回不为空,说明找到了             {                 printf("\n*****************************找到了符合条件的车辆信息****************************\n");                 printf("\n车辆编号  车 牌 号  载重量  车 牌  车 型  车辆状态  上次出车时间  租车人姓名  计划归还时间\n");                 printf("\n%6s %10s %6s %8s %4s %10s %10s %18s %14s\n",                        tmpL->next->data.ver_id,tmpL->next->data.ver_no,tmpL->next->data.weight,tmpL->next->data.ver_trand,                        tmpL->next->data.ver_type,tmpL->next->data.ver_status,                        tmpL->next->data.ver_last_date,tmpL->next->data.lender_name,                        tmpL->next->data.return_time);                 system("pause");             }             else             {                 printf("\n\n没有找到符合条件的车辆信息!\n\n");                 system("pause");//按任意键继续             }             system("cls");             goto main_menu;         }         case 5:         {             L1=register_vehicle(L1);//调用车辆登记函数             system("pause");             system("cls");             goto main_menu;         }         case 6:         {             vehicle_key = "0008";             printf("请输入需要注销的车辆编号: ");             vehicle_key=getS();             delete_vehicle(L1,vehicle_key);//调用车辆注销函数             system("cls");             goto main_menu;         }         case 7:         {             int temp;             printf("您确定要退出系统?输入Y确定,输入N返回主菜单\n");             temp = quit();             if(1 == temp)             {                 SaveData(L1,filename);//保存数据                 return 0;             }             else if(0 == temp){                 system("cls");                 goto main_menu;//如果返回真则退出,否则返回主菜单             }             else             {                 printf("输入错误!");                 system("pause");             }         }         default:         {             system("cls");             getchar();             goto main_menu;//如果输入不在1-7内,则返回主菜单         }     }     return 0; }

推荐阅读