课程设计报告书(快餐店点餐系统).doc_第1页
课程设计报告书(快餐店点餐系统).doc_第2页
课程设计报告书(快餐店点餐系统).doc_第3页
课程设计报告书(快餐店点餐系统).doc_第4页
课程设计报告书(快餐店点餐系统).doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

26吉首大学信息科学与工程学院课程设计报告书 课 程: 面向对象程序设计 课 题: 快餐店点餐系统 姓 名:李 静(登录界面设计,后期资料整理) 凌淑丽(前期需求分析) 吴 亮(系统各功能模块设计) 刘 佳(辅助编写系统各功能模块代码) 学 号: 从上至下依次为:20114042005 20114042008、20114042016、20114042009 专 业: 计算机科学与技术 年 级: 2011级 指导教师: 侯春明 基地指导教师: 何迎生 年 月一、项目介绍与设计目的面向对象程序设计课程设计是信息与计算科学专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。本课程设计主要目的在于加深学生对面向对象程序设计的基本理论和基本知识的理解,全面掌握面向对象程序设计思想的精髓。2、 设计方案1)、设计内容 以windows 为开发平台,以Java作为前台开发工具,完成一个小型软件的系统设计和开发。根据学生的具体情况,学生可以从以下备选题目中选择一个,也可以自选题目,完成系统地分析、设计和开发,提交完备的开发文档。2)、快餐店点餐系统1 、系统具备的基本功能: 根据所建议系统的业务流程图,分析出新系统的功能模块图:用户登录点餐管理配餐管理结算管理系统管理2 、需求描述 2.1用户登陆:用户输入用户名及密码后,系统自动验证有效性及用户角色,根据用户拥有的角色自动进入不同的子系统2.2客户点餐子系统:当客人落座后,服务员手持IPAD登陆点餐子系统后,首先输入相应的桌号,然后由客人根据不同的服务类别(特价、凉菜、热菜、汤、酒水、饮料)选择不同的食物及数量,系统根据不同的食物计算出总价格,方便客人控制总价格,如果输入错误系统提供删除的功能,最后提交到后厨配餐子系统中.2.3配餐管理子系统:配餐员或者厨师根据最新的配餐信息,按照时间先后顺序配置食品,完成后提交给结算管理子系统中2.4结算管理子系统:收银员根据服务员或者客人提供的桌号计算出总价格,客人如果提供会员卡或者会员号,系统自动验证卡号及会员身份并计算出相应的折扣及实付金额,根据相应的金额出具对应的发票2.5系统管理子系统:经理登陆子系统后,上传菜谱,管理菜谱及特价。在此子系统中,还实现了会员及用户、留言、桌位的管理3)、设计内容设计系统:快餐店点餐系统。3.1 系统用例图 登录用例点餐用例配餐用例结算用例系统设置用例3.2 系统模块设计3.2.1系统登录模块在该模块中主要实现用户身份的验证以及角色的检查,根据用户身份的不同分别登陆到不同的子系统中。3.2.2系统点餐模块 本模块是系统的主要模块,在该模块中主要实现菜肴以及酒水饮料的点餐等功能,根据食品的分类把界面分为特价、凉菜、热菜、汤类、酒水、饮料不同的区域以及点菜区域。3.2.3系统配餐模块本模块面向的对象主要是厨师以及酒水饮料配餐员,实现的功能是按照下餐的时间先后顺序显示订餐列表,厨师按照餐单的详细列表配置不同的食品及其他。每个餐单完成后系统提交到收银区。3.2.4系统收银模块本模块面向的对象主要是收银人员,实现的功能是分别显示配餐完毕后的餐单,客户就餐后提供桌号以及会员卡,系统自动计算出优惠金额以及实付金额,收款后系统自动更新数据库。3.2.5系统管理模块本模块面向的对象主要是经理管理人员,实现的功能是有会员管理,菜谱管理、用户管理功能。3.3客户端系统目录结构客户端目录结构按照模块的不同创建不同的文件目录,以便于文件的管理及今后的二次开发,截图如3.19所示:图3.19系统目录目录结构描述:1:DianCan:客户点餐模块2:PeiCan:食品配餐模块3:JieZhang:收银结账模块4:Manage:系统管理模块5:Images:系统图片。3.4系统类图设计根据系统中的实体,一共设计6个类,具体见下图3.20所示:图3.20系统类结构图详细描述如下:1.T_CaiPu菜谱类,该类中的属性及方法结构如3.21所示:图3.21菜谱类T_CaiPu类是用来描述系统中的菜谱实体,其中的属性有id(菜谱编号)、c_name(菜谱名称)、c_Price(菜价)、c_type(类别)、c_image(照片)、is_Tejia(是否特价)、isEnable(是否启用)。2.T_User用户类,属性及方法如图3.22所示:图3.22用户类T_user类用来描述系统使用者实体,其中的属性有id(记录编号)、userName(用户名)、userPwd(用户密码)、userRole(用户角色)、isEnable(是否启用)。3.T_YiJian(意见类):该类的属性及方法如图3.23所示:图3.23意见类T_YiJian类是用来描述客户意见的实体,其中的属性有id(意见编号)、HJ_YJ(环境意见)、FW_YJ(服务意见)、FC_YJ(饭菜意见)、KH_LY(客户留言)。4.T_Member(会员类):该类的属性及方法如图3.24:图3.24会员类T_Member类是用来描述客户级别的实体,其中的属性有id(会员编号)、member_Name(会员名称)、type_id(会员级别编号)、isEnable(是否启用)。5.T_CanDan(餐单类):该类的属性及方法如图3.25:图3.25餐单类T_CanDan类是用来描述客户菜单的实体类,其中的属性有id(菜单编号)、desk_HM(桌位号)、xf_je(消费金额)、member_id(会员编号)、isJieZhang(是否结账)、xf_date(消费日期)、state(配餐状态)。6.T_Can_MingXi(餐单明细)类:该类的属性及方法如图3.26所示:图3.26餐单明细类T_Can_MingXi类是用来描述菜单明细的实体,其中的属性有id(记录编号)、can_id(菜单编号)、cai_id(菜谱编号)、cai_SL(份数)、cai_JE(每类菜的金额)。3.5主要模块设计3.5.1登录模块设计登陆模块的功能就是验证用户名及密码是否有效,如果有效则再判断角色编号值(1:服务员角色2:厨师角色3:收银员角色4:管理员角色),根据不同的角色打开不同的窗口,该模块实现的前置条件是设置正确的服务器地址以及服务器处于启动状态,输入输出数据如表3.27所示:数据数据输出类型数据类型约束用户名输入字符串类型4-10位的字母组成密码输入字符串类型4-6位的数字组成表3.27登陆模块输入输出数据具体实现代码如下所示:/用户名string un = this.txt_UserName.Text.Trim();/密码string pwd = this.txt_UserPwd.Text.Trim();/判断用户名及密码是否为空if (address = | un = | pwd = )MessageBox.Show(用户名、密码、地址不能为空);else/判断用户名是否是字母及长度在4-10位if (!Regex.IsMatch(un, a-zA-Z4,10)MessageBox.Show(不是字母或者长度不够);return;else if (!Regex.IsMatch(un, 0-94,6)MessageBox.Show(请输入4-6位的数字);return;dc = Program.GetDc(address);/返回数据库中的最新更新/ dc = Program.ChangeDc(dc.T_user);IQueryable t_user = dc.T_user.Where(u = u.userName = un & u.userPwd = pwd);if (t_user!=null&t_user.Count()=1)this.Hide();if (t_user.First().userRole = 1)/打开点餐窗口MainMenu mm = new MainMenu();mm.Show();else if (t_user.First().userRole = 4)/打开管理员Manage.FrmManage frmManage = new Manage.FrmManage();frmManage.Show();else if (t_user.First().userRole = 2)/打开厨师窗口PeiCan.FrmZuoCai frmZuoCai = new PeiCan.FrmZuoCai();frmZuoCai.Show();else if (t_user.First().userRole =3)/打开结算窗口Jiezhang.FrmJieZhang frm_JieZhang = new Jiezhang.FrmJieZhang();frm_JieZhang.Show();elseMessageBox.Show(登录失败);3.5.2点餐模块设计点餐模块是系统中重要的模块,主要实现客户餐单的创建以及所点菜品的保存,该模块的实现思路是首先系统分类显示今日特价、凉菜、热菜、汤类、酒水、饮料,客人按照所需登记桌位,选择菜品及分数(默认1份),系统自动计算总金额,如果有误客人则可以删除某类菜品,最后点击提交保存到数据库。那么该模块实现的前提条件是用户以服务员身份登录到系统,且数据库中有相应的菜品信息以及一定数量的桌位。此模块的输入输出数据如表3.28所示:数据数据输出类型数据类型约束菜名输出字符串类型长度小于50价格输出字符串类型长度小于50图片输出二进制类型桌号输入字符串类型长度小于50菜名编号输入数字份数输入数字表3.28点餐模块输入输出数据具体实现代码:/ / 系统显示菜谱/ / / private void MainMenu_Load(object sender, EventArgs e)dc = Program.dc;cur_z = new Cursor(images/图标/z.cur);cur_y = new Cursor(images/图标/you1.cur);tj_list = new List();lc_list = new List();rc_list = new List();t_list = new List();js_list = new List();yl_list = new List();LoadImage(-1, true);/默认显示特价if(tj_list.Count!=0)this.panelEx4.Style.BackgroundImage = tj_listtj_index;/加载桌位号LoadDesk();/ / 修改菜谱/ / / private void dgv_CanMingXi_CellContentClick(object sender, DataGridViewCellEventArgs e)if (dgv_CanMingXi.Columnse.ColumnIndex.Name = del)/获得菜谱IDcai_id = this.dgv_CanMingXi.Rowse.RowIndex.Cellscaiid.Value.ToString();var mx = canDan.T_Can_MingXi.ElementAt(e.RowIndex);canDan.xf_je -= mx.cai_JE;canDan.T_Can_MingXi.RemoveAt(e.RowIndex);/重新绑定控件this.lbl_HJ.Text = 合计: + canDan.xf_je + 元;BindingList canList = new BindingList(canDan.T_Can_MingXi.ToList();this.dgv_CanMingXi.DataSource = canList;3.6模块功能实现3.6.1登录模块实现登陆功能根据用户输入的用户名及密码与数据库中的信息进行比对,如果验证成功,则根据角色的不同进入不同的子系统,系统角色按照职位的不同划分为服务员、厨师、收银员、经理四个固定角色,每个角色的权限不同功能不一样。图3.1用户名密码为空验证截图图3.2验证密码位数截图3.6.2点餐模块主要代码点餐模块代码实现的思路是首先客人浏览菜谱选择不同的食品,系统先把该食品放入到购物车中,客户可以对放入购物车中的食品删除,不能重复点同一类的食品,对放入购物车中的食品系统自动计算出总价格,待确认无误后统一提交到数据库。图3.3查询空桌位图3.4热菜截图图3.5酒水截图图3.6菜单截图3.6.3收银模块代码实现收银模块实现的思路是根据会员编号系统自动计算出优惠金额及实付金额。具体代码如下。double yh=0;/获得会员编号mid = this.txt_Member_id.Text.Trim();if (xf_je = null | xf_je = )MessageBox.Show(请选择餐单);else if ( mid= )MessageBox.Show(请输入会员编号);else/验证会员信息if (dc.T_Member.Count(m = m.id.ToString() = mid) = 0)MessageBox.Show(无此会员);else/显示会员信息this.lbl_Member_Info.Text =会员信息:+ dc.F_MemberNameByID(Convert.ToInt32(mid) + : + dc.F_MemberLeavlNameByID(Convert.ToInt32(mid) +- + dc.F_MemberLeavlByID(Convert.ToInt32(mid) + 级;/计算优惠yh= Convert.ToInt32(xf_je) * (10 - dc.F_MemberLeavlByID(Convert.ToInt32(mid).Value) * 0.1d;this.txt_YH.Text = String.Format(0:C2,yh);/计算实付金额this.txt_SF.Text = String.Format(0:C2, Convert.ToDouble(xf_je)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论