客房管理系统VB+SQL.docx
《客房管理系统VB+SQL.docx》由会员分享,可在线阅读,更多相关《客房管理系统VB+SQL.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库课程设计报告题目:客房管理系统时间:2008-6-27客房管理系统一、 课程设计的目的和意义在当今经济和商务交往日益频繁的状况下,宾馆服务行业正面临客流量骤增的压力。越来越多的宾馆饭店都认识到传统的管理方法已经不能适合当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。“客房管理系统”可以说是整个宾馆计算机信息系统的中心子系统,因为宾馆最主要的功能就是为旅客提供客房。设计客房管理这样一个系统,可以涉及到大多数SQL Server数据库的重要数据库对象、重要功能和特性,比如:视图、触发器和存储过程等。由此,通过这个课程设计可以加深对这些SQL Server数据库知识的学习、理解
2、,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面,客房管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。本课程设计的主要目的是学习和练习SQL Server数据库的实际应用,所以选择SQL Server 2000作为数据库服务器。二、 需求分析系统主要实现对客房的管理功能。主要有管理员登陆、客户登记、房间管理、客户查询、房间查询、收入统计、管理员信息管理。系统总体设计图如下:三、 概念结构设计(E-R图)四、 逻辑结构设计将E-R图转换成关系模式:管理员(编号,账号,密码,权限)
3、房 间(编号,类型,价格,状态,入住客户编号)客 户(编号,姓名,性别,年龄,身份证号,住址,入住时间,预计天数,房间编号,退房时间,押金,住宿费,登记人) 关系规范化:均已达到第三范式五、 数据实施与维护1、 建立数据库 打开SQL Server 2000企业管理器,建立数据库HotelRoom。2、 添加数据表 在HotelRoom数据库中,添加表管理员信息表AdminInfo、房间信息表RoomInfo、客户信息表GuestInfo。3、 建立关系图4、 创建视图CREATE VIEW dbo.ViewAdminInfo AS SELECT Aid, Aname, Alimit FROM
4、 dbo.AdminInfo 管理员信息视图CREATE VIEW dbo.ViewAllCost AS SELECT SUM(Ccost) AS AllCost FROM dbo.GuestInfo 总收入视图CREATE VIEW dbo.ViewBiaozhunCost AS SELECT SUM(a.Ccost) AS BiaozhunCost FROM dbo.GuestInfo a INNER JOIN dbo.RoomInfo b ON a.Rnum = b.Rnum WHERE (b.Rtype = 标准) 标准房收入视图CREATE VIEW dbo.ViewCost AS
5、SELECT dbo.ViewAllCost.AllCost,dbo.ViewPutongCost.putongCost, dbo.ViewBiaozhunCost.BiaozhunCost, dbo.ViewHaohuaCost.HaohuaCost FROM dbo.ViewAllCost CROSS JOIN dbo.ViewPutongCost CROSS JOIN dbo.ViewBiaozhunCost CROSS JOIN dbo.ViewHaohuaCost 收入视图CREATE VIEW dbo.ViewEmptyRoomInfo AS SELECT Rnum, Rtype,
6、 Rprice, Rstates FROM dbo.RoomInfo WHERE (Rstates = 空) 空房信息视图CREATE VIEW dbo.ViewFullRoomInfo AS SELECT dbo.RoomInfo.* FROM dbo.RoomInfo WHERE (Rstates = 满) 满房信息视图CREATE VIEW dbo.ViewGuestInfo AS SELECT dbo.GuestInfo.* FROM dbo.GuestInfo 客户信息视图CREATE VIEW dbo.ViewHaohuaCost AS SELECT SUM(a.Ccost) AS
7、 HaohuaCost FROM dbo.GuestInfo a INNER JOIN dbo.RoomInfo b ON a.Rnum = b.Rnum WHERE (b.Rtype = 豪华) 豪华房收入视图CREATE VIEW dbo.ViewPutongCost AS SELECT SUM(a.Ccost) AS PutongCost FROM dbo.GuestInfo a INNER JOIN dbo.RoomInfo b ON a.Rnum = b.Rnum WHERE (b.Rtype = 普通) 普通房收入视图CREATE VIEW dbo.ViewRoomInfo AS
8、SELECT dbo.RoomInfo.* FROM dbo.RoomInfo 房间信息视图5、 创建触发器在表GuestInfo中,创建一个触发器:CREATE TRIGGER insert_tri ON dbo.GuestInfoFOR INSERT ASupdate RoomInfo set Rstates=满,Cid=(select Cid from inserted)where Rnum=(select Rnum from inserted)功能:当向表GuestInfo中插入一个客户信息时,触发表RoomInfo的某房间的状态变为“满”6、 备份数据库给所建立的数据库进行备份六、
9、界面设计与代码(用VB作为界面设计语言)1、 登陆界面Public Sub Command1_Click() 确定If Trim(DataCombo1.Text) And Trim(Text1.Text) Then Adodc1.RecordSource = select * from AdminInfo where Aname= + Trim(DataCombo1.Text) + and Amima= + Trim(Text1.Text) + Adodc1.Refresh If Adodc1.Recordset.RecordCount = 1 Then Adodc1.Recordset.Cl
10、ose frmMain.Show Me.Hide Else MsgBox 错误的账号或密码!, vbInformation + vbOKOnly, 错误信息 Text1.Text = DataCombo1.SetFocus End IfElseIf DataCombo1.Text = Then MsgBox 账号不能为空!, vbInformation + vbOKOnly, 错误信息 DataCombo1.SetFocusElse MsgBox 密码不能为空!, vbInformation + vbOKOnly, 错误信息 Text1.SetFocusEnd IfEnd SubPrivate
11、 Sub Command2_Click() 取消 EndEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) 在文本框按下输入的事件 If KeyAscii = 13 Then Command1_Click End IfEnd SubPrivate Sub dataCombo1_KeyPress(KeyAscii As Integer) 在文本框按下输入的事件 If KeyAscii = 13 Then Command1_Click End IfEnd Sub2、 客户登记界面Private Sub Command3_Click() 客户
12、登记 Private Sub Command4_Click() 退房结算frmGuestAdd.Show frmCheckOut.ShowEnd Sub End SubPrivate Sub Command1_Click() 当前时间txt6.Text = Trim(Now()End SubPrivate Sub Command2_Click() 确定If txt1.Text = Or txt2.Text = Or txt3.Text = Or txt4.Text = Or txt6.Text = Or txt8.Text = Or DataCombo1.Text = Then MsgBox
13、请将蓝色部分填写完整!, vbInformation + vbOKOnly, 提示信息 If txt1.Text = Then txt1.SetFocus ElseIf txt2.Text = Then txt2.SetFocus ElseIf txt3.Text = Then txt3.SetFocus ElseIf txt4.Text = Then txt4.SetFocus ElseIf txt6.Text = Then txt6.SetFocus ElseIf txt8.Text = Then txt8.SetFocus ElseIf DataCombo1.Text = Then Da
14、taCombo1.SetFocus End IfElse Adodc3.RecordSource = select Aid from ViewAdminInfo where Aname= & frmLogin.DataCombo1.Text & Adodc3.Refresh Dim aid As Integer aid = Adodc3.Recordset.Fields(0) Adodc4.RecordSource = select * from GuestInfo Adodc4.Refresh Adodc4.Recordset.AddNew Adodc4.Recordset.Fields(C
15、name) = txt1.Text Adodc4.Recordset.Fields(Csex) = txt2.Text Adodc4.Recordset.Fields(Cage) = txt3.Text Adodc4.Recordset.Fields(Cpnum) = txt4.Text If txt6.Text Then Adodc4.Recordset.Fields(Cadd) = txt5.Text End If Adodc4.Recordset.Fields(Cintime) = txt6.Text If txt7.Text Then Adodc4.Recordset.Fields(C
16、day) = txt7.Text End If Adodc4.Recordset.Fields(Cdeposit) = txt8.Text Adodc4.Recordset.Fields(Rnum) = DataCombo1.Text Adodc4.Recordset.Fields(Aid) = aid Adodc4.Recordset.Update frmMain.Adodc1.Refresh frmMain.DataGrid1.Refresh MsgBox 登记成功!, vbOKOnly + vbInformation, 提示信息 Unload Me End IfEnd SubPrivat
17、e Sub Command3_Click() 取消Unload MeEnd SubPrivate Sub DataCombo1_Change() 选择房间Adodc2.RecordSource = select * from ViewEmptyRoomInfo where Rnum= + Trim(DataCombo1.Text) + Adodc2.RefreshSet DataGrid1.DataSource = Adodc2DataGrid1.RefreshEnd Sub Private Sub Command1_Click() 查看信息If DataCombo1.Text Then If
18、 Command1.Caption = 查看信息 Then Adodc1.RecordSource = select * from ViewGuestInfo where Rnum= & DataCombo1.Text & and Couttime is null Adodc1.Refresh RichTextBox1.Text = vbCrLf + + 编号: + Trim(Adodc1.Recordset.Fields(0).Value) + + 姓名: + Trim(Adodc1.Recordset.Fields(1).Value) + + 性别: + Trim(Adodc1.Recor
19、dset.Fields(2).Value) + + 年龄: + Trim(Adodc1.Recordset.Fields(3).Value) + vbCrLf + vbCrLf + + 身份证号: + Trim(Adodc1.Recordset.Fields(4).Value) + vbCrLf + vbCrLf + + 入住时间: + Trim(Adodc1.Recordset.Fields(6).Value) + vbCrLf + vbCrLf + + 押金: + Trim(Adodc1.Recordset.Fields(10).Value) + 元 frame1.Caption = 显示
20、信息- + DataCombo1.Text DataCombo1.Enabled = False Command1.Caption = 取消 Command2.Enabled = True ElseIf Command1.Caption = 取消 Then frame1.Caption = 显示信息 RichTextBox1.Text = DataCombo1.Enabled = True DataCombo1.Text = Command1.Caption = 查看信息 Command2.Enabled = False End If Else MsgBox 房间编号不能为空!, vbOKOn
21、ly + vbInformation, 错误信息 DataCombo1.SetFocus End IfEnd SubPrivate Sub Command2_Click() 费用结算Me.HidefrmPrice.ShowEnd SubPrivate Sub Command3_Click() 退出Unload MeEnd SubDim time As DateDim e As IntegerPrivate Sub Command1_Click() 退房If MsgBox(确定退房结帐吗?, vbOKCancel + vbInformation, 提示信息) = vbOK Then Adodc3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 客房 管理 系统 VB SQL
限制150内