中南大学《数据库课程设计》设计报告题目酒店管理系统学生姓名学号专业班级指导老师数学科学与计算技术学院2015年1月酒店管理系统一、实践目的首先应该在此次实践中有所收获,能够学习到相关软件的功能,和进行实践设计需要的知识的。能够在实践中学习。面对酒店行业的高速发展和酒店行业信息化发展的过程中出现的各种情况,酒店客房管理系统在实施后应达到以下目的:实现多点操作的信息共享,相互之间的信息传递准确、快捷、顺畅;服务管理信息化,可随时掌握客人住宿情况;系统界面友好美观,操作简单易行,查询灵活方便,数据存储安全。实现客房的登记入住和查询功能,查询酒店信息,客人信息,客房信息等功能。实现Delphi和oracle的连接,进行数据的插入。二、需求分析1.系统功能结构如下:2.数据库逻辑设计根据系统功能进行数据表的设计。①登记表dj用来保存客人住宿时的住宿登记信息,此表为起初空表,在Delphi中进行数据插入后保存输入的数据信息。其结构表如下:字段类型字段大小姓名Varchar10证件Varchar12证件号码Varchar18房间号码Varchar10酒店管理系统酒店管理酒店信息入住登记客人信息查询客房信息查询退房客房查询联系方式Varchar20住宿日期Date住宿天数Int性别Varchar4createtabledj(姓名varchar(10),性别varchar(4),住宿日期date,证件varchar(12),证件号码varchar(18),房间号码varchar(10),联系方式varchar(20),住宿天数int);②客房信息表fjxx用来保存客房的基础信息,其结构如下:字段类型大小房间号Varchar10房间类型Varchar20价格float8最大居住人数intcreatetablefjxx(房间号varchar(10),房间类型varchar(20),价格float(8),最大居住人数int);③酒店信息表jdxx用来保存酒店的信息,其结构如下:字段类型大小公司名Varchar50电话Varchar20建立日期Varchar20EmailVarchar20公司地址Varchar10邮箱Intcreatetablejdxx(公司名varchar(50),电话varchar(20),建立日期date,Emailvarchar(50),公司地址varchar(50),邮编int);④客人信息表用来保存入住客户的信息,用于退房,客人信息查询等操作功能的实现。其基本结构为:字段类型大小姓名Varchar10证件Varchar12证件号码Varchar18房间号码Varchar10联系方式Varchar20房间金额folat8住宿日期Date住宿天数Int性别Varchar4createtablekrxx(姓名varchar(10),性别varchar(4),住宿日期date,证件varchar(12),证件号码varchar(18),房间号码varchar(10),联系方式varchar(20),住宿天数int,房间金额float(8));三、设计过程1窗体设计⑴新建一个标准工程,会出现form1,可以遵循默认格式,也可以更改名称,这里默认。⑵添加所需控件mainmenu,双击控件在其中加入所要进行的功能如下:添加控件Image插入图片,选中image控件,在其属性表中选中picture,选择需要的图片:⑶再建立一个Form2,默认格式即可。在其中加入客房登记所需控件:⑷再建立一个Form3,默认格式即可,并且在project-options中设置其为主窗体。在其中加入客房登记所需控件,8个label,8个Edit,两个bitbtn如图:可以在bitbtn按钮中添加图片,使其更加生动,,选中按钮,在其属性选择Glyph,选择需要的图片即可,注意图片格式要符合要求,还可以为界面换颜色。⑸再建立一个Form4,默认格式即可。在其中加入客人信息查询所需控件,1个label,一个Edit,2个按钮,1个DBGrid:这里需要链接数据库,与krxx表中的信息进行链接。连接方式为:首先添加一个数据模板(datemodule),然后选择ADOQuery控件和datasource控件添加到数据模板,选中ADOQuery控件,在其属性中找到connectionstring,进行数据库的链接,选择⑹再建立一个Form5,默认格式即可。在其中加入客房登记所需控件,和上面一样:这个窗体也要进行数据库链接,过程和上面一样,只是链接的表名不同,这里链接的是kfxx表。双击确定添加代码如下:withData3.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('select*fromfjxxwhere房间号码=:a');Parameters.ParamByName('a').value:=Trim(edit1.Text);Open;end;关闭键的代码如下:form5.close;form1.show;这样就完成了房间信息查询的操作。(7)再建立一个Form6,默认格式即可。在其中加入查看酒店信息所需控件:1个label,1个按钮,1个DBGrid:这里主要就是数据库的链接,改用另外一种方式为:首先(8)再建立一个Form7,默认格式即可。在其中加入查看客房信息所需控件,和(7)一样,不过这里可以采用(5)的方法进行数据库的链接。(9)再建立一个再建立一个Form8,默认格式即可。在其中加入退房所需控件:1个label,1个Edit,两个bitbtn,1个DBGrid,和一个DBNavigator如图:将其与数据库中表krxx链接后,输入证件号码单击DBNavigator控件上的√可以突出显示选择的信息,然后点击退房可以实现退房功能。2、进行窗体之间的转换(1)在form3中进行密码设置,双击登录按钮进行代码输入如下:varresults:Variant;BEGINresults:=ADOTable1.Lookup('姓名',edit1.text,'密码');ifresults=edit2.Textthenbeginform3.Hide;form1.Show;endelsebeginapplication.MessageBox('姓名或密码错误','提示信息',64);edit1.SetFocus;exit;end;end;退出代码为:close;(2)在form1中进行剩余各form间的连接,在form1中分别单击要实现的功能菜单按钮,并分别输入代码,得到的最后代码如下:procedureTForm1.N2Click(Sender:TObject);beginform1.Hide;form2.showmodal;end;procedureTForm1.N3Click(Sender:TObject);beginform1.Hide;form4.showmodal;end;procedureTForm1.N4Click(Sender:TObject);beginform1.Hide;form5.ShowModal;end;procedureTForm1.N5Click(Sender:TObject);beginform1.Hide;form6.ShowModal;end;procedureTForm1.N6Click(Sender:TObject);beginform1.hide;form7.ShowModal;end;procedureTForm1.N8Click(Sender:TObject);beginform1.hide;form8.ShowModal;end;procedureTForm1.N7Click(Sender:TObject);beginclose;end;procedureTForm1.FormCreate(Sender:TObject);beginend;并且要在uint1的连接代码上添加:usesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Menus,DB,ADODB,unit2,unit4,unit5,unit6,unit7,unit8,;(3)在form2中进行和form1间的转换,代码如下:双击关闭按钮添加代码:form2.close;form1.show;(4)在form4,form5,form6,form7中进行form1间的转换,代码类似(3)。3、form1中退出菜单的实现双击退出菜单进行代码输入:close;即可。至此完成了菜单管理的实现,可以运行后进行各功能的实现。四、实践感想本次课程设计,使我进一步巩固了知识我更加深刻地了解了oracle和Delphi的功能,了解到这些软件的强大功能。不过在学习的过程中遇到了很多困难,比如Delphi和oracle数据库之间的连接。我还需要进一步了解和学习。②代码设计PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.KeyCaseDJzsdj_ClickCaseTFtf_ClickCaseFTftck_ClickCaseCXzscx_ClickCaseexitIfMsgBox(确定退出该系统?,4,系统提示)=vbYesThenEndEndIfEndSelectEndSubPrivateSubsztx_Click()DimStrCommonDialog1.Filter=BMP图片(*.BMP)|*.BMP|JPG图片(*.JPG)|*.JPG|GIF图片(*.GIF)|*.GIF|所有文件(*.*)|*.*CommonDialog1.ShowOpenIfCommonDialog1.FileNameThenImage2.Picture=LoadPicture(CommonDialog1.FileName)Str=CommonDialog1.FileNameOpen(App.Path&\picture.txt)ForOutputAs#1Print#1,StrClose#1CommonDialog1.FileName=ElseCommonDialog1.FileName=EndIfEndSubPrivateSubsjbf_Click()main_sjbf.Showmain.Enabled=FalseEndSubPrivateSubsjhf_Click()main_sjhf.ShowEndSubPrivateSubzsdj_Click()main_kfdj.Showmain.Enabled=FalseEndSubPrivateSubtf_Click()main_tf.Showmain.Enabled=FalseEndSubPrivateSubkfcx_Click()main_kfcx.Showmain.Enabled=FalseEndSubPrivateSubftck_Click()main_ftcx.Showmain.Enabled=FalseEndSubPrivateSubzscx_Click()Loadmain_zscxmain_zscx.Showmain.Enabled=FalseEndSubPrivateSubtfcx_Click()Loadmain_tfcxmain_tfcx.Showmain.Enabled=FalseEndSub2.系统登录模块设计①窗体设计⑴添加新窗体,命名为main_Login,Caption属性为“酒店客房管理系统”;⑵添加Adodc控件以及两个TextBox控件,Text1放在用户名后,Text2放在密码后;⑶添加两个Image控件,分别设置Picture属性,添加“确定”和“退出”按钮。②代码设计PrivateSubImage1_Click()IfText1.Text=7AndText