收藏 分享(赏)

餐饮管理系统设计.doc

上传人:weiwoduzun 文档编号:5034136 上传时间:2019-02-01 格式:DOC 页数:41 大小:2.32MB
下载 相关 举报
餐饮管理系统设计.doc_第1页
第1页 / 共41页
餐饮管理系统设计.doc_第2页
第2页 / 共41页
餐饮管理系统设计.doc_第3页
第3页 / 共41页
餐饮管理系统设计.doc_第4页
第4页 / 共41页
餐饮管理系统设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、第 1 页 共 41 页课 程 设 计 报 告课程名称: PowerBuilder10.5 程序设计基础 设计题目: 酒店餐饮管理系统 专业: 信息与计算科学 班级: 姓名: XXXX 学号: XXXXXXXX 指导教师: XXX XXX 学院数理系XXXX 年 XX 月 第 2 页 共 41 页课程设计题目(问题)描述随着人们生活的富裕,人们出入酒店也越来越多,随之而来,酒店管理人员管理酒店的事情越来越多,为了帮助酒店管理人员更好的管理酒店,我们设计了这个酒店管理系统。它实现了对值班人员的调配与管理和对菜单的变更,以及对订餐,订餐的修改、取消、查询及在收费时的立账,打折设定的等方面的功能。本

2、 组 成 员 情 况姓 名 学号 承 担 的 任 务 成 绩杜雅笛 2012314201 登陆界面、系统维护、打印、帮助模块的代码编写及系统的调试郭晓丽 2012314206 登陆界面、订餐管理、收费管理模块的代码编写及系统的调试莫鹏飞 2012314220 资料查询、登陆界面、代码编写及系统的调试教 师 评 语签名: 注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。第 3 页 共 41 页一、本 组 设 计 的 功 能 描 述(

3、含所有实现的模块的功能)登录界面的功能:在登陆界面正确输入用户名与口令就可以登陆主界面,如用户名与口令不匹配则有提醒,点开免费注册界面,可以录入新的管理人员的信息,退出注册界面输入刚注册的用户名和口令就可登陆主界面。系统主界面的功能: 系统维护:值班员信息维护:实现对值班员的添加、删除功能菜谱信息维护:实现对已有菜单的查询、添加和删除修改口令:实现对用户口令的更改。 订单管理: 订餐:实现对订餐信息的添加订餐修改:实现对已经订餐的信息的修改订餐取消:实现对已经订餐的信息的取消订餐查询:实现对订餐订单按桌号、菜谱号、菜名的查询 收费管理: 折扣设定:实现了对用餐人员的折扣设定客户信息:显示客户信

4、息 打印: 打印客户消费账单二、本 组 设 计 的 主 要 特 色第 4 页 共 41 页主要特色有如下:1、登陆界面可以注册新用户2、在登陆主界面是弹出交班管理制度的界面3、可对值班人员、菜谱信息进行添加,删除4、可对订餐情况进行添加、删除、查询等功能5、对客户的费用进行打折,打印客户消费单三、系 统 分 析 与 设 计第 5 页 共 41 页2.1 数据库的设计与连接(1)在 SQL SEVER 2005 开发环境下打开对象资源管理器,依据创建数据库的步骤,创建物理数据库 XSCJ,在 PowerBuilder 开发环境下打开数据库画板,依次定义 ODBC 数据源,定义 DB Profil

5、e ,连接数据库。根据功能需求,在数据库中先创建 5 个表表 1 订餐信息表 DC表 2 菜谱信息表 CP列名 数据类型 可否为空 说明KH_NO CHAR(20) NOT NULL 客户号(主键)DC_DESK CHAR(20) NULL 桌号JS_DZ CHAR(3) NULL 打折情况TOTAL CHAR(5) NULL 总计JS_DATE DATETIME NULL 日期表 3 结算信息表 JS列名 数据类型 可否为空 说明KH_NO CHAR(10) NOT NULL 客户号(主键)KH_NAME CHAR(20) NULL 姓名KH_SEX CHAR(2) NULL 性别KH_AG

