《C课程设计报告餐厅管理.pdf》由会员分享,可在线阅读,更多相关《C课程设计报告餐厅管理.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、K2MG-E专业技术人员绩效管理与业务能力提升练习与答案C 语言课程设计报告书题目:餐厅管理学号:09110600 姓名:学号:09110600 姓名:学号:09110600 姓名:1.功能需求点菜,客户结账,账目管理,餐馆统计,退出。2.总体设计2.1 系统模块结构框图1K2MG-E专业技术人员绩效管理与业务能力提升练习与答案2.2 功能模块框图2K2MG-E专业技术人员绩效管理与业务能力提升练习与答案2.3 系统流程图Main 函数3.详细设计基于系统需求分析与系统总体设计的结论,本系统采用VC 实现各模块的功能。下面按照模块的划分来分别阐述系统的详细设计和实现过程。3.1 功能选择3.1
2、.1 模块描述3K2MG-E专业技术人员绩效管理与业务能力提升练习与答案功能选择模块为系统提供类似于菜单的功能,让用户输入功能选项,并进入相应的功能执行程序。3.1.2 源文件定义restaurant.c3.1.3 函数声明(1)void Table_Init(void):餐桌信息初始化。(2)void Observe(void):查看账目。(3)void List_Management(void):账本管理。(4)void ListMenu(void):账目管理菜单。(5)void Menu_select(void):显示系统菜单。(6)void Get_Rank(void):对菜进行统计排
3、名。输入:用户选择的功能选择界面。处理:根据用户选项跳转到相关功能函数。输出:相关功能函数的处理或显示界面。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 4/定义订单结构typedef struct Orderint Table_ID;/记录餐桌号int Dish_IDN;/记录菜的编号struct Order*next;
4、4K2MG-E专业技术人员绩效管理与业务能力提升练习与答案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;/餐桌结构体数组DISH dishD;/菜的结构体数组int PASSWORD=123;/密码设置/函数定义void Loa
5、d_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_Inform(ORDER*,int);/将已结账订单信息写入历史记录ORDER*Payment(ORDER*);/
6、结账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_select();/系统主菜单void Main_Menu()printf(n*n);printf(餐厅服务系统n);pr
7、intf(*n);printf(1.点菜n);5K2MG-E专业技术人员绩效管理与业务能力提升练习与答案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);/system(cls);switch(choose)cas
8、e 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:exit(1);break;while(1);/从文件中读取菜谱void Lo
9、ad_Dish(void)FILE*fp;int i;fp=fopen(dish_name.txt,r);for(i=0;iD;i+)6K2MG-E专业技术人员绩效管理与业务能力提升练习与答案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.Capacity=2;tb3.Ta
10、ble_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%st%fn,dishi.Dis
11、h_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)printf(超出菜谱范围,请重新
12、输入n);i-;elseif(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)head=p;return head;
13、8K2MG-E专业技术人员绩效管理与业务能力提升练习与答案/根据菜的编号打印一道菜的信息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);/结账9K2MG-E专业技术人员绩效管理与业务能力提升练习与答案ORDER*Payment(O
14、RDER*head)int i=0;int count=0;float pay=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
15、);printf(你本次的消费额为%f元n,pay);printf(你实际的付款: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;10K2MG-E专业技术人员绩效管理与业务能力提
16、升练习与答案/修改密码void ModifyPW()int password;printf(请输入新的密码n);scanf(%d,&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)f
17、scanf(fp,%c,&strj);j+;if(strj=)i+;fscanf(fp,nn);i=0;j=0;printf(%ft,pay);while(i=5&j25)printf(%c,strj);j+;if(strj=)i+;printf(n);fclose(fp);/账单管理菜单void ListMenu()11K2MG-E 专业技术人员绩效管理与业务能力提升练习与答案int choice;printf(1.修改面目n);printf(2.查看账本n);printf(3.返回n);doprintf(请选择:n);scanf(%d,&choice);switch(choice)case
18、 1:ModifyPW();break;case 2:Observe();break;case 3:Menu_select();break;default:printf(没有该功能项n);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
19、=fopen(历史记录.txt,r);while(!feof(fp)fscanf(fp,%dn,&n);i=0;while(i=n)fscanf(fp,%d%*s%*s,&m,s,s);for(j=0;j10;j+)if(m=dishj.Dish_ID)countj+;break;12K2MG-E专业技术人员绩效管理与业务能力提升练习与答案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(*)
20、;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_Name,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);sca
21、nf(%d,&password);if(PASSWORD=password)printf(*);printf(欢迎进入账目管理系统n);printf(*);return 1;elseprintf(密码输入有误,请重新输入n);printf(是否重新输入n);while(getchar()=y/getchar()=y);return 0;13K2MG-E专业技术人员绩效管理与业务能力提升练习与答案4.测试(1).当程序运行是,主菜单显示入图 1 所示。图 1(2)此时选择相应选项会执行相应的操作,如选择所示。图 2(3)结账,界面如图 3 所示。1,再按回车键,界面如图 214K2MG-E专业技
22、术人员绩效管理与业务能力提升练习与答案图 3(4)账目管理,界面如图 4 所示。图 4(5)餐厅统计,界面如图 5 所示。15K2MG-E专业技术人员绩效管理与业务能力提升练习与答案图 55 结论本报告对餐厅管理系统的分析、设计、实现的完整过程进行了介绍。总的来说,通过这次课程设计,掌握了带头节点的链表的工作原理和处理方法;初步会使用malloc、free 等函数对链表进行创建、增加、删除等操作;也加深了理解模块化的编程思想,将一个程序划分成不同额函数来编写,从而掌握函数之间的调用关系;了解了餐厅管理中所需要处理的信息以及相关的处理方法。作为电子信息工程的学生,我们更要努力学好这方面的东西。世上没有一件工作不辛苦,没有一处人事不复杂。不要随意发脾气,谁都不欠你的16