《专业课程设计报告范文-Delphi餐饮管理系统.docx》由会员分享,可在线阅读,更多相关《专业课程设计报告范文-Delphi餐饮管理系统.docx(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南京审计学院信息科学学院课程设计报告书课程名称:信息系统开发工具课程设计课题名称: 餐饮管理系统专业:信息管理与信息系统班 级:08级信息管理1班学号:061415309姓 名:孙晓刚成 绩:4)自动生成结账编号,输入菜数量自动计算合计消费金额。5)可实现挂单、读单、放弃开台和点菜完毕返回的功能。第三章数据库设计3.1 系统E-R图的设计系统E-R图如图3.1所示3.2 数据库结构设计数据库结构设计是总体设计阶段非常重要的环节,好的数据库结构可以简化开发 过程,使系统功能更加清晰明确。因为数据库结构的变化会造成编码的改动,所以必 须认真设计数据库后再进行编码,从而避免了无谓的重复的工作。本系统
2、采用了 SQL Server数据库,数据库名称为060412079。该数据库包含4个 表,分别是:开台表,点菜表,菜谱费用信息表,台号信息表。下面分别介绍数据表 的结构。1、开台表开台表用于保存开台的相关信息。开台表的结构见表3-2-1所示。表3-2-1开台表结构2、点菜表字段名称数据类型字段大小允许为空否编号int4设置为主键房台名称char30允许为空类型说明char20允许为空餐饮部门char20允许为空服务费money8允许为空简要说明char30允许为空状态char20允许为空点菜表用于保存点菜信息和相应的消费信息。点菜表的结构见表3-2-2所ZjS o表3-2-2点菜表结构字段名称
3、数据类型字段大小是否允许为 空idchar16设置为主键房间台号int4允许为空类别Char10允许为空编号int4允许为空名称char50允许为空类型char20允许为空单位char10允许为空数量int4允许为空价格money8允许为空合计Money8允许为空点单日期datetime8允许为空结单日期datetime8允许为空服务员编号int8允许为空服务员姓名char12允许为空状态char10允许为空结账编号int4允许为空是否结单char10允许为空3、菜谱费用信息表用于查询餐饮店所有的菜的信息。菜谱费用信息表的结构如 图3-2-3所示。表3-2-3菜谱费用信息结构4、台号信息表用于
4、台号信息的查询,方便了消费者选台,开台及其他的作用。 台号信息表的结构如图3-2-4示。字段名称数据类型字段大小是否允许为 空编号int4设为主键菜名char50允许为空单位char10允许为空价格money8允许为空菜系类别char20允许为空口味说明char30允许为空表3-2-4台号信息表结构字段名称数据类型字段大小是否允许为 空编号int4设为主键房台名称char30设为主键类型说明Char20允许为空餐饮部门Char20允许为空服务费money8允许为空简要说明char30允许为空状态char10允许为空容纳人数Int4允许为空第四章系统详细设计及实现系统登陆界面设计1 实现目标程序
5、启动后,首先登陆此界面验证操作员的密码。主要实现的功能如下:1)以图标形式显示数据库中操作员,并凭口令登入到主界面。2)操作员输入错误密码提醒错误并返回,三次输入错误口令则退出系统。3)实现权限登录:系统管理员拥有一切权利,其他操作员则被限制一些操作权限。 系统登录界面如图所示。窗口*J图系统登录界面2 .实现过程(1)添加窗体设置窗体caption属性为“登录窗口”,保存窗体为u79in.pas。(2)向窗体中添力口 Datasource、Query、Edit Listview、lmageList Image、Time、Label等控件。主要控件对象的属性如表4-2-1所示。表4-2-1主要
6、控件对象的属性列表.程序主要代码如下:控件名属性值功能QuerylDatabase nameSQL060412079Select * from 员工信表权限查询DatabaselDatasetQueryl设置数据源单击“登陆”按钮,将判断操作员、操作密码是否正确,如果正确进入主界 面并根据操作员权限设置菜单和工具是否可用。如果输入密码错误将提醒并返回,三 次错误输入则自动退出系统。procedure TUser.BitBtnlClick(Sender: TObject);beginMain Form.Tool Button 1. Enabled :=True;Main Form.ToolBut
7、ton2. Enabled :=True;Main Form.Tool Buttons. Enabled :=True;Main Form.Tool Button6. Enabled :=True;Main Form. Nl.Enabled :=True;Main Form. N2. Enabled :=True;Main Form. N4. Enabled :=True;Main Form. N3. Enabled :=True;Main Form. N5. Enabled :=True;Main Form. N6. Enabled :=True;Main Form. N7. Enabled
8、 :=True;Main Form. N8. Enabled :=True;Main Form. N9. Enabled :=True;Main Form. N17. Enabled :=True;Main Form. N19. Enabled :=True;if Queryl.FieldByName(编号).AsString=controller then如果是系统管理员begin(密码)AsString thenbeginShowMessage(T+Queryl.FieldByName(姓名).AsString+的 口 令错误/ 口 令错误Editl.SetFocus;EndElsebeg
9、inMain Form.StatusBarl.Panelsl.Text:=用户+aueryl.FieldByName( 姓名 ).AsString+1;Main Form.Userl:=Queryl. Field ByName。姓名AsString;User_Close:=3;Timerl. Enabled :=Fa Ise;Close;end;EndElsebeginMain Form.Tool Button 1. Ena bled :=False;Main Form.Tool Button2. Ena bled :=False;Main Form.Tool Buttons. Ena ble
10、d :=False;Main Form. Nl. Enabled :=False;Main Form. N2. Enabled :=False;Main Form. N4. Enabled :=False;Main Form. N3. Enabled :=False;Main Form. N5. Enabled :=False;Main Form. N6. Enabled :=False;Main Form. N7. Enabled :=False;Main Form. N8. Enabled :=False;Main Form. N9. Enabled :=False;Main Form.
11、N17. Enabled :=False;Main Form. N19. Enabled :=False;if Editl.TextQueryl.FieldByName(密码).AsString thenbeginShowMessage(,+Clueryl.FieldByName(,).AsStnng+,fitlEditl.SetFocus;EndElsebeginName:=Queryl. Field ByNameCZyAsString;Main Form.Enabled Key(Name);设置操作员权限Main Form.StatusBarl.Panelsl.Text:=用户+Query
12、l.Field ByNameC 姓名 .AsString+T;User_Close:=3;Timerl. Enabled :=False;Close;end;end;END;窗体启动,关闭钥匙,后将所有操作员添加到操作员列表。procedure TUser.FormShow(Sender: TObject);var List:Array0.1of TListltem;beginTimerl. Enabled :=True;User_Close:=0; 打开关闭钥匙Queryl.Close;Queryl.Open;ListViewl. Items.Clear;While not Queryl.E
13、of dobeginListO:=ListViewl. Items. Add;ListO .Caption :=Queryl.Field ByName(姓名)AsString;if Queryl.FieldByName。编号).AsString:controller thenbeginListO.lmagelndex:=O;EndElsebeginListO.lmagelndex:=l;end;Queryl.Next;end;end;选择操作员,点击其中一个则将员工的姓名和类型添加到了相应位置。procedure TUser.ListViewlClick(Sender: TObject);va
14、r List:Array0.1of TListltem;beginListO :=ListViewl.Selected;if List0oNil then beginQueryl.Loca te(,姓名 ,ListO.Capt ion/loCasel nsensitive); 查询姓名,但是如果有从名的按第一个算.end;end;主界面设计1、程序启动后。系统在“登陆界面”验证操作员密码后,将进入此界面。系统 主界面主要功能:根据操作员权限设置相应权限的菜单和工具栏功能。可通过菜单或快捷键进入相应子界面。显示了系统当前时间和相应操作员。主程序界面如图所示。图主程序界面2 .实现过程(1)启动D
15、elphi,设置窗体名为mainfrom,设置窗体caption为“餐饮管理系统”, 保存为u791.paso向窗体中添力口 Imagelist、mainmenu image、toolbutton、stausbar panektime label等控件主要属性为:控件名属性值功能Toolbar1imagesImagelistl设置工具栏图标stausbar1Panell用户登录【管理员】显小程序状态、参 数(3)主要程序代码如下:使应用项目的提示信息挂钩程序。procedure TMainForm.FormCreate(Sender: TObject); beginApplication.On
16、Hint:=DisPlayHint; 与应用项目的提示信息挂钩 end;先调用系统登陆窗口,再设置窗体状态参数程序。procedure TMainForm.FormShow(Sender: TObject);var Year,Month,Day: Word;beginClose_l:=l;User.ShowModal; 调用系统登陆窗口If Close_l = 0 ThenCloseElsebeginApplication. Main Form.WindowState:=wsMaximized;Application. Main Form.WindowState:=wsNormal;Decod
17、eDate(StrToDate(DateTOStr(Date),Year,Monthyday); 分解日期StatusBarl.Panels2.Text:=系统日期:+lntToStr(Year)+年+lntToStr(Month)+,月 4lntToStr(day)+日; end; end;调入开台界面程序。procedure TMainForm.N8Click(Sender: TObject);beginIf Assigned(KTGL) Then begin2010年 12月 26日2.1 系统功能需求分析5系统数据流图52.2 数据字典62)数据流名称:菜谱信息63)数据流名称:桌台状
18、况64)数据流名称:开台人65)数据流名称:员工信息76)数据流名称:管理员情况7(2)主要的数据存储定义7)数据存储编号:D 1 71 )数据存储编号:D273)数据存储编号:D372)处理过程编号:P28系统总体框架设计81.1 各模块功能分析9DataModulel.THXX.Open;/打开台号信息表DataModulel.cybmb.Open;/ 打开餐饮部门表DataModulel.JZBH.Open; 打开结帐编号表KTGL:=TKTGL.Create(Self);KTGL.ShowModal;end;end;设置“B”类权限有系统管理和系统维护操作权,“A”类权限即系统管理员的
19、 操作享有一切操作权限。如图422所示。图4.2.2 B类权限主程序界面代码如下:Function TMain Form.Ena bledKey(keyString)Boolean;声明操作权限函数 EnabiedKey beginif Pos(A*ey)0 then 具有9,类权限beginMain Form.Tool Button 1. Enabled :=True;Main Form.ToolButton2. Enabled :=True;Main Form.Tool Buttons. Enabled :=True;Main Form.ToolButton6. Enabled :=Tru
20、e;Main Form. Nl.Enabled :=True;Main Form. N2.Enabled :=True;Main Form. N4. Enabled :=True;Main Form. N3.Enabled :=True;Main Form. N8. Enabled :=True;Main Form. N9.Enabled :=True;Main Form. N17. Enabled :=True;Main Form. N19. Enabled :=True;End Else if Pos(B,key)0 then具有B类权限beginMain Form.Tool Button
21、 1. Enabled :=True;Main Form.ToolButton2. Enabled :=True;Main Form.Tool Button6. Enabled :=True;Main Form. Nl.Enabled :=True;Main Form. N5.Enabled :=True;Main Form. N6.Enabled :=True;Main Form. N7.Enabled :=True;Main Form. N4.Enabled :=True;Main Form. N3.Enabled :=True;Main Form. N8.Enabled :=True;M
22、ain Form. N9.Enabled :=True;Main Form. N17.Enabled :=True;Main Form. N19. Enabled :=True;End;end;调入菜谱信息设置界面程序。procedure TMainForm.N6Click(Sender: TObject);beginIf Assigned(CPXXSZ) ThenbeginDataModulel.CPFYXX.Open; 打开菜谱费用信息表DataModule1.cxlbxx.open; 打开菜系类别信息表CPXXSZ:=TCPXXSZ.Create(Self);CPXXSZ.ShowMod
23、al;end;end;4.3菜谱信息设置界面设计4.3.1 菜谱设置模块1 .实现目标程序启动后,调用菜单“基础信息设置”下的“菜谱信息设置”项,将打开“菜 谱信息设置界面:系统菜谱信息设置界面主要功能:实现对菜谱信息的添加、修改、 删除、查询的功能。2 ,实现过程(1)添加新窗体,设置窗体名为cpxxsz,设置窗体caption为“菜谱信息设置”, 保存为 u79cpset.paso(2)向窗体中添加 query、panek groupbox dbgrid dbedit edit、dbtext bitbtn、dblookupcombobox time datasetfrist actionl
24、ist label 等控件,主要控件属性如表4-3-1所示。表4-3-1主要控件属性对象属性值功能QuerylDatabasenam esql060412079Sleet MAX(编号)from 菜谱信息费用表设 置数据 范围DatasetFristlDatasourceCaptionHintDatabasel.cpxxfys 首记录 移动到第一条记录移 动至IJ首 记录DatasetLastlDatasourceCaptionHintDatabasel.cpxxfys尾记录移动到最后一条记录移 动至1尾 记录DatasetNextlDatasourceCaptionHintDatabasel
25、.cpxxfys 下一条记录 移动到下一条记录移 动到下 一条记 录DatasetPriorlDatasourceCaptionHintDatabasel.cpxxfys 上一条记录 移动到上一条记录移 动到上 一条记 录DBLookupComB oxiListsourceKeyfieldListfieldDatasourceDtafirldDatabasel.cpfyxxs 菜系名称 菜系名称 Databasel.cxlbxxs 菜系类别选 择菜系 类别菜谱查询设计1.菜谱信息设置查询界面如图4.3,1所示。图菜谱信息查询设置界面2.代码如下:procedure TCPXXSZ.BitBtn
26、lClick(Sender: TObject);var a,b,c:integer;d:String;beginIf Length(Editl.Text)二0 Then如果输入查询信息为空beginShowMessage(,请输入查询的编号或菜名信息,);Editl.SetFocus;EndElsebegina:=Length(Editl.Text);c:=0;for b:=l to a do /for语句用于判断查询是按菜谱编号还是按菜名查询 beginD:=COPY(editl.text/b/l);if (D=U) or (D panek pagecontrok dbgrid dbedit
27、 edit dbtext bitbtn dblookupcombobox image label 等控件,主要控件属 性如表4-3-1所示。表4-3-1主要控件属性控件名属性值功能打他搜如厕DatasetQuery设置数据 源DBLookupComB oxiListsourceKeyfieldListfieldDatabasel.cybm bs部门名称选择餐饮 部门部门名称DbgridldatasourceDatabasel.thxxs显示台号 信息441搜索台号设计1.开台管理搜索台号界面如图4.4-1所示。图4.4-1开台管理搜索台号界面3 .代码如下:procedure TKTGL.Bi
28、tBtnlClick(Sender: TObject); 搜索房台 var List:TListltem;Lists:integer;ListText:String;ahc:integer;d:String;beginIf Length(Editl.Text) = 0 ThenbeginShowMessage。请输入查询的房台编号或房台名称信息); Editl.SetFocus;EndElsebegina:=Length(Editl.Text);c:=0;for b:=l to a dobeginD:=COPY(editl.text,b/l);if (D=O) or (D=9) then be
29、gin(2)系统王界面王要功能9系统E-R图的设计103.1 数据库结构设计124.1系统登陆界面设计142.实现过程15END;174.2主界面设计18代码如下:20FUNCTION TMAINFORM.ENABLEDKEY(KEY:STRING):BOOLEAN;声明操作权限函数ENABLEDKEY20431菜谱设置模块212.实现过程214.3.3 菜谱添加设计24442开台设置设计31GB:=2;31IF LENGTH(EDITl.TEXT) = 0 THEN31GB:=1;32客户放弃开台设计354.5.2 客户点菜完毕返回设计36C:=c+1;end;end;If c = Leng
30、th(Editl.Text) Thenbeginif DataModulel.THXX.Locate(,_,StrTOInt(Editl.Text),loCaselnsensitive) then begin(状态).AsString空闲thenbeginPageControll.ActivePagelndex:=l;显示第二页BitBtn6.SetFocus; 将焦点移到点菜服务按扭上EndElsebeginPageControll.ActivePagelndex:=0;显示第一页BitBtrB.SetFocus; 将焦点移到开台设置按扭上end;EndElsebeginShowMessag
31、e(对不起,没有找到。);end;EndElsebeginif DataModulel.THXX.Locate(Mn,Editl.Text,loPartialKey) thenbegin。状态).AsString空闲thenbeginPageControll.ActivePagelndex:=l;显示第二页BitBtn6.SetFocus; 将焦点移到点菜服务按扭上EndElsebeginPageControll.ActivePagelndex:=0;显示第一页BitBtn3.SetFocus; 将焦点移到开台设置按扭上end;EndElsebeginShowMessage。对不起,没有找到。
32、);end;end;end;end;442开台设置设计L开台管理开台设置界面如图4.4,2所示。置空闲房台:营业房台:I翌珠江翌灵江翌晋江翌闽江选择餐饮部门:当前房台信息栏: 编号:6房台名称:闽江类型说明:色桂江翌汉江戋兰江翌沅江翌解江得开台设置助点菜服务皿J翌丹江服务费:简要说明:状态:空闲容纳人数:12。搜索房间台号日空闲总数:11图开台管理开台设置界面2 .代码如下:procedure TYGCX.BitBtnlClick(Sender: TObject);beginGB:=2;If Length(Editl.Text) = 0 ThenbeginShowMessage(请输入员工编号
33、);Editl.Setfocus;EndElse(员 工编号/StrTolnt(Editl.Text),loCaselnsensitive) thenbeginIf not Assigned(DCFY_LR) ThenbeginDCFY_LR:=TDCFY_LR.Create(Self);DCFY_LR.Labell4.Caption:=YGCX.Editl.Text;DCFY_LR. Label 15.Caption:=Data Modulel .YGXXB.Field ByName。姓名).AsSTring;DCFY_LR.Labell6.Caption:=DateTimeToStr(No
34、w);If Data Mod ulel.JZBH. RecordCount = 0 ThenbeginData Modulel.JZBH. Append;Data Modulel. JZBH. Field ByName(编号).Asi nteger:=l;Data Mod ulel.JZBH. Post; EndElseDCFY_LR. Label 17.Caption :=lntToStr(DataModulel.JZBH.FieldbyName( ).Aslnteger+l);DCFY_LR.Show;end;GB:=1;YGCX.CIose;EndElse beginShowMessageC对不起没有找到此员工信息Editl.Setfocus;end;end;台号信息查询的设计1 .开台管理台号信息查询界面如图4.4,3所示。开台省理:空闲房台:|营业房台:虫珠江