6、E CHAR(3) NULL 年龄KH_JOB CHAR(20) NULL 职务KH_TEL CHAR(20) NULL 联系电话KH_COMPANY CHAR(20) NULL 工作电话表 4 荣誉客户信息表 KH列名 数据类型 可否为空 说明ZBY_NAME CHAR(20) NOT NULL 值班员名(主键)列名 数据类型 可否为空 说明DC_DESK Char(20) Not null 桌号(主键)CP_NO Char(10) Not null 菜谱号CP_NAME Char(20) null 菜名DC_NUMBER Char(3) null 数量DC_DATE datetime Nu

7、ll 订餐日期列名 数据类型 可否为空 说明CP_NO CHAR(10) NOT NULL 菜谱号(主键)CP_NAME CHAR(20) NULL 菜名CP_KIND CHAR(20) NULL 种类CP_PRICE NUMBER(10) NULL 价格CP_DETAIL CHAR(50) NULL 备注第 6 页 共 41 页ZBY_PAWD CHAR(10) NUT NULL 口令表 5 值班员表 ZBY实体和实体之间的关系 E-R 图系统详细设计(1)单击菜单“FileNew” ,选择应用程序对象模板画板,单击“OK”按钮在出现的对话框中完成应用程序对象名、库文件名的设置.(2)单击“

8、Finish”按钮,进入应用程序对象设计画面。1、在应用程序对象的 Open 事件中输入如下的程序代码/ Profile jiudianSQLCA.DBMS = “ODBC“SQLCA.AutoCommit = FalseSQLCA.DBParm = “ConnectString=DSN=jiudian;UID=;PWD=“connect;open(w_open)sleep(1)close(w_open)open(w_login)该语句就是打开 w_open 窗口的语句。 “欢迎登陆餐饮管理系统”如图:第 7 页 共 41 页2、登录窗口的设计。登录窗口如图(1)在 W_login 窗口的 O

9、pen 事件中输入如下的程序代码Environment l_envint l_ScrWidth,l_ScrHeightsetRedraw(false)第 8 页 共 41 页GetEnvironment(l_env)/取得屏幕的高度和宽度l_ScrWidth=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!)l_ScrHeight=PixelsToUnits(l_env.ScreenHeight,YpixelsToUnits!)Move(l_scrwidth - this.width)/2,(l_scrheight - this.height)/2

10、)/移动窗口到屏幕中间setredraw(true)/打开窗口刷新(2)按钮控件 cb_1(确定)的 Click 事件中的程序代码如下:string l_id,l_passwardstring l_passward0int il_id=trim(sle_1.text)l_passward=trim(sle_2.text)if l_id=“ then messagebox(“提示 “,“请输入用户名!“)returnend ifsle_1.setfocus()if l_passward=“ then messagebox(“提示 “,“请输入密码!“)returnend ifsle_2.setf

11、ocus()select count(*)into :ifrom zbywhere rtrim(zby_name) = :l_idusing sqlca;if i0 thenmessagebox(“警告“,“ 用户名已存在,请重试!“,Exclamation!)sle_1.text=“sle_1.setfocus()returnelsemessagebox(“,“恭喜你,该用户名可以使用!“)return end if(2) 在”提交”按扭控件的 click 事件中输入如下代码:string l_userl_user=sle_1.text第 12 页 共 41 页if sle_1.text=“

12、 thenmessagebox(“提示“,“ 请输入用户名!“)return 1end ifstring aa,bbaa=sle_2.textbb=sle_3.textif aa=“ thenmessagebox(“提示“,“ 密码不能为空!“)return 1end ifif aa0 thenbb=messagebox(“提示“,“是否保存未保存的数据“,question!,yesnocancel!,1)choose case bbcase 1if dw_1.update()=1 then commit using sqlca;return 0else rollback using sqlc

