1、数据库课程设计摘要 本系统的主要功能是客房信息的管理及对各种信息的查询,增加,修改,更新。本系统的数据库是用SQL server 2000软件进行创建与设计,分别包括客房信息,客户信息,职工信息和系统信息四个表。通过系统ODBC数据源管理工具把已创建的数据源与系统数据库相连。利用VB软件对系统的窗口进行设计,包括欢迎界面、登陆界面、注册新用户界面、主菜单界面、浏览窗体和查询窗体等,可以通过这些窗体进行登陆操作,对输入的用户信息进行验证,和注册新用户操作,以及最重要的操作是对数据库中信息进行浏览与查询。并可以对数据进行添加与删除,做到及时更新。 关键词: 客房信息管理 SQL server 20
2、00 VB目 录第1章 系统功能概述 21.1 系统功能 21.2 系统结构总图 3第2章 数据库设计 32.1 需求分析 32.2 E-R模型 42.3 关系模型 62.4 表结构设计 6第3章 系统各功能模块的详细设计 83.1 封面 83.2登录窗体 93.3主菜单 103.4 注册新用户窗体 123.5客户信息查询窗体 143.6客房信息查询窗体 163.7客户信息录入窗体 163.8退房信息处理窗体 193.9职工信息查询窗体 21总结 24参考文献 25第1章 系统功能概述1.1 系统功能(1)客户住宿记录的管理(2)退房管理(3)客户综合查询(4)显示打印报表1.2 系统结构总图
3、图1.1客房信息管理系统的总体结构第2章 数据库设计2.1 需求分析建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。因而程序需要实现的功能有如下:1客房信息管理:客房登记,入住情况查询,客房状态查看,退房处理。2客户信息管理:客户信息登记,查询入住情况。3职工信息管理:增加员工,删除员工。4系统管理:注册用户信息。2.2 E-R模型客户信息实体属性图2.1客房信息实体
4、属性图2.2职工信息实体属性图2.3系统信息实体属性图2.4全局E-R图2.52.3 关系模型一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。根据E-R图向关系模型转换的原则,把E-R图转换为关系模型。关系的码用下横线标出。(1)客户信息(顾客编号、姓名、性别、年龄、国籍、身份证号、房号、住店天数、住店日期、离店日期)(2)客房信息(房号、客房级别、可住人数、用房状态)(3)职工信息(服务员编号,服务员姓名,性别,级别,工资,服务客房号,服务日期)(4)系统信息(用户名、密码)2.4 表结构设计本系统需在SQL Server中建立四个表,分别为客房信息,客户信息,
5、职工信息和系统信息。(1)客户信息表的建立与基本数据:SQL 语句如下:create table 客户信息(顾客信息 varchar(50)primary key,姓名 varchar(50),性别 varchar(50),年龄 varchar(50),国籍 varchar(50),身份证号 varchar(50),房号 varchar(50),住店日期 varchar(50),离店日期 varchar(50),foreign key (房号)references 客房信息(房号);客户信息表图2.6(2)客房信息表的建立与基本数据:SQL 语句如下:create table 客房信息(房号
6、varchar(50)primary key,客房级别 varchar(50),用房状态 varchar(50),国籍 varchar(50),可住人数 varchar(50),);客房信息表图2.7(3)职工信息表的建立与基本数据:SQL 语句如下:create table 职工信息(服务员编号 varchar(50),姓名 varchar(50),性别 varchar(50),级别 varchar(50),工资 varchar(50),服务客房号 varchar(50),服务日期 varchar(50),foreign key (服务客房号)references 客房信息(房号);职工信息
7、表图2.8(4)系统信息表的建立与基本数据:SQL语句如下:Create table 系统信息(用户名 varchar(50),密码 varchar(50);系统信息表图2.9第3章 系统各功能模块的详细设计3.1各窗体的设计本图书馆信息管理系统共包括11个窗体,分别为欢迎界面,登录,注册新用户,客户信息查询,客房信息查询,客户信息录入,职工基本信息,客户信息表格形式,客房信息表格形式,职工信息表格形式,MDI窗体。其中主窗体为MDI窗体。下面介绍各个窗体的设计语句及实现功能。3.2 封面封面,如图3.1,标题为“客房管理系统”,为此标题添加一个Timer,编辑代码使其可以定时变色。点击“点击
8、进入系统”就可以关闭本窗体并打开登录窗体。封面代码如下:Private Sub Command1_Click()Me.Hide登录.ShowUnload MeEnd SubPrivate Sub Form_Load()End SubPrivate Sub Timer1_Timer()Static n As Integer n = n + 1If n 15 Then n = 0End IfLabel1.ForeColor = QBColor(n)End Sub欢迎界面图3.13.3登录窗体将打开“登录”对话框,用户输入用户名和密码,如图3.2,若正确则打开下面的主窗体,如图3.3。登录代码如下:
9、Dim micount As Integer 用于记录输入密码次数Private Sub CmdLand_Click()Dim str As Stringstr = select 密码 from 系统信息 where 用户名 = & Text1.Text & Adodc1.RecordSource = strAdodc1.RefreshIf Adodc1.Recordset.EOF = True ThenMsgBox 用户名错误,请重新输入, vbExlamation, 警告Text1.Text = Text2.Text = Text1.SetFocusElseIf Adodc1.Record
10、set.Fields(密码) = Text2.Text ThenMDIForm1.ShowUnload MeElse MsgBox 密码错误,请重新输入, vbExlamation, 警告Text2.Text = Text2.SetFocusEnd IfEnd Ifmicount = micount + 1If micount = 3 Then Unload MeEnd SubPrivate Sub CmdCancel_Click()Unload MeEnd Sub 登录图3.2 3.4 主菜单设计为MDI窗体如图3.3,含有主菜单:文件、数据管理、数据查询。文件菜单包含以下子菜单及其功能:注
11、册新用户菜单:打开“注册新用户”窗体退出:回到程序最初状态即回到欢迎界面。数据管理 包含以下子菜单:客户信息登记菜单:显示客户信息录入窗体退房信息处理菜单:显示退房信息处理窗体数据查询包含以下子菜单: 查询客房信息菜单:显示客房信息查询窗体查询客户信息菜单:显示客户信息查询窗体查询职工信息菜单:显示职工基本信息窗体代码如下:Private Sub 查询职工信息_Click()职工基本信息.ShowEnd SubPrivate Sub 客户信息_Click()客户信息查询.ShowEnd SubPrivate Sub 客户登记_Click()客户信息录入.ShowEnd SubPrivate S
12、ub 浏览客房信息窗体_Click()客房信息查询.ShowEnd SubPrivate Sub 退出_Click()Unload Me欢迎界面.ShowEnd SubPrivate Sub 退房信息_Click()退房信息处理.ShowEnd SubPrivate Sub 注册_Click()注册新用户.ShowEnd Sub主菜单图3.33.5 注册新用户窗体注册新用户窗体用于添加新的用户名和密码。单击“注册新用户”菜单,打开对话框。若输入正确,则将入的用户名保存到“系统信息”表,并提示“注册用户成功”,关闭本窗体,如图3.4,图3.5。代码如下:Private Sub Command1_
13、Click()Dim sqlstr As StringIf Text1 = Then MsgBox 请输入用户名!, vbExclamation, 确认用户名 Text1.SetFocus Exit SubElse sqlstr = Select * from 系统信息 where 用户名= & Text1 & Adodc1.RecordSource = sqlstr Adodc1.Refresh If Adodc1.Recordset.EOF = False Then MsgBox 用户名已存在,请重新输入!, vbExclamation, 检验用户名 Text1 = Text1.SetFo
14、cus Exit Sub End IfEnd IfIf Text2 Text3 Then MsgBox 二次输入的密码不一致,请重新输入, vbExclamation, 检验密码 Text2 = : Text3 = Text2.SetFocus Exit SubElseIf Text2 = Then MsgBox 密码不能为空!, vbExclamation, 检验密码 Text2.SetFocusElse Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(用户名) = Trim(Text1) Adodc1.Recordset.Fields(密码)
15、 = Trim(Text2) Adodc1.Recordset.Update Me.Hide MsgBox 成功注册新用户!, vbInformation, 添加用户 MDIForm1.ShowUnload MeEnd IfEnd SubPrivate Sub Command2_Click() 单击取消按钮Unload MeMDIForm1.ShowEnd Sub注册界面图3.4注册成功图3.53.6客户信息查询窗体可以按各种条件查找,且具有模糊查询功能,这些条件放在组合列表框Combo中,供用户选择。在文本框中输入要查询的内容如图3.6所示,单击查询按钮,查询结果用网格控件显示如3.7所示。
16、代码如下:Private Sub Cmd1_Click()Dim str As Stringstr = select * from 客户信息str = str & Where 客户信息. & Combo1.Text & Like & Text2 & % Adodc1.RecordSource = strAdodc1.RefreshEnd SubPrivate Sub Command2_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem 顾客编号 为组合列表框添加各选项Combo1.AddItem 姓
17、名Combo1.AddItem 性别Combo1.AddItem 年龄Combo1.AddItem 国籍Combo1.AddItem 身份证号Combo1.AddItem 房号Text2.Text = 清空文本框End Sub客户查询界面图3.6客户查询结果图3.73.7客房信息查询窗体该窗体可以按各种条件查找,且具有模糊查询功能,这些条件放在组合列表框Combo中,供用户选择。在文本框中输入要查询的内容如图3.8所示,单击查询按钮,查询结果用网格控件显示如图3.9所示。代码如下:客房查询窗体图3.8客房查询结果图3.93.8客户信息录入窗体 客户信息录入窗体用于登记新的顾客及其基本信息。单击
18、“登记新用户”按钮,允许添加新的用户,如图3.10,当单击确定时,同时更改住房状态,即打开客房信息表格形式窗体,首先要对所要登记的客房号进行查询,将“客房状态”查询结果显示在text文本框内,其次,单击登记按钮,即进行“客房状态”的修改,并将登记结果保存到“客户信息”及“客房信息”表,关闭窗体,图3.11.同时记录服务员服务日期,即打开服务时间信息录入窗体,同“客房状态”修改类似,如图3.12。登记代码如下:Private Sub Form_Load()CmdAdd.Enabled = True 添加按钮有效CmdDel.Enabled = True 删除按钮有效CmdOk.Enabled =
19、 False 确定按钮无效CmdEsc.Enabled = False 取消按钮无效Text1.Locked = TrueText2.Locked = TrueText3.Locked = TrueText4.Locked = TrueText5.Locked = TrueText6.Locked = TrueText8.Locked = TrueText9.Locked = TrueText10.Locked = TrueText11.Locked = TrueEnd SubPrivate Sub CmdAdd_Click() 添加按钮的单击事件Text1.Locked = FalseTex
20、t2.Locked = FalseText3.Locked = FalseText4.Locked = FalseText5.Locked = FalseText6.Locked = FalseText8.Locked = FalseText9.Locked = FalseText10.Locked = FalseText11.Locked = FalseAdodc1.Recordset.AddNewCmdAdd.Enabled = FalseCmdDel.Enabled = FalseCmdOk.Enabled = TrueCmdEsc.Enabled = TrueEnd SubPrivat
21、e Sub CmdOk_Click() 单击确认按钮Adodc1.Recordset.UpdateCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = False客房信息表格形式.ShowEnd SubPrivate Sub CmdDel_Click() 单击删除按钮x = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveN
22、ext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub CmdEsc_Click() 取消按钮Adodc1.RefreshCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd Sub客户登记图3.10客房登记图3.11服务信息登记图3.123.9退房信息处理窗体 退房信息处理窗体用于客户退房,当单击编辑按钮时,允
23、许进行处理,首先查找将要退房的信息,当单击“查找房号”按钮时,将本房的“客房级别”“住房状态”显示如下图3.13所示,当单击“退房”按钮时,提示“确定要退房吗?”,如确定,单击“确定”按钮时,将对“住房状态”进行修改,并保存到“客房信息”表,如图3.14,3.15所示。退房查找图3.13退房处理成功图3.14退房处理窗体图3.153.10职工信息查询窗体 该窗体以文本框显示当前记录,用按钮首记录、末记录、前移、后移,控制记录指针的移动;用一个标签Label显示:当前记录号/记录总数;单击返回按钮,可以关闭本窗体,返回主窗体。可以对记录进行添加、确认、删除、取消操作,具有职工信息表格显示功能的同
24、时,也可在职工表格窗体中进行模糊查询。如图3.16,3.17代码如下:Private Sub Cmd1_Click()职工信息表格形式.ShowUnload MeEnd SubPrivate Sub 职工信息_Load()CmdFirst.Enabled = FalseCmdPre.Enabled = FalseCmdNext.Enble = TrueCmdLast.Enabled = TrueLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountPrivate Su
25、b CmdFirst_Click()Adodc1.Recordset.MoveFirst 记录指针移到首记录(显示首记录)CmdFirst.Enabled = False 让首记录按钮无效CmdPre.Enabled = False 让前移按钮无效CmdNext.Enabled = TrueCmdLast.Enabled = True 让末记录按钮有效Label6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdPre_Click(
26、)Adodc1.Recordset.MovePrevious 记录指针移到前一条记录CmdNext.Enabled = TrueCmdLast.Enabled = TrueIf Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst 则记录指针移到首记录上 CmdFirst.Enabled = False CmdPre.Enabled = FalseEnd IfLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEn
27、d SubPrivate Sub CmdNext_Click()Adodc1.Recordset.MoveNext 记录指针移到下一条记录CmdFirst.Enabled = TrueCmdPre.Enabled = TrueIf Adodc1.Recordset.EOF Then 如果记录指针移到了末记录之后 Adodc1.Recordset.MoveLast 则记录指针移到末记录上 CmdNext.Enabled = False CmdLast.Enabled = FalseEnd IfLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosi
28、tion & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdLast_Click() Adodc1.Recordset.MoveLast CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False CmdLast.Enabled = FalseLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate S
29、ub CmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled = FalseCmdDel.Enabled = FalseCmdOk.Enabled = TrueCmdEsc.Enabled = TrueEnd SubPrivate Sub CmdOk_Click() 单击确认按钮Adodc1.Recordset.UpdateCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdDel_Click() 单击删除按钮x = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast E
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1