客房管理系统VB+SQL.docx

上传人:b****7 文档编号:10550713 上传时间:2023-02-21 格式:DOCX 页数:48 大小:229.35KB
下载 相关 举报
客房管理系统VB+SQL.docx_第1页
第1页 / 共48页
客房管理系统VB+SQL.docx_第2页
第2页 / 共48页
客房管理系统VB+SQL.docx_第3页
第3页 / 共48页
客房管理系统VB+SQL.docx_第4页
第4页 / 共48页
客房管理系统VB+SQL.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

客房管理系统VB+SQL.docx

《客房管理系统VB+SQL.docx》由会员分享,可在线阅读,更多相关《客房管理系统VB+SQL.docx(48页珍藏版)》请在冰豆网上搜索。

客房管理系统VB+SQL.docx

客房管理系统VB+SQL

 

数据库课程设计报告

题目:

客房管理系统

 

时间:

2008-6-27

 

客房管理系统

一、课程设计的目的和意义

在当今经济和商务交往日益频繁的状况下,宾馆服务行业正面临客流量骤增的压力。

越来越多的宾馆饭店都认识到传统的管理方法已经不能适合当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理。

“客房管理系统”可以说是整个宾馆计算机信息系统的中心子系统,因为宾馆最主要的功能就是为旅客提供客房。

设计客房管理这样一个系统,可以涉及到大多数SQLServer数据库的重要数据库对象、重要功能和特性,比如:

视图、触发器和存储过程等。

由此,通过这个课程设计可以加深对这些SQLServer数据库知识的学习、理解,积累在实际工程应用中运用各种数据库对象的经验,使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。

在实用性方面,客房管理系统是很普遍的一种应用,选择该系统作为课程设计也可以为学生以后可能遇到的实际开发提供借鉴。

    本课程设计的主要目的是学习和练习SQLServer数据库的实际应用,所以选择SQLServer2000作为数据库服务器。

二、需求分析

系统主要实现对客房的管理功能。

主要有管理员登陆、客户登记、房间管理、客户查询、房间查询、收入统计、管理员信息管理。

系统总体设计图如下:

三、概念结构设计(E-R图)

四、逻辑结构设计

将E-R图转换成关系模式:

管理员(编号,账号,密码,权限)

房间(编号,类型,价格,状态,入住客户编号)

客户(编号,姓名,性别,年龄,身份证号,住址,入住时间,预计天数,房间编号,退房时间,押金,住宿费,登记人)

关系规范化:

均已达到第三范式

五、数据实施与维护

1、建立数据库打开SQLServer2000企业管理器,建立数据库HotelRoom。

2、添加数据表在HotelRoom数据库中,添加表管理员信息表AdminInfo、房间信息表RoomInfo、客户信息表GuestInfo。

3、建立关系图

4、创建视图

CREATEVIEWdbo.ViewAdminInfoASSELECTAid,Aname,AlimitFROMdbo.AdminInfo管理员信息视图

CREATEVIEWdbo.ViewAllCostASSELECTSUM(Ccost)ASAllCostFROMdbo.GuestInfo总收入视图

CREATEVIEWdbo.ViewBiaozhunCostASSELECTSUM(a.Ccost)ASBiaozhunCostFROMdbo.GuestInfoaINNERJOINdbo.RoomInfobONa.Rnum=b.RnumWHERE(b.Rtype='标准')标准房收入视图

CREATEVIEWdbo.ViewCostASSELECTdbo.ViewAllCost.AllCost,dbo.ViewPutongCost.putongCost,dbo.ViewBiaozhunCost.BiaozhunCost,dbo.ViewHaohuaCost.HaohuaCostFROMdbo.ViewAllCostCROSSJOINdbo.ViewPutongCostCROSSJOINdbo.ViewBiaozhunCostCROSSJOINdbo.ViewHaohuaCost收入视图