13、a;messagebox(“提示“,“ 数据保存失败!“)end ifcase 2return 0case 3return 1end chooseend if(3)增加 按钮代码:第 16 页 共 41 页dw_1.scrolltorow(dw_1.insertrow(0)dw_1.setcolumn(0)dw_1.setfocus()(4)删除按钮代码:long netnet=messagebox(“,“你确定要删除吗“,question!,yesno!,1)/提示是否要删除choose case netcase 1dw_1.deleterow(dw_1.getrow()/删除当前行case

14、 2return 1end choose(5)保存按钮代码:int i_counti_count=dw_1.modifiedcount()+dw_1.deletedcount()/判断改变和删除的数目。if i_count0 thenif dw_1.update()=1 thencommit using sqlca;messagebox(“提示“,“已成功保存“+string(i_count)+“纪录“)elserollback using sqlca;messagebox(“提示“,“保存失败“)end ifend if6.菜谱信息维护窗口 w_choose_receive 设计第 17 页

15、 共 41 页ddlb_1、ddlb_2 属性相同,其 Items 属性页如下图所示。ddlb_3、ddlb_4 属性也相同,其 Items 属性页如下图所示。ddlb_5 的 Items 属性页如下图所示其他的控件如窗口上所示。所链接的数据窗口对象在编辑状态下,如图下所示该数据窗口对象所链接的数据库表格为 CP,其数据源表示如下:SELECT “cp“.“cp_no“, “cp“.“cp_name“, “cp“.“cp_kind“, “cp“.“cp_price“, “cp“.“cp_detail“ FROM “cp“ 第 18 页 共 41 页(1)Open 事件:dw_1.settran

16、sobject(sqlca)ddlb_1.text=“菜谱号 “ddlb_4.text=“=“ddlb_5.text=“and“(2)查询代码int istring lookforcondition/定义参数:查询条件综合结果string lookforitem1,lookforitem2,lookforitem3/定义参数:要查询的列string lookforwhat1,lookforwhat2,lookforwhat3/定义参数:要查询的内容string lookforhow1,lookforhow2,lookforhow3/定义参数:查询的符号string lookforoperato

17、r1,lookforoperator2/定义参数:不同查询条件组合操作符号lookforhow1=ddlb_3.textlookforhow2=ddlb_4.textif ddlb_5.text=“与“ thenlookforoperator1=“and“elseif ddlb_5.text=“或“ thenlookforoperator1=“or“elseif ddlb_5.text=“非“ thenlookforoperator1=“not“end ifif ddlb_1.text=“菜谱号“ thenlookforitem1=“cp_no“lookforwhat1=“+sle_1.tex

18、t+“elseif ddlb_1.text=“菜名“ thenlookforitem1=“cp_name“lookforwhat1=“+sle_1.text+“elseif ddlb_1.text=“种类“ thenlookforitem1=“cp_kind“lookforwhat1=“+sle_1.text+“elseif ddlb_1.text=“价格“ thenlookforitem1=“cp_price“lookforwhat1=sle_1.textelseif ddlb_1.text=“备注“ thenlookforitem1=“cp_detail“lookforwhat1=“+sl

19、e_1.text+“end ifif ddlb_2.text=“菜谱号“ thenlookforitem2=“cp_no“lookforwhat2=“+sle_2.text+“elseif ddlb_2.text=“菜名“ thenlookforitem2=“cp_name“lookforwhat1=“+sle_2.text+“第 19 页 共 41 页elseif ddlb_2.text=“种类“ thenlookforitem2=“cp_kind“lookforwhat2=“+sle_2.text+“elseif ddlb_2.text=“价格“ thenlookforitem2=“cp_

20、price“lookforwhat2=“+sle_2.text+“elseif ddlb_2.text=“备注“ thenlookforitem2=“cp_detail“lookforwhat2=“+sle_2.text+“end ifif ddlb_2.text=“ or ddlb_4.text=“ thenlookforcondition=lookforitem1+lookforhow1+lookforwhat1elselookforcondition=lookforitem1+lookforhow1+lookforwhat1+“ “+lookforoperator1+“ “+lookfo

21、ritem2+lookforhow2+lookforwhat2end ifdw_1.setfilter(lookforcondition)filter(dw_1)i=dw_1.retrieve()if isle_3.text thenmessagebox(“警告“,“ 两次输入的口令不一致,请重新输入“)sle_3.text=“sle_4.text=“sle_3.setfocus()elseselect rtrim(zby_pawd) into:correct_pswdfrom zbywhere rtrim(zby_name)=:ls_user;if correct_pswdls_pswd t

22、henmessagebox(“警告“,“原口令不正确!“)elseupdate zby set zby_pawd =:sle_3.text where rtrim(zby_name)=:ls_user;第 21 页 共 41 页commit using sqlca;close(parent)messagebox(“注意“,“你的口令已经修改,请牢记!“)end ifend if(2)“取消”按扭用来退出该窗口。8、订餐 w_dc 窗口设计所链接的的数据窗口对象在编辑状态如图该数据窗口对象所链接的数据库表格为 DC,其数据源表示如下:SELECT “dc“.“dc_desk“, “dc“.“cp

23、_no“, “dc“.“cp_name“, “dc“.“dc_num“, “dc“.“dc_data“ FROM “dc“ 第 22 页 共 41 页(1)open 事件int g_rownumberg_rownumber=dw_1.insertrow(0)dw_1.settransobject(sqlca)dw_1.setfocus()date g_dc_dateg_dc_date=today()/在数据窗口的日期这列显示当前日期dw_1.scrolltorow(g_rownumber)dw_1.setcolumn(0)(2)下一道菜int g_rownumberg_rownumber=dw

24、_1.insertrow(0)date g_dc_dateg_dc_date=today()dw_1.setfocus()dw_1.scrolltorow(g_rownumber)dw_1.setcolumn(1)(3) “删除” 按钮控件的 Click 事件用于删除一个菜谱,程序代码与上述的“删除”按钮控件相同.(4) “保存” 按钮控件的 Click 事件将用于保存用户所做的修改,程序代码与上述的“保存”按钮相同。(5) “退出” 按钮控件的 Click 事件将关闭该窗口。9、订餐修改窗口 w_ujttyyytt 设计第 23 页 共 41 页Ddlb_1 和 ddlb_2 两个控件的属性

25、一样 ,其 item 属性如下图 ,所链接的数据窗口对象 dc(1)open 事件/设置事务对象dw_1.settransobject(sqlca)ddlb_1.text=“=“ddlb_2.text=“=“(2)显示订单int istring lookforconditionstring lookforitem1,lookforitem2string lookforwhat1,lookforwhat2string lookforhow1,lookforhow2lookforhow1=ddlb_1.textlookforhow2=ddlb_2.textlookforitem1=“dc_desk

26、“lookforwhat1=“+sle_1.text+“lookforitem2=“dc_date“lookforwhat2=“datetime(“+sle_2.text+“ 00:00:00)“if sle_2.text=“ thenlookforcondition=lookforitem1+lookforhow1+lookforwhat1第 24 页 共 41 页elselookforcondition=lookforitem2+lookforhow2+lookforwhat2/lookforitem1+lookforhow1+lookforwhat1+“ “+“and“+“ “+end

27、ifdw_1.setfilter(lookforcondition)filter(dw_1)i=dw_1.retrieve()if il_dc_num2 thenmessagebox(“警告“,“ 退定出错,请查看数量!“)return 1end ifUPDATE dc SET dc_number = : l_dc_num2 - :l_dc_num1 ;if dw_1.update()=1 thenmessagebox(“,“退定成功!“)close(parent)returnend ifreturnend ifcase 2return 0case 3return 1end choose第 2

28、7 页 共 41 页11、订餐查询 w_dc_search 设计控件如上图所示.其中有一个选项卡,卡上有三页,三页的数据窗口控件所连接的数据窗口都是dc,界面如下图,该数据窗口对象所链接的数据库表格为 CP 和 DC(1)open:tab_1.tabpage_1.dw_1.settransobject(sqlca)tab_1.tabpage_2.dw_2.settransobject(sqlca)tab_1.tabpage_3.dw_3.settransobject(sqlca)(2)按桌号查询int istring l_desk,conditionl_desk=sle_1.textif l_desk=“ thenmessagebox(“提示“,“ 请输入要查询的桌号!“)第 28 页 共 41 页return end ifcondition=“dc_desk=“+sle_1.text+“dw_1.setfilter(condition)filter(dw_1)i=dw_1.retrieve()if i200 and l_total500 and l_total1000 and l_total5000 thenmessagebox(“,“总金额大于 5000rn 给予 8.5 扣优惠“)returnend if13.客户信息 w_kh 设计

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 规范标准 > 酒店餐饮

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报