您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 《程序设计实践》中小餐馆点餐系统课程项目报告
1课程项目报告2课程项目任务书题目中小饭店点餐系统主要内容用C语言开发一个简单的中小饭店点餐系统。要求实现以下基本功能:(1)有简单的用户管理功能。系统中有两类用户,系统管理员和服务员,不同用户在登陆系统后会有不同的菜单可进行不同的操作。(2)系统管理员用户能完成以下功能:a)创建系统新用户,可以查找、浏览和更新用户信息;b)输入、查询、浏览、更新菜单信息;c)统计分析功能(如统计每个菜品被顾客选择情况、每个服务员每餐或每天服务顾客数量等);d)(可选)输入、查询、浏览、更新餐桌信息(如位置、可坐几人等);e)(可选)顾客信息浏览。(3)服务员用户能完成以下功能:a)顾客信息录入(可以分店内消费、自带等);b)菜单信息查询、浏览;c)顾客点餐以及点餐情况浏览、修改、删除、状态更新等功能;d)费用计算;e)(可选)餐桌信息查询、浏览与更新等。其中功能(2)-b)与功能(3)-b)、功能(2)-d)与功能(3)-e)有重叠,模块可重用。扩展功能:可以按照自己对问题的理解以及对C语言的掌握程度进行扩展。比如(1)菜品推荐;(2)餐位预定(3)网络(含互联网、电话、微信等)订餐;(4)VIP顾客管理;(5)优惠券管理;(6)自定义菜品等等。还可以考虑支持外卖、加入对厨房、厨师的管理等功能。特别说明:尽可能地运用自己已经学习过的数据结构的知识去展现C语言运用能力。任务要求一、提交材料应包括:(1)系统源代码(2)课程项目报告二、整个设计过程具体要求(1)需求分析要求学生对系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分回答问题30分成绩评定教师:31需求分析题目要求设计并编写一个中小餐馆点餐系统,要求有一个餐厅管理员和若干个服务员,并要加入管理员对菜单,餐桌以及服务员的管理,并能够查看菜品选择情况以及服务员每天服务顾客数目。服务员要求能实现顾客点餐,加减菜品,创建菜品单以及结账功能。加入在管理员和服务员登入系统的时候进行密码验证,以及对服务员和管理员修改密码的管理。2概要设计(1)数据结构:a)程序的服务员,菜单,餐桌,菜品单采用链表。每一个链表的结点存储一个结构体信息,可以灵活插入,删除,遍历和修改。b)管理员采用结构体。因为只需要一个管理员,所以只定义一个管理员结构体gly,保存管理员的编号和密码。(2)模块划分a)头文件ui.h:程序使用者界面。包含17个voidui函数。b)头文件cpd.h:创建,浏览,查询,删除,更新菜品单。包含8个voidcpxx函数和一个结构体定义。c)头文件file.h:打开,创建,写入,读取,关闭文件。包含6个voidfile函数。d)头文件menu.h:程序基于ui的功能实现。包含20个voidmenu函数。e)头文件lianbiao.h:创建,插入,浏览,删除,查询链表。包含21个链表实现函数。f)主函数main.c:包含头文件,定义程序全局变量,实现程序的运行。(3)程序总体框架mainmenuuilianbiaofilecpd3详细设计(1)链表实现(以服务员为例):4//服务员结构structstud_fwy{intnum;//服务员编号charname[20];//服务员姓名intfwgknum;//服务顾客数目charmima[20];//密码structstud_fwy*next;//链表指针};//建立服务员structstud_fwy*jl_fwy(){structstud_fwy*charu_fwy(structstud_fwy*head,structstud_fwy*p);intnum;intsize=sizeof(structstud_fwy);charname[20],mima[20];printf(输入您的编号:);scanf(%d,&num);printf(输入您的姓名:);scanf(%s,name);printf(输入你的密码:);scanf(%s,mima);p_fwy=(structstud_fwy*)malloc(size);p_fwy-num=num;p_fwy-fwgknum=0;strcpy(p_fwy-name,name);strcpy(p_fwy-mima,mima);head_fwy=charu_fwy(head_fwy,p_fwy);fwydenum++;returnhead_fwy;}//插入服务员structstud_fwy*charu_fwy(structstud_fwy*head,structstud_fwy*p){structstud_fwy*ptr,*ptr1,*ptr2;ptr2=head;ptr=p;ptr1=NULL;ptr1=NULL;if(head==NULL){head=ptr;head-next=NULL;}else{while((ptr-numptr2-num)&&(ptr2-next!=NULL)){5ptr1=ptr2;ptr2=ptr2-next;}if(ptr-num=ptr2-num){if(head==ptr2)head=ptr;elseptr1-next=ptr;ptr-next=ptr2;}else{ptr2-next=ptr;ptr-next=NULL;}}returnhead;}//删除服务员structstud_fwy*shanchu_fwy(structstud_fwy*head,intnum){structstud_fwy*ptr1,*ptr2;while(head!=NULL&&head-num==num){ptr2=head;head=head-next;free(ptr2);}if(head==NULL)returnNULL;ptr1=head;ptr2=head-next;while(ptr2!=NULL){if(ptr2-num==num){ptr1-next=ptr2-next;free(ptr2);}elseptr1=ptr2;ptr2=ptr1-next;}returnhead;}//遍历服务员voidbianli_fwy(structstud_fwy*head){6structstud_fwy*ptr;if(head==NULL){printf(\n没有服务员信息,请新建!\n);return;}printf(\n服务员信息:\n);printf(编号\t姓名\t服务员每天服务顾客数目\n);for(ptr=head;ptr!=NULL;ptr=ptr-next)printf(%d\t%s\t%d\n,ptr-num,ptr-name,ptr-fwgknum);}//查询服务员voidchaxun_fwy(structstud_fwy*head,intnum){structstud_fwy*ptr;if(head==NULL){printf(\n没有服务员信息,请新建!\n);return;}for(ptr=head;ptr!=NULL;ptr=ptr-next){if(ptr-num==num){printf(\n服务员信息:\n);printf(编号\t姓名\t服务员每天服务顾客数目\n);printf(%d\t%s\t%d\n,ptr-num,ptr-name,ptr-fwgknum);return;}}printf(\n没有编号为%d的服务员,请重试(按任意键返回)!\n,num);getchar();getchar();return;}//修改服务员信息structstud_fwy*xiugai_fwy(structstud_fwy*head,intnum){structstud_fwy*ptr;charname[20];if(head==NULL){printf(\n没有服务员信息,请新建!\n);returnNULL;}for(ptr=head;ptr!=NULL;ptr=ptr-next){if(ptr-num==num){printf(\n服务员信息:\n);printf(编号\t姓名\n);7printf(%d\t%s\n,ptr-num,ptr-name);printf(请输入新的信息:\n);printf(输入您的编号:);scanf(%d,&num);printf(输入您的姓名:);scanf(%s,name);ptr-num=num;strcpy(ptr-name,name);bwc();returnhead_fwy;}}printf(\n没有编号为%d的服务员,请重试(按任意键返回)!\n,num);getchar();getchar();return0;}(2)界面实现(部分)//主菜单voidui(){system(cls);printf(################欢迎使用###############\n);printf(主菜单:\n);printf(1.管理员登陆.\n);printf(2.服务员登陆.\n);printf(0.退出.\n);printf(#######################################\n);}//主菜单-管理员登陆界面voidui_glydljm(){system(cls);printf(################欢迎使用###############\n);printf(主菜单-管理员登陆:\n);}//主菜单-管理员voidui_gly(){system(cls);printf(################欢迎使用###############\n);printf(主菜单-管理员:\n);printf(1.系统用户信息.\n);printf(2.餐桌信息.\n);8printf(3.菜单信息.\n);printf(4.点菜情况.\n);printf(5.统计分析.\n);printf(6.旧账单浏览.\n);printf(7.返回上一级.\n);printf(0.退出.\n);printf(#######################################\n);}//主菜单-管理员-系统用户信息voidui_gly_xtyhxx(){system(cls);printf(################欢迎使用###############\n);printf(主菜单-管理员-系统用户信息:\n);printf(1.服务员信息.\n);printf(2.修改管理员密码.\n);printf(3.返回上一级.\n);printf(0.退出.\n);printf(#######################################\n);}//主菜单-管理员-系统用户信息-服务员信息voidui_gly_xtyhxx_fwyxx(){system(cls);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(0.退出.\n);printf(################################
本文标题:《程序设计实践》中小餐馆点餐系统课程项目报告
链接地址:https://www.777doc.com/doc-3008796 .html