1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 酒店点菜系统c语言 求一个用最基础的C语言编写的简单饭店点菜系统

酒店点菜系统c语言 求一个用最基础的C语言编写的简单饭店点菜系统

时间:2018-12-09 06:14:02

相关推荐

酒店点菜系统c语言 求一个用最基础的C语言编写的简单饭店点菜系统

白方明

18级

-05-29 回答

把要求说一下 点菜系统可不轻松,得花时间才能搞定。另外用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_num;

printf("\t\t\t 你要添加几种菜?:");

scanf("%d",&menu_num);

for(int i=0;i

{

printf("\n\t\t请输入ID:");

scanf("%d",&Menu[i].ID);

printf("\n\t\t请输入菜名:");

scanf("%s",Menu[i].MenuName);

printf("\n\t\t请输入[%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\n");

exit(1);

}

for(int j=0;j

{

if(fwrite(&Menu[j],LEN,1,fp)!=1)

printf("Error writing file.\n");

}

fclose(fp);

}

/*显示菜单信息*/

void DisplayMenuInfo()

{

FILE *fp;

printf("\n\t\tID 菜名\t\t价格\n");

if((fp=fopen("MenuInfo.dat","rb"))==NULL)

{

printf("Can't open file\n");

exit(1);

}

int i=0;

do

{

fseek(fp,i*LEN,SEEK_SET);

if(fread(&Menu[i],LEN,1,fp))

{

printf("\t\t%d %5s\t\t%5.1f元\n",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\n");

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\n");

}

else

{

if((fp=fopen("MenuInfo.dat","wb"))==NULL)

{

printf("Can't open file\n");

exit(1);

}

for(int j=0;j

{

if (j==todelete) continue;

if(fwrite(&Menu[j],LEN,1,fp)!=1)

printf("Error writing file.\n");

}

fclose(fp);

}

}

/*点菜*/

void FindMenu()

{

FILE *fp;

int MenuID;

bool find_mark=false;

printf("\n\t\t请输入你要查找的菜名ID:");

scanf("%d",&MenuID);

printf("\n\t\tID 菜名\t\t价格\n");

if((fp=fopen("MenuInfo.dat","rb"))==NULL)

{

printf("Can't open file\n");

exit(1);

}

int i=0;

do

{

fseek(fp,i*LEN,SEEK_SET);

fread(&Menu[i],LEN,1,fp);

if(Menu[i].ID==MenuID)

{

printf("\t\t%d %5s\t\t%5.1f元\n",Menu[i].ID,Menu[i].MenuName,Menu[i].price);

find_mark=true;

break;

}

i++;

}while(!feof(fp));

if(!find_mark) printf("\n\t 尊敬的客户:我们餐厅没有你要点的菜喔,你可以试试我们的招牌菜^-^.\n");

fclose(fp);

}

/* 基础数据维护完毕 */

void adminORpeple()

{

printf("**************************************************************************\n");

printf("**********欢迎进入点菜系统 您要点菜还是管理?**********\n");

printf("**************************************************************************\n\n");

printf("请输入您的操作:点菜(y)管理(m)\n");

char lu;

scanf("%c",&lu);

if (lu=='y'||lu=='Y')

{

printf("\n****************************************************************************\n");

printf("*********** 欢迎进入用户点菜系统 ***********\n");

printf("**************************************************************************\n\n");

DisplayMenuInfo();

FindMenu();

}else if(lu=='m'||lu=='M')

{

printf("\n*************************************************************************\n");

printf("********** 欢迎进入管理菜单系统 **********\n");

printf("*************************************************************************\n\n");

LOOP:

printf("\t\t\t功能选择列表\n");

printf("\t1.菜单添加\n\t2.删除菜单\n\t3.显示菜单信息\n\n请选择菜单功能:");

char shu;

scanf("%s",&shu);

printf("*************************************************************************\n\n");

if (shu=='1')

{

AddMenu();

DisplayMenuInfo();

}

else if(shu=='2')

{

DisplayMenuInfo();

DeleteToMenu();

}

else if(shu=='3')DisplayMenuInfo();

else printf("系统只有三个功能!是否继续(y/n)\n");

char xue;

scanf("%s",&xue);

if(xue=='y'||xue=='Y')goto LOOP;

}

}

void main(void)

{

adminORpeple();

}

补充:

代码可能有点小问题,你自己调试一下,如果不会,我明天再给你调试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。