西安石油大学数据库课程设计报告题目:宾馆管理系统班级:计0802姓名:封龙学号:200807010226指导教师:赵安科2011年1月宾馆管理系统应用开发摘要:在当今经济和商务交往日益频繁的状况下,宾馆服务业市场竞争日趋激烈,越来越多的宾馆饭店都认识到传统的管理方法已经不能适合当今社会的需要,必须借助先进的计算机信息技术对宾馆服务进行管理,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。关键字:ACCESS数据库宾馆管理VB1.宾馆管理系统的需求分析1.1业务分析根据我国宾馆业的统计分析表明:在现代的宾馆服务行业中,宾馆服务行业正面临客流量骤增,传统的管理方法使得办公人员每天要处理的事务繁多,重复性的工作使其效率较低;各类客户信息收集不齐全;分类、归档不合理,以至于造成查找困难;保存方式不科学,使得资料、文件受损,影响使用效果和时间。针对这种情况,各宾馆管理人员已意识到使用计算机管理信息系统的重要性,因此他们迫切需要开发一个宾馆客房管理信息系统来进行管理工作。1.2功能分析宾馆管理系统主要实现结算信息管理,订房信息管理,客房信息管理等功能1.2.1结算信息管理结算信息管理:包括结算信息查询,结算信息修改,结算信息添加1.2.2订房信息管理订房信息管理:包括订房信息查询,订房信息修改,订房信息添加,剩余客房查询1.2.3客房信息管理客房信息管理设置房间信息:包括客房信息查询,客房信息修改,客房信息添加设置客房标准:包括客房标准添加,客房标准修改1.2.4系统管理系统管理:包括密码管理和用户管理1.3宾馆管理系统的数据流图宾馆管理系统结算信息查询结算信息修改结算信息添加订房信息查询订房信息修改订房信息添加剩余客房查询设置客房信息设置客房标准密码管理用户管理客房信息查询客房信息修改客房信息添加客房标准修改客房标准添加订房信息管理结算信息管理客房信息管理系统管理系统功能设计图用户2入住3查询4结帐用户1主界面数据库数据密码用户号入住请求查询请求结帐要求金额查询信息入住宾馆管理信息系统关联图1.4宾馆管理系统数据词典系统数据词典(DD-DateDictionary)是描述数据流程图中所有数据流、数据存储、处理功能等卡片的集合。数据词典提供一个可定义的不依赖于应用程序的存储区域,用于创建扩展的属性集和描述数据的内容与外观。其内容包括四种条目:数据流,数据元素、数据存储和数据加工。建立完善的数据词典是对所整理数据的一种分析归档方式,为下一步建立数据库和处理数据做准备。在系统分析阶段,数据词典有着重要的作用,它包含着系统的详细信息。一般来说,系统分析人员应把不便于在数据流程图上注明而系统分析应该获得,对整个系统开发以至将来系统运行与维护时必需的信息尽可能放入数据词典。数据词典:“数据元素”条目数据元素是数据流组成的最小单位,是无法再细分的数据流。它直接反应事物的某一特征。其描述需要以下信息:数据元素名、类型、长度、取值范围、相关的数据元素及数据结构。数据元素系统名:宾馆客房管理编号:条目名:标准编号别名:属于数据流:客房信息存储处:客房档案数据元素结构:代码类型取值范围字符000000----999999(由数字组成的字符串)简要说明:客房都有唯一的编号。修改记录:编写Xxx日期2011年1月审核xxx日期2011年1月数据词典:“数据存储”条目数据存储是数据结构保存的地方。一个数据存储词条应有以下几项内容:数据存储名、简述、输入数据、输出数据、数据存储组织、记录数、记录组成。数据存储系统名:宾馆客房管理编号:D3条目名:定房表别名:存储组织每个预订客房一条记录记录数:约20主关键字:服务编号记录组成:项名:订房编号顾客姓名客房编号入住日期结算日期长度66828简要说明:修改记录:编写xxx日期2011年1月审核xxx日期2011年1月2.宾馆管理系统概念结构设计E-R图3.宾馆管理系统的逻辑结构设计1结算信息,包括的数据项有:订房编号,客房编号,客房种类,客房位置,客房备注信息,顾客姓名,顾客身份证号码,入住时间,折扣,结算时间,备注等。2订房信息,包括的数据项有:订房编号,客房编号,客房种类,客房位置,客房备注信息,顾客姓名,顾客身份证号码,入住时间,折扣,备注等。3客房信息,表格的数据项有:客房编号,客房种类,客房位置,客房单价,备注等。4客房标准信息,包括的数据项有:标准编号,标准名称,房间面积,床位数量,住房单价,是否有空调,电视,电话,单独卫生间等。说明:带下划线的为主键4宾馆管理系统的物理结构设计4.1客房标准信息表roomtype列名数据类型可否为空说明typeidvarcharNOTNULL标准编号typenamevarcharNOTNULL标准名称areanumericNULL房间面积bednumnumericNULL床位数量hairconditionvarcharNULL是否有空调htelephonevarcharNULL是否有电话htelevisionvarcharNULL是否有电视htoiletvarcharNULL是否有独立卫生间pricenumericNULL单价4.2客房信息表rooms列名数据类型可否为空说明roomnovarcharNOTNULL客房编号roomtypevarcharNOTNULL客房种类roompositionvarcharNULL客房位置roompricenumericNULL单价putupvarcharNOTNULL是否被预定roommemotextNULL备注4.3订房信息表booking列名数据类型可否为空说明booknovarcharNOTNULL订房编号customnamevarcharNOTNULL顾客姓名customidvarcharNOTNULL身份证号码roomnovarcharNOTNULL客房编号indatevarcharNULL入住日期discountnumericNULL折扣inmemotextNULL备注checkdatedatetimeNULL结算日期ammountnumericNULL金额5.宾馆管理系统详细设计及实现经过系统分析,有关数据库结构的所有后台工作已经完成。现在将通过宾馆管理信息系统中各个功能模块的实现,讲解如何使用VisualBasic来编写数据库系统的客户端程序。5.1宾馆系统Hotel-MIS工程项目的创建启动VisualBasic后,单击FileNewProject菜单,在工程模板中选择StandsardEXE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击FileSaveProject菜单,将这个工程项目命名为Hotel—MIS。5.2宾馆管理信息系统主窗体设计这个项目我们使用多文档界面,单击VB软件工具栏中ADDMDIForm按钮,生成一个窗体,在这个窗体上添加所有的控件,创建好的窗体如下:5.3公用模块设计在VisualBasic中可以用公用模块来存放整个工程项目公用的函数,过程和全局变量等。这样可以极大的提高代码的效率。在项目资源管理器中为项目添加一个Module,保存为Modulebas。下面就可以开始添加需要的代码了。由于系统中各个功能模块都将频繁使用数据库中的各个数据,因此需要一个公用的数据操作函数,用以执行各种SQL语句。ExecuteSQL函数有两个参数:SQL和MsgString。其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。函数执行时,首先判断SQL语句中包含的内容,当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录集对象(Recordset),所有满足条件的记录包含在对象中,当执行如删除、更新、添加等操作时,不返回记录集对象。在ExecuteSQL函数中使用了ConnectString函数,这个函数用来连接数据库5.4用户管理模块设计与实现用户管理模块主要实现:1用户登录。2添加用户。3修改用户密码。5.4.1用户登陆设计与实现用户登录窗体中放置了二个文本框(TextBox),用来输入用户名和用户密码:二个按钮(CommandButton)用来确定或者取消登录:三个标签(Label)用来标示窗体的信息系统启动后,将首先出现如下图,用户首先输入用户名,然后输入密码。如果用户3次输入密码不正确,将退出程序。用户如果没有输入用户名和用户密码,将出现消息框提示,如果输入的用户名在用户表中没有找到,将提示重新输入用户名,文本框txtusername将重新获得输入焦点。如果用户输入的密码不正确,文本框txtpassword将重新获得输入焦点。用户登录成功,全局变量ok将被赋值为true。一旦三次输入密码均不正确,全局变量ok将被赋值为false。公用模块中的main()过程将根据ok的值来决定是退出,还是进入系统。5.4.2添加用户设计与实现进入系统后,选择菜单“系统|添加用户”,就可以添加用户,出现添加用户的窗体在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮用来确定是否修改密码,二个标签用来标示文本框的内容,一旦输入完毕,系统将首先查询数据库中与新建用户名相同的记录,如果有相同记录将提示用户重新输入用户名。当确定数据库中没有相同的用户名,并且二次输入密码一致时,将把该条记录添加到数据库中。5.4.3修改密码设计与实现在这个窗体中放置了二个文本框,用来输入密码和确认密码,二个按钮按钮用来确定是否修改密码,二个标签用来标示文本框的内容,如下图,5.5客房标准管理模块设计与实现宾馆在运行中需要设置不同的客房标准来适应不同消费水平顾客的需要。对于每个客房标准,有不同的硬件设施和服务。客房标准管理模块主要实现如下功能:1添加客房标准。2修改客房标准。3删除客房标准。5.5.1添加客房标准模块设计与实现在窗体放置多个文本框,用来输入客房标准基本信息,多个下拉式文本框选择不同的硬件设施;两个按钮用来确定是否添加客房标准信息;多个标签用来提示文本框中需要输入的内容,如下图:载入窗体时,将首先通过变量gintTmode判断是添加还是修改。如果是添加状态,文本框将清除内容,窗体有提示信息;如果是修改状态,将选择显示当前的记录。用户输入内容完毕后,单击cmdSave按钮将触发Click事件,事件包括:程序首先对是否输入内容进行判断,然后进行格式判断。程序将判断是否有重复编号的记录,然后添加数据到数据库中。最后根据状态来显示相应的信息:如果是添加状态,将提示添加成功,然后重新显示并清空所有文本框,以便继续添加记录;如果处于虚空状态,将提示修改成功,然后更新所有记录的列表。5.5.2修改客房标准模块设计与实现选择“客房信息管理设置客房标准修改客房标准”菜单,将出现如图所示的窗体,窗体中放置一个表格控件。载入窗体时,触发窗体的Load事件,显示当前数据库中所有的记录,并修改当前状态为记录编辑状态,代码如下:PrivateSubForm_Load()ShowTitleShowDataflagTedit=TrueEndSub5.5.3删除客房标准模块设计与实现选择“客房信息管理设置客房标准删除客房标准”菜单,将出现记录列表。选择相应记录,单击鼠标右键,选择弹出式菜单,将删除当前记录.5.6客房信息管理模块设计与实现客房信息管理模块主要实现如下功能:1添加客房信息。2修改客房信息。3删除客房信息。4查询客房信息。添加,修改和删除的实现和客房标准一样原理我就不讲了,下面我们看下客房查询模块:选择“客房信息管理设置客房信息查询客房信息”菜单,将出现如下窗体,在这里可以按照各种方式以及它们的组合进行查询,满足查询条件的所有记录将显示在客房信息列表窗体。6.课程设计总结与体会这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助。这是我能顺利完成这次报告的主要原因,老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,