求一个用最基础的C语言编写的简单饭店点菜系统
把要求说一下 点菜系统可不轻松,得花时间才能搞定。另外用c 写可否? 大哥您这功能相当于开发这套系统了 太麻烦了吧? 一会的,我现在写的差不多了 #include#include#define MENU_NUM_MAX 100 // 假设有100种菜式#define LEN sizeof(struct MenuInfo)struct MenuInfo { int ID; char MenuName[20]; float price;}Menu[MENU_NUM_MAX];/* 基础数据维护 *//*菜单录入*/void AddMenu(){ FILE *fp; int menu...全部
把要求说一下 点菜系统可不轻松,得花时间才能搞定。另外用c 写可否? 大哥您这功能相当于开发这套系统了 太麻烦了吧? 一会的,我现在写的差不多了 #include#include#define MENU_NUM_MAX 100 // 假设有100种菜式#define LEN sizeof(struct MenuInfo)struct MenuInfo { int ID; char MenuName[20]; float price;}Menu[MENU_NUM_MAX];/* 基础数据维护 *//*菜单录入*/void AddMenu(){ FILE *fp; int menu_num; printf(" 你要添加几种菜?:"); scanf("%d",&menu_num); for(int i=0;i { printf("
请输入ID:"); scanf("%d",&Menu[i]。
ID); printf("
请输入菜名:"); scanf("%s",Menu[i]。MenuName); printf("
请输入[%s]菜的价格:",Menu[i]。MenuName); Menu[i]。
price=0。0f; scanf("%f",&Menu[i]。price); fflush(stdin); } if((fp=fopen("MenuInfo。dat","ab"))==NULL) { printf("Can't open file
"); exit(1); } for(int j=0;j { if(fwrite(&Menu[j],LEN,1,fp)!=1) printf("Error writing file。
"); } fclose(fp); }/*显示菜单信息*/void DisplayMenuInfo(){ FILE *fp; printf("
ID 菜名 价格
"); if((fp=fopen("MenuInfo。
dat","rb"))==NULL) { printf("Can't open file
"); exit(1); } int i=0; do { fseek(fp,i*LEN,SEEK_SET); if(fread(&Menu[i],LEN,1,fp)) { printf(" %d %5s %5。
1f元
",Menu[i]。ID,Menu[i]。MenuName,Menu[i]。price); i ; } }while(!feof(fp)); fclose(fp);}/*删除菜单*/void DeleteToMenu(){ FILE *fp; int MenuID; int todelete=-1; int i=0; printf("请输入要删除的菜名的ID:"); scanf("%d",&MenuID); if((fp=fopen("MenuInfo。
dat","rb"))==NULL) { printf("Can't open file
"); exit(1); } do { fseek(fp,i*LEN,SEEK_SET); if(fread(&Menu[i],LEN,1,fp)) { if (Menu[i]。
ID==MenuID) todelete=i; i ; } }while(!feof(fp)); fclose(fp); if (todelete==-1) { printf("A menu with that ID doesn't exist
"); } else { if((fp=fopen("MenuInfo。
dat","wb"))==NULL) { printf("Can't open file
"); exit(1); } for(int j=0;j { if (j==todelete) continue; if(fwrite(&Menu[j],LEN,1,fp)!=1) printf("Error writing file。
"); } fclose(fp); }}/*点菜*/void FindMenu(){ FILE *fp; int MenuID; bool find_mark=false; printf("
请输入你要查找的菜名ID:"); scanf("%d",&MenuID); printf("
ID 菜名 价格
"); if((fp=fopen("MenuInfo。
dat","rb"))==NULL) { printf("Can't open file
"); exit(1); } int i=0; do { fseek(fp,i*LEN,SEEK_SET); fread(&Menu[i],LEN,1,fp); if(Menu[i]。
ID==MenuID) { printf(" %d %5s %5。1f元
",Menu[i]。ID,Menu[i]。MenuName,Menu[i]。price); find_mark=true; break; } i ; }while(!feof(fp)); if(!find_mark) printf("
尊敬的客户:我们餐厅没有你要点的菜喔,你可以试试我们的招牌菜^-^。
"); fclose(fp);}/* 基础数据维护完毕 */void adminORpeple(){ printf("**************************************************************************
"); printf("********** 欢迎进入点菜系统 您要点菜还是管理? **********
"); printf("**************************************************************************
"); printf("请输入您的操作:点菜(y)管理(m)
"); char lu; scanf("%c",&lu); if (lu=='y'||lu=='Y') { printf("
****************************************************************************
"); printf("*********** 欢迎进入用户点菜系统 ***********
"); printf("**************************************************************************
"); DisplayMenuInfo(); FindMenu(); }else if(lu=='m'||lu=='M') { printf("
*************************************************************************
"); printf("********** 欢迎进入管理菜单系统 **********
"); printf("*************************************************************************
"); LOOP: printf(" 功能选择列表
"); printf(" 1。
菜单添加
2。删除菜单
3。
显示菜单信息
请选择菜单功能:"); char shu; scanf("%s",&shu); printf("*************************************************************************
"); if (shu=='1') { AddMenu(); DisplayMenuInfo(); } else if(shu=='2') { DisplayMenuInfo(); DeleteToMenu(); } else if(shu=='3')DisplayMenuInfo(); else printf("系统只有三个功能!是否继续(y/n)
"); char xue; scanf("%s",&xue); if(xue=='y'||xue=='Y')goto LOOP; }}void main(void){ adminORpeple();} 代码可能有点小问题,你自己调试一下,如果不会,我明天再给你调试。收起