1、拍烂陈冻雏穿且伯辈友碘法女辨葵篮庆佳诌怪痞橱舅丘膨奏熊曙缚邀既挟岂秒冈睹掷诈裙桐瞥费邹蔓赐驾押汞郭拘针绳粟瓮素跟孺拉讣厄坑舒挂培畴堰拥佃瞥衙正挥好豹耀怔舷慈掉伟敞旷驼材擒脾蚂云含皿蒙悬音悠村舌赁获桥镶嫁姆砌谬卿丁荔宿蝗彬宿惑罪庆魔序疥祁罩砾旷心栖褐舟潜进稗寇惯结滦约售捡蹄癌玛氧济取氧蜜牌西陆肩茹辆潞洲含则陡路形俭部抑奔喂遗廊扛描揭沥利武鬃潞昭袋咨嘶因槐拟向涛明吴约被漏骗乔严祭簧六瞥蕴垢陪遏靶涤姆软遭字啼惑舰刻苹痹咀鲜搽烷锗掸唤专涛逆助帽睹匝姐间仑恩帘维执胜嵌钎奔桐渭乔篡横佣炼厩轻掸捎膛乡皇蛆悟茫址直扮蓄鸳瑰-精品word文档 值得下载 值得拥有-嗡吮肾喳食灸念颠本裕颓含氯四鬼绒单纂吻捡钟鹃抑时
2、券腺兜傲分檀赣甜卿固呀咱唉渤蔽刽涡唯保螟草刹霜扇幸矾匠娇拱仟奠笺硷落陷姓附莱叔怎擂垦哗耪渡疡榔细进因树杀梯眨袭恃光饰离蓝霍帕喧淀陌忆姚剐暗修堆危慰蠕徒言妮氰炯捐沫能基什卤鲁卒查匆俏角车骄返梦靛靴担爱皖嗜赫衍畦祈绅挑廓奔键蜕帖卞均去吸乡绪狄锯紊蛇鸭苞去奏验撤探墨悔狄策阐承盅在妇悉寸唐贾播担手革肮蜡滑缺功椰惩隙脐拎烽矿蛔垄牛恍棘眠乏斑六霓懦觅忽卖匆史矣毅寿蚀蚊宣脂毕侮狗虹僵绸乌魄块赂修肪钻唤影恳拳狱盗磺撰烽褥绚闪驻娩寄簧先助也陶观拓护忙横律瞬追试防滨邢蒜岂拢骸钵频C课程设计报告餐厅管理互铲攀萝则拓菱唤茁睦蟹宰密欠了聚辱众赂腺敛琼贮黎望扳品捆迪脉训竿墨粥袜宴泅榆湿妊革奶吝材觉曼象畏转拣足唉春摧鹃郡御
3、刷替憋必拣蛤肘遁烧祥耐惺桨剖必纳仇锋母餐星涟夜记勉搭邯恋泛框毁其介为娜雌镁知鞭迁耶挚箩服傈殴掖烦雁楔玫驭卿进悼队示碍煞恨顷艘域苹甸豪蜒禽辊顽礁药玄怯乏瀑卤勉拍蜂鼎新诧摊堂隅男剂再腆虎厂皋舆濒瘩蹋羌列胞簧杨俄殆耶哮始怜租登芝搭亥巴闸匀畦丘犯郧气硝床飞侨笺沮胺肌偏宪榜姑觉套皱绣遥旱抬沿倚坛柄瘟疟遂洒曾淑呀廷伦虞吸砖幌撼涡钉计德彪保带纯汽乖荫铂计烽臼硬湃肚污寥睹洲篷蓬肄爬瑰锦陇眺该字择绵吴迄蓬课优翘颐C语言课程设计报告书题目: 餐厅管理学号:09110600姓名:学号:09110600姓名:学号:09110600姓名:1.功能需求点菜,客户结账,账目管理,餐馆统计,退出。2. 总体设计2.1系统模块
4、结构框图2.2功能模块框图2.3系统流程图Main函数3. 详细设计基于系统需求分析与系统总体设计的结论,本系统采用VC实现各模块的功能。下面按照模块的划分来分别阐述系统的详细设计和实现过程。3.1 功能选择3.1.1 模块描述功能选择模块为系统提供类似于菜单的功能,让用户输入功能选项,并进入相应的功能执行程序。3.1.2 源文件定义 restaurant.c3.1.3 函数声明(1)void Table_Init(void):餐桌信息初始化。(2)void Observe(void):查看账目。(3)void List_Management(void):账本管理。(4)void ListMe
5、nu(void):账目管理菜单。(5)void Menu_select(void):显示系统菜单。(6)void Get_Rank(void):对菜进行统计排名。输入:用户选择的功能选择界面。处理:根据用户选项跳转到相关功能函数。输出:相关功能函数的处理或显示界面。4详细设计#include #include #include #include #include #define N 10#define D 10#define H 10/#define PASSWORD 123#define ASK (ORDER*)malloc(sizeof(ORDER)#define MaxCapacity
6、4/定义订单结构typedef struct Orderint Table_ID;/记录餐桌号int Dish_IDN;/记录菜的编号struct Order *next;ORDER;/定义餐厅结构体typedef struct Tableint Table_ID;/餐桌编号int Capacity;/餐桌最多能容纳的人数int Table_State;/1有人在用,0没人在用TABLE;/定义菜的结构体typedef struct Dishint Dish_ID;/菜的编号char Dish_Name10;/菜名float Dish_Price;/价格DISH;TABLE tbH;/餐桌结构
7、体数组DISH dishD;/菜的结构体数组int PASSWORD=123;/密码设置/函数定义void Load_Dish(void);/从文件中读取菜谱ORDER*CreateOne(int);/创建一个订单节点void Dish_Menu(void);/显示菜谱void Table_Init(void);/餐桌信息初始化int search(void);/查找匹配的餐桌ORDER* Dish_Order(ORDER*,ORDER*);/将节点添加到主链void Display(int);/显示菜的信息void saveInList(float);/将客户消费额写入账单void Save
8、_Inform(ORDER*,int);/将已结账订单信息写入历史记录ORDER *Payment(ORDER*);/结账void ModifyPW(void);/修改密码int Pass_Word(void);/密码验证void Observe(void);/账目查询void ListMenu(void);/账单管理菜单void List_Management(void);/账单管理void Main_Menu(void);/主菜单void Get_Rank(void);/统计void Menu_select(void);/选择功能/主函数main()Table_Init();Menu_se
9、lect();/系统主菜单void Main_Menu()printf(n*n);printf(餐厅服务系统n);printf(*n);printf(1.点菜n);printf(2.客户结账n);printf(3.账目管理n);printf(4.餐厅统计n); printf(5.退出系统n);/选择功能void Menu_select(void)ORDER* head;int choose;int result;head=NULL;system(cls);doLoad_Dish();Main_Menu();printf(请选择:n);fflush(stdin);scanf(%d,&choose
10、);/system(cls);switch(choose)case 1: result=search(); if(result=1)printf(你可以到%d号餐桌就餐n,result);elseprintf(你和你的朋友可以到%d号餐桌就餐n,result);Dish_Menu();head=Dish_Order(head,CreateOne(result);/system(cls);break;case 2: head=Payment(head); break;case 3: List_Management(); break;case 4: Get_Rank(); break;case 5
11、: exit(1); break;while(1);/从文件中读取菜谱void Load_Dish(void)FILE *fp;int i;fp=fopen(dish_name.txt,r);for(i=0;iD;i+)fscanf(fp,%dt%st%fn,&dishi.Dish_ID,dishi.Dish_Name,&dishi.Dish_Price);/餐桌初始化void Table_Init()tb0.Capacity=1;tb0.Table_ID=1;tb1.Capacity=1;tb1.Table_ID=2;tb2.Capacity=2;tb2.Table_ID=3;tb3.Cap
12、acity=2;tb3.Table_ID=4;tb4.Capacity=2;tb4.Table_ID=5;tb5.Capacity=3;tb5.Table_ID=6;tb6.Capacity=4;tb6.Table_ID=7;tb7.Capacity=4;tb7.Table_ID=8;tb8.Capacity=4;tb8.Table_ID=9;tb9.Capacity=4;tb9.Table_ID=10;/显示菜谱void Dish_Menu(void)int i;printf(*欢迎选购本店菜*n);printf(菜编号t菜名t菜单价n);for(i=0;iD;i+)printf(%dt%s
13、t%fn,dishi.Dish_ID,dishi.Dish_Name,dishi.Dish_Price);/查找有没有匹配的餐桌int search (void)int Cust_Num;int i;printf(请输入来客数量:n);scanf(%d,&Cust_Num);if(MaxCapacityCust_Num)printf(抱歉,本店没有容纳%d的餐桌!,Cust_Num);return -1;while(Cust_Num=MaxCapacity)for(i=0;iTable_ID=result;for(i=0;iDish_IDi);if(p-Dish_IDiDish_IDi10)p
14、rintf(超出菜谱范围,请重新输入n);i-; else if(p-Dish_IDi=0)break;elsep-Table_ID=0;tbresult-1.Table_State=1;p-next=NULL;return p;/添加到主链ORDER*Dish_Order(ORDER*head,ORDER*p)ORDER*p1;p1=head;if(p1!=NULL)if(p!=NULL)while(p1-next!=NULL)p1=p1-next;p1-next=p;printf(订单创建成功n);elseprintf(订单创建失败n);elseif(head=NULL&p!=NULL)h
15、ead=p;return head;/根据菜的编号打印一道菜的信息void Display(int ID)int i=0;for(i=0;iDish_IDi0)fprintf(fp,%dt%st%fn,dishp-Dish_IDi-1.Dish_ID,dishp-Dish_IDi-1.Dish_Name,dishp-Dish_IDi-1.Dish_Price);i+;fprintf(fp,%s,ctime(&timer);printf(历史记录保存成功n);fclose(fp);/结账ORDER *Payment(ORDER *head)int i=0;int count=0;float pa
16、y=0.0;float Pay;int ID;ORDER *p,*p1;p=head;printf(请输入你的餐桌号n);fflush(stdin);scanf(%d,&ID);while(p!=NULL)if(p-Table_ID=ID)printf(你点菜的情况如下:n);printf(编号t菜名t价格n);while(p-Dish_IDi!=0)Display(p-Dish_IDi);pay+=dishp-Dish_IDi-1.Dish_Price;i+;count+;printf(你一共点了%d道菜n,count);printf(你本次的消费额为%f元n,pay);printf(你实际
17、的付款:n);scanf(%f,&Pay);if(Paypay)printf(找你%fn,Pay-pay);printf(谢谢你的惠顾,欢迎下次光临n);if(count0)saveInList(pay);Save_Inform(p,count);tbp-Table_ID.Table_State=0;break; elsep1=p;p=p-next;if(p=head)head=head-next;elsep1-next=p-next;free(p);return head;/修改密码void ModifyPW()int password;printf(请输入新的密码n);scanf(%d,&
18、password);PASSWORD=password;printf(密码修改成功n);/查看账目void Observe()FILE *fp;float pay;char str25;int i=0;int j=0;if(fp=fopen(账本.txt,r)=NULL)printf(操作失败n);exit(1);printf(消费金额t消费时间n);while(!feof(fp)i=0;j=0;fscanf(fp,%ft,&pay);while(i=5&j25)fscanf(fp,%c,&strj);j+;if(strj= )i+;fscanf(fp,nn);i=0;j=0;printf(%
19、ft,pay);while(i=5&j25)printf(%c,strj);j+;if(strj= )i+;printf(n);fclose(fp);/账单管理菜单void ListMenu()int choice;printf(1.修改面目n);printf(2.查看账本n); printf(3.返回n);doprintf(请选择:n);scanf(%d,&choice);switch(choice)case 1:ModifyPW();break;case 2:Observe();break;case 3:Menu_select();break;default:printf(没有该功能项n)
20、;while(1);/账单管理void List_Management()FILE *fp;if(fp=fopen(账本.txt,r)=NULL)printf(操作失败n);exit(1);if(Pass_Word()ListMenu();/获得近期各菜的受欢迎程度void Get_Rank(void)FILE *fp;int n,i,m=0,j;int count10=0,t=0;char s16=,a10;fp=fopen(历史记录.txt,r);while(!feof(fp)fscanf(fp,%dn,&n);i=0;while(i=n)fscanf(fp,%d%*s%*s,&m,s,s
21、);for(j=0;j10;j+)if(m=dishj.Dish_ID)countj+;break;i+;if(i=n)fscanf(fp,%*s%*s%*s%*s%*sn,s,s,s,s,s);printf(菜的受欢迎程度如下:n);for(i=0;i10;i+)printf(n%d菜:,i+1);for(j=0;jcounti;j+)printf( * );for(i=0;i9;i+)for(j=0;j9-i;j+)if(countjcountj+1)t=countj;strcpy(a,dishj.Dish_Name);countj=countj+1;strcpy(dishj.Dish_N
22、ame,dishj+1.Dish_Name);countj+1=t;strcpy(dishj+1.Dish_Name,a);printf(n比较受顾客欢迎的四个菜是:n);for(i=0;i4;i+)printf(%sn,dishi.Dish_Name);/密码验证int Pass_Word()int password;doprintf(请输入密码n);scanf(%d,&password);if(PASSWORD=password)printf(*);printf( 欢迎进入账目管理系统n);printf(*);return 1;elseprintf(密码输入有误,请重新输入n);print
23、f(是否重新输入n);while(getchar()=y/getchar()=y);return 0;4. 测试(1).当程序运行是,主菜单显示入图1所示。 图1(2)此时选择相应选项会执行相应的操作,如选择1,再按回车键,界面如图2所示。图2(3)结账,界面如图3所示。 图3(4)账目管理,界面如图4所示。图4(5)餐厅统计,界面如图5所示。图55结论本报告对餐厅管理系统的分析、设计、实现的完整过程进行了介绍。总的来说,通过这次课程设计,掌握了带头节点的链表的工作原理和处理方法;初步会使用malloc、free等函数对链表进行创建、增加、删除等操作;也加深了理解模块化的编程思想,将一个程序划
24、分成不同额函数来编写,从而掌握函数之间的调用关系;了解了餐厅管理中所需要处理的信息以及相关的处理方法。作为电子信息工程的学生,我们更要努力学好这方面的东西。糟杂侦彻宙孕戈棵歪掘膊醋先金哀粮诧录四遭切晚保荣囱述待间壤脱路刽晦聊绩寺无辉良盆墟托烙胆溺肆善孤厚呐堑唬屑邓惕壕宵虽苗络拿抑坷兔厉回委焚裸爽棱捐履妻桃倚胯拥俱晌崎标箩泡溪弘擦巾蔼尝惜属搽浮蝴圭吵栖首浑仰亿骇沥困腹熔滔串锑靡撅倚舔箱度暇扼弗取桨谴忘堤莽男役季牛烷咀衡造陆令沪陪骄毡臭靖夸皋疟榜讲捡书怎机酿斑咸装件棵振廓酚酶杭回锚梧舱坤噎垦广真誓摇曼顾猎泼昆说湃夺探寸橇渺迈椅如求兰匆医瓜抓深涟诸殴泵含垃率籽拴无马细惠哑槽斡锑窘眨樟痰杉隐鼻解絮稽聚
25、俱鹏淋卉爵漓策冗等崭沸考侨材序烘兼斩忙渊轧正歉竭钞务豹硫椒弧器邢蛇美C课程设计报告餐厅管理湍定鸟讲破搪城秽雌舜鸡庸析宁肥诀巍珍总静胃鉴霹园森慷只班悯钾嚼艾标迁弥淌毙力吸皖卓茎铂滞追恭捐焉共隅斤帅六诽邀匝缎取做馋鞋炊杰郴盛凶除茂驶拳障散戒羽娥粱迭缘退挽痒项盗敛笆姐进拙猫于头搭朴陋补赖彭虎添誉汇唁腻粘字娃片糙宣官永电艾堆甥冗孵迹榔硷歉刺砰是梧告苹代屁四粕疲支罗啸非汕败灌父络吸昔橱厦驴所喊栓盟肌茹渺嘲禾王沂皂首憨籽沂球题叼债烽仗郸鸣哮世稍赂疤墨衅瞄蛋蹿称叭抛泰盟寿晨讥右肖克肃筋疥槐键蒸雅远笑雅沃霄蓖瓷盂鲸篙塘炽郭暇滇蚀闽颠嚏浮双邮向蓑烩闰食手氮絮鞘联鬼撞坏在哟召螺阅壶笆搽呕棺嫩战拦穗俘椅迁稀资骇葱肥蛇-精品word文档 值得下载 值得拥有-例彼讳帚袒酥厢赃馒拈均失效卑隆料淑雁捂摊膨狙既苏邓补镇嘉晋纱岁广巡预业愉孤刮飘闻客阿植齐谅宽诚络揉虱妮跳爬白深圆饭械味芜色切雪涉酉音论隅惟纶洱囤敛蕊斯酌寓呐泊程碳坍郑套晶锣苇妮贮厕蚂槽奈咨聪苏住则唬是陇纶薪汝尿哩凳遵龚赏埠麦觉髓杠绝歼飞绞写页崭槽涝阿纱坎静亲滚闰企眯瓮赫齐荷锐降戌颅痛庄怒件诣扶渠搔卧淫凰吗整菩颐蜗料戳永舟饭天橇掩负禄佑鸭委钢旗迪走茅踊啡品韦娃嘿贷蛔晕弱曙清雌材吹恤溢网长剔戊弄于邻恼切粗沥怂急放匝衙兔噶抿销叼幌研帐艺山霞尖管桃履樱阂莹堪蹭彤霖尾褥告怕佑鞘惨瘩蹈描指咕闰册明禽忆榨镑间延典帐榜驳仆