CREATEVIEWdbo.ViewEmptyRoomInfoASSELECTRnum,Rtype,Rprice,RstatesFROMdbo.RoomInfoWHERE(Rstates='空')空房信息视图

CREATEVIEWdbo.ViewFullRoomInfoASSELECTdbo.RoomInfo.*FROMdbo.RoomInfoWHERE(Rstates='满')满房信息视图

CREATEVIEWdbo.ViewGuestInfoASSELECTdbo.GuestInfo.*FROMdbo.GuestInfo客户信息视图

CREATEVIEWdbo.ViewHaohuaCostASSELECTSUM(a.Ccost)ASHaohuaCostFROMdbo.GuestInfoaINNERJOINdbo.RoomInfobONa.Rnum=b.RnumWHERE(b.Rtype='豪华')豪华房收入视图

CREATEVIEWdbo.ViewPutongCostASSELECTSUM(a.Ccost)ASPutongCostFROMdbo.GuestInfoaINNERJOINdbo.RoomInfobONa.Rnum=b.RnumWHERE(b.Rtype='普通')普通房收入视图

CREATEVIEWdbo.ViewRoomInfoASSELECTdbo.RoomInfo.*FROMdbo.RoomInfo房间信息视图

5、创建触发器

在表GuestInfo中,创建一个触发器:

CREATETRIGGERinsert_triONdbo.GuestInfo

FORINSERT

AS

updateRoomInfo

setRstates='满',Cid=(selectCidfrominserted)

whereRnum=(selectRnumfrominserted)

功能:

当向表GuestInfo中插入一个客户信息时,触发表RoomInfo的某房间的状态变为“满”

6、备份数据库

给所建立的数据库进行备份

六、界面设计与代码(用VB作为界面设计语言)

1、登陆界面

PublicSubCommand1_Click()‘确定

IfTrim(DataCombo1.Text)<>""AndTrim(Text1.Text)<>""Then

Adodc1.RecordSource="select*fromAdminInfowhereAname='"+Trim(DataCombo1.Text)+"'andAmima='"+Trim(Text1.Text)+"'"

Adodc1.Refresh

IfAdodc1.Recordset.RecordCount=1Then

Adodc1.Recordset.Close

frmMain.Show

Me.Hide

Else

MsgBox"错误的账号或密码!

",vbInformation+vbOKOnly,"错误信息"

Text1.Text=""

DataCombo1.SetFocus

EndIf

ElseIfDataCombo1.Text=""Then

MsgBox"账号不能为空!

",vbInformation+vbOKOnly,"错误信息"

DataCombo1.SetFocus

Else

MsgBox"密码不能为空!

",vbInformation+vbOKOnly,"错误信息"

Text1.SetFocus

EndIf

EndSub

PrivateSubCommand2_Click()‘取消

End

EndSub

PrivateSubText1_KeyPress(KeyAsciiAsInteger)‘在文本框按下输入的事件

IfKeyAscii=13Then

Command1_Click

EndIf

EndSub

PrivateSubdataCombo1_KeyPress(KeyAsciiAsInteger)‘在文本框按下输入的事件

IfKeyAscii=13Then

Command1_Click

EndIf

EndSub

2、客户登记界面

PrivateSubCommand3_Click()‘客户登记PrivateSubCommand4_Click()‘退房结算

frmGuestAdd.ShowfrmCheckOut.Show

EndSubEndSub

PrivateSubCommand1_Click()‘当前时间

txt6.Text=Trim(Now())

EndSub

PrivateSubCommand2_Click()‘确定

Iftxt1.Text=""Ortxt2.Text=""Ortxt3.Text=""Ortxt4.Text=""Ortxt6.Text=""Ortxt8.Text=""OrDataCombo1.Text=""Then

MsgBox"请将蓝色部分填写完整!

",vbInformation+vbOKOnly,"提示信息"

Iftxt1.Text=""Then

txt1.SetFocus

ElseIftxt2.Text=""Then

txt2.SetFocus

ElseIftxt3.Text=""Then

txt3.SetFocus

ElseIftxt4.Text=""Then

txt4.SetFocus

ElseIftxt6.Text=""Then

txt6.SetFocus

ElseIftxt8.Text=""Then

txt8.SetFocus

ElseIfDataCombo1.Text=""Then

DataCombo1.SetFocus

EndIf

Else

Adodc3.RecordSource="selectAidfromViewAdminInfowhereAname='"&frmLogin.DataCombo1.Text&"'"

Adodc3.Refresh

DimaidAsInteger

aid=Adodc3.Recordset.Fields(0)

Adodc4.RecordSource="select*fromGuestInfo"

Adodc4.Refresh

Adodc4.Recordset.AddNew

Adodc4.Recordset.Fields("Cname")=txt1.Text

Adodc4.Recordset.Fields("Csex")=txt2.Text

Adodc4.Recordset.Fields("Cage")=txt3.Text

Adodc4.Recordset.Fields("Cpnum")=txt4.Text

Iftxt6.Text<>""Then

Adodc4.Recordset.Fields("Cadd")=txt5.Text

EndIf

Adodc4.Recordset.Fields("Cintime")=txt6.Text

Iftxt7.Text<>""Then

Adodc4.Recordset.Fields("Cday")=txt7.Text

EndIf

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,"提示信息"

UnloadMe

EndIf

EndSub

PrivateSubCommand3_Click()‘取消

UnloadMe

EndSub

PrivateSubDataCombo1_Change()‘选择房间

Adodc2.RecordSource="select*fromViewEmptyRoomInfowhereRnum='"+Trim(DataCombo1.Text)+"'"

Adodc2.Refresh

SetDataGrid1.DataSource=Adodc2

DataGrid1.Refresh

EndSub

PrivateSubCommand1_Click()‘查看信息

IfDataCombo1.Text<>""Then

IfCommand1.Caption="查看信息"Then

Adodc1.RecordSource="select*fromViewGuestInfowhereRnum='"&DataCombo1.Text&"'andCouttimeisnull"

Adodc1.Refresh

RichTextBox1.Text=vbCrLf+""+"编号:

"+Trim(Adodc1.Recordset.Fields(0).Value)+""+"姓名:

"+Trim(Adodc1.Recordset.Fields

(1).Value)+""+"性别:

"+Trim(Adodc1.Recordset.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="显示信息-"+DataCombo1.Text

DataCombo1.Enabled=False

Command1.Caption="取消"

Command2.Enabled=True

ElseIfCommand1.Caption="取消"Then

frame1.Caption="显示信息"

RichTextBox1.Text=""

DataCombo1.Enabled=True

DataCombo1.Text=""

Command1.Caption="查看信息"

Command2.Enabled=False

EndIf

Else

MsgBox"房间编号不能为空!

",vbOKOnly+vbInformation,"错误信息"

DataCombo1.SetFocus

EndIf

EndSub

PrivateSubCommand2_Click()‘费用结算

Me.Hide

frmPrice.Show

EndSub

PrivateSubCommand3_Click()‘退出

UnloadMe

EndSub

DimtimeAsDate

DimeAsInteger

PrivateSubCommand1_Click()‘退房

IfMsgBox("确定退房结帐吗?

",vbOKCancel+vbInformation,"提示信息")=vbOKThen

Adodc3.RecordSource="selectCouttime,Ccost,RnumfromGuestInfowhereRnum='"&frmCheckOut.DataCombo1.Text&"'andCouttimeisnull"'"updataGuestInfosetCouttime="&time&",Ccost="&e&""

Adodc3.Refresh

DimrnumAsString

rnum=Adodc3.Recordset.Fields

(2)

Adodc3.Recordset.Fields(0)=time

Adodc3.Recordset.Fields

(1)=e

Adodc3.Recordset.Update

Adodc4.RecordSource="select*fromRoomInfowhereRnum='"&rnum&"'"

Adodc4.Refresh

Adodc4.Recordset.Fields(3)="空"

Adodc4.Recordset.Fields(4)=Null

Adodc4.Recordset.Update

frmMain.Adodc1.Refresh

frmMain.Adodc6.Refresh

frmMain.DataGrid1.Refresh

MsgBox"退房成功!

",vbOKOnly+vbInformation,"提示信息"

UnloadfrmCheckOut

UnloadMe

Else

UnloadfrmCheckOut

UnloadMe

EndIf

EndSub

PrivateSubCommand2_Click()

UnloadfrmCheckOut

UnloadMe

EndSub

PrivateSubForm_Load()‘费用结算窗体加载事件

Adodc2.RecordSource="selectRpricefromViewRoomInfowhereRnum="&frmCheckOut.DataCombo1.Text&""'查询房间的价格

Adodc2.Refresh

DimpriceAsInteger'房间价格

price=CInt(Adodc2.Recordset.Fields(0))'获取房间价格

Label2.Caption="房间:

"+frmCheckOut.DataCombo1.Text+""+"单价:

"+CStr(price)+"元/天"

Adodc1.RecordSource="select*fromViewGuestInfowhereRnum='"&frmCheckOut.DataCombo1.Text&"'andCouttimeisnull"'查询客户信息

Adodc1.Refresh

frame1.Caption="编号:

"+Trim(Adodc1.Recordset.Fields(0).Value)+"姓名:

"+Trim(Adodc1.Recordset.Fields

(1).Value)+"性别:

"+Trim(Adodc1.Recordset.Fields

(2).Value)+"年龄:

"+Trim(Adodc1.Recordset.Fields(3).Value)

DimaAsDouble

DimbAsInteger

DimcAsDouble

DimdAsInteger

time=Now()

a=CDbl(time-Adodc1.Recordset.Fields(6))'精确时间

b=CInt(time-Adodc1.Recordset.Fields(6))'对时间取整

c=a-b'计算出小于一天的时间

Ifc>0Then

d=b+1'不足一天算一天

Else

d=b

EndIf

e=d*price'计算住宿费

RichTextBox1.Text=vbCrLf+""+"入住时间:

"+Trim(Adodc1.Recordset.Fields(6).Value)+vbCrLf+vbCrLf+""+"当前时间:

"+Trim(time)+vbCrLf+vbCrLf+""+"共住"+CStr(a)+"天"+""+"计"+CStr(d)+"天"+vbCrLf+vbCrLf+""+"住宿费:

"+CStr(e)+"元"+"押金:

"+Trim(Adodc1.Recordset.Fields(10).Value)+"元"+"应收:

"+Trim(e-CInt(Adodc1.Recordset.Fields(10)))+"元"

EndSub

3、房间管理界面

PrivateSubCommand7_Click()‘增加房间

Command7.Enabled=False

Command8.Enabled=False

Command9.Enabled=False

Command10.Enabled=True

Command11.Enabled=True

frame1.Enabled=True

frame1.Caption="增加房间"

Text1.BackColor=&H80000005

Text2.BackColor=&H80000005

Text3.BackColor=&H80000005

Text4.BackColor=&H80000005

Text2.Visible=False

Combo3.Visible=True

Text4.Enabled=False

Text4.Text="空"

Text1.Enabled=True

Text2.Enabled=True

Text3.Enabled=True

Text1.SetFocus

EndSub

PrivateSubCommand8_Click()‘修改房间

Command7.Enabled=False

Command8.Enabled=False

Command9.Enabled=False

Command10.Enabled=True

Command11.Enabled=True

frame1.Enabled=True

frame1.Caption="修改房间"

Text1.Visible=False

DataCombo2.Visible=True

Text2.BackColor=&H80000005

Text3.BackCol

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

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1