数据库课程设计—酒店管理系统_第1页
数据库课程设计—酒店管理系统_第2页
数据库课程设计—酒店管理系统_第3页
数据库课程设计—酒店管理系统_第4页
数据库课程设计—酒店管理系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 题目 :_酒店管理系统指导老师 :_汤德佑 姓名 :_苏汉霖_ 班级 :_2010级软件2班 学号 :201030631701_目录一、 需求分析·····································

2、3;······31、 背景分析·······································32、 需求描述··

3、·····································3二、 数据字典和数据流图···········

4、;·······················41、 数据项·························

5、3;···············42、 数据结构·································&#

6、183;·····53、 数据存储·······································64、 处理过程··

7、3;····································65、 数据流图············&#

8、183;··························7三、 系统整体结构设计·····················&#

9、183;··············9四、 概念结构设计(E-R图)································11五、

10、 逻辑结构设计·······································121、 与总E-R图对应的关系模式·······

11、;···············132、 优化后的数据模型······························143、 系统实现·&

12、#183;····································18一、 需求分析1、 背景说明随着社会经济的发展,人们对生活质量的要求越来越高,人们的生活水平和消费意识的提高,促进了旅游业的发展,作为服务之一的宾馆、酒店

13、、旅店等服务业业也在不断的完善服务体制。酒店行业是集餐饮、住宿、娱乐于一体的立体化服务体系。面对快速发展的信息产业带来的影响,酒店行业将面临着机遇和挑战。如何利用先进的管理手段,提高客房的管理水平,是每一酒店管理者所面临的重要课题。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处才能让顾客体会到酒店服务的高标准,高质量。而准确、快捷、周全往往就是最基本的成功要素。面对信息时代的挑战,利用技术手段提高企业管理无疑是一条行之有效的途径。因此采用电脑管理业务、财务等诸多环节已成为推动宾馆酒店业快速发展的先决条件。2、 需求描述目前大多数就顶啊提供的服务多种多样,规模大小也各不相同,但一般规模的

14、酒店都具备一下三类服务:饮食、住宿和娱乐。酒店管理是现代化商业管理中一个极其重要的工作,酒店管理系统应用在局域网上,系统地、全面地支持宾馆管理和服务的全过程。主要目标是实现对宾馆内部各种管理的电子化、自动化、提高各个部门之间的办公效率,为高质量的宾馆服务提供保证。 系统功能需求如下:1、 登陆功能:登陆向导2、 员工管理2-1、员工查询:根据员工的姓名、编号、性别、等级等查询获取员工的信息2-2、增加新员工:酒店新招聘员工,录入新员工的信息2-3、删除员工:实现删除员工信息3、 业务管理3-1、入住登记:顾客入住,登记顾客的相关信息3-2、删除入住登记:顾客退房离开酒店,删除相关记录3-3、查

15、询:查询满足顾客需求的空房间、查询房间的住户相关信息3-3、预约:顾客可以提前打电话预约房间3-4、删除预约:删除无效的预约3-5、查询账单:按日期查询当天的收支情况3-6、更新:更新入住顾客的入住信息,比如更换房间、延长入住时间等二、 数据字典和数字流图1、 数据项编号数据项名称类型说明1RnoInt房间号码,唯一性2RtypeVarchar房间类型,枚举类型:单人房、双人房、三人房、豪华包间、总统套房3RstateInt房间状态,枚举类型:1(已住),0(空房)4RpriceInt房间价格5CnameVarchar入住顾客姓名6SnoInt服务编号,唯一性7EnoInt 员工编号,单一性

16、8EnameInt员工姓名9EageInt 员工年龄10EsexVarchar枚举类型:男、女11EworktimeVarchar工作时间12EclassInt员工等级,枚举类型:1,2,3,4,513EdepartmentVarchar员工所属部门,枚举类型:财务部、前台接待部、餐饮服务部、卫生部、经理部14CnameVarchar入住顾客姓名15CsexVarchar入住顾客的性别16CID_cardInt入住顾客的身份证号码17Cbed_numberInt 入住顾客的床位数18In_dateDate入住日期19Out_dateDate 退房日期20StypeVarchar服务类型,枚举类

17、型21SpriceInt 服务价格22SdepartmentVarchar服务所属的部门23RnameVarchar预约顾客的姓名24RsexVarchar预约顾客的性别,枚举类型25RphonenumberInt预约顾客的电话号码26RID_cardInt预约顾客的身份证号码,唯一性27DnoInt部门编号,唯一性28Dnamevarchar部门名字29Dmanagervarchar部门主管30De_noInt部门人数31BDateDate 日期32BnoInt账单编码33GetinInt收入34GetoutInt 支出35ProfitInt 收益2、 数据结构编号数据结构名属性1Room“

18、Rno,Rtype,Rstate,Rprice2Customer_informationCname,Csex,CID_card,Cbed_number,Rno,In_date,Out_date3Curtomer_serviceCname, Rno, Sno4EmployeeEno, Ename, Eage, Esex, Eworktime,Eclass,Esepartment5PageEno, Etotalpage, Eactualpage, Ebonus6ServeSno, Stype, Sprice, Sdepatrment7Reserve_customerRname, Rsex, Rph

19、onenumber, RID_card,In_Date,Out_Date,Rno8DepartmentDno,Dname,Dmanager,De_no9BillBDate, Bno, Getin, Getout, Profit3、数据存储数据存储名输入数据流输出数据流说明员工信息员工基本信息员工基本信息部门信息部门基本信息部门基本信息顾客信息顾客基本信息顾客的房号、业务等住房信息住房类型房间状态和房号服务项目信息服务编号服务的相关信息财务信息日期当天的收入支出和利益4、 处理过程编号处理过程名输入数据输出数据1增加新员工终端员工基本信息2删除老员工终端员工基本信息3调配工作当前员工工作员工基本

20、信息当前部门信息员工新工作更新后的部门信息4入住登记终端顾客基本信息顾客基本业务需求5顾客退房终端删除退房顾客的相关信息6调配(更换)住房顾客需求目前住房信息更新后的住房信息,顾客的需求信心7支出情况终端支出情况8收入情况终端收入情况9获利终端当天的支出、收入和获利情况5、 数据流图(1)、入住登记业务 对新入住的顾客进行基本信息的录入、分配房间,登记顾客的姓名、性别、身份证号码、所需床位数、入住日期、离开日期对于退房的顾客从系统中级联删除其信息,包括在顾客信息表中删除退房顾客的相关信息,以及在顾客预订服务表中的相关信息财务汇总住房定金收入信息删除信息新增新顾客预订信息顾客退房信息顾客信息基本

21、信息顾客信息分配住房预订信息退房信息系统信息住房基本信息新住房信息部门新信息部门旧信息住房定金结算房价信息 (2)、服务业务: 包括娱乐业务和餐饮业务等; 顾客入住酒店后可以根据需要查询相关娱乐服务等服务业务,例如早晨叫醒和叫餐等等业务顾客信息查询娱乐业务娱乐信息财务信息登记娱乐类型娱乐资费顾客编号 用户信息查询订餐菜谱信息收款管理订餐系统菜名菜编号菜号 用户名需收金额所订餐号用户名所订菜号(3)、财务状况:宾馆财务总汇信息成本核算固定资产 各子系统收入各子系统支出 计算录入情况收入情况 统计入账情况 支出情况三、 系统整体入住登记退房登记查询新增预约客户查询账单删除无效预约财务业务查询删除员

22、工增加新员工业务管理员工管理登陆系统主界面四、 概念结构设计(E-R图)1、Page和Employee:2、Department和Serve:3、Customer和Room总的E-R图五、 逻辑结构设计1、 与总E-R图对应的关系模式:Room=( Rno, Rtype, Rstate, Rprice );Customer_information=(cname,csex,CID_card,Cbed_number,Rno,In_date,Out _date,sno)Employee = ( Eno, Ename, Eage, Esex, Eworktime,Eclass,Esepartment)

23、Page = ( Eno, Etotalpage, Eactualpage, Ebonus) Serve = (Sno, Stype, Sprice, Sdepatrment) Reserve_customer = ( Rname, Rsex, Rphonenumber, RID_card,In_Date,Out_Date,Rno ) Department = ( Dno,Dname,Dmanager,De_no) Bill = ( BDate, Bno, Getin, Getout, Profit )其他联系说明如下:Page和Employee的关系式一对一;Employee和Departm

24、ent的关系是多对一;Employee和Room的关系是多对多;Room和Customer的关系是多对多;Customer和Serve的关系是多对多的;Department和Serve的关系是多对多的;2、 优化后的数据模型:按照数据依赖对关系进行逐一分析,消除冗余:Room=( Rno, Rtype, Rstate, Rprice );Customer_information=(cname,csex,CID_card,Cbed_number,Rno,In_date,Out _date)Customer_service=( Cname, Rno, Sno )Employee = ( Eno,

25、Ename, Eage, Esex, Eworktime,Eclass,Esepartment)Page = ( Eno, Etotalpage, Eactualpage, Ebonus) Serve = (Sno, Stype, Sprice, Sdepatrment)Reserve_customer = ( Rname, Rsex, Rphonenumber, RID_card,In_Date,Out_Date,Rno )Department = ( Dno,Dname,Dmanager,De_no) Bill = ( BDate, Bno, Getin, Getout, Profit )

26、 3、 用户子模式设计(1)、经理子系统用户子模式 Page = ( Eno, Etotalpage, Eactualpage, Ebonus) 因为经理对于员工其他情况例如基本信息不会经常关注,经常使用的事以上几项,所以在经理子系统上设立员工子模式(2)、住宿系统用户子模式Customer_service=( Cname, Rno, Sno ) 入住顾客信息录入完毕后不会被经常访问,管理人员更加关注顾客的服务需求,所以设立此模式4、 系统实现系统测试方案和测试报告:建立数据库:-创建表if OBJECT_ID('Room') is not null Drop table Ro

27、omif OBJECT_ID('Customer_information') is not nullDrop table Customer_informationif OBJECT_ID('Curtomer_service')is not nullDrop table Curtomer_serviceif OBJECT_ID('Employee')is not nullDrop table Employeeif OBJECT_ID('Page')is not nullDrop table Pageif OBJECT_ID('

28、;Serve')is not nullDrop table Serveif OBJECT_ID('Reserve_customer')is not nullDrop table Reserve_customerif OBJECT_ID('Department')is not nullDrop table Departmentif OBJECT_ID('Bill')is not nullDrop table Billcreate table Room( Rno int primary key, Rtype varchar(20) check

29、(Rtype in('单人房','双人房','三人套间', '豪华包间','总统套房'), Rstate int not null, Rprice int not null, ) create table Customer_information( Cname varchar(50) not null, Csex varchar(10) check(Csex in('男','女'), CID_card varchar(20) not null, Cbed_number int not

30、 null, Rno int not null, In_date Date not null, Out_date Date not null, primary key(Cname,CID_card,Rno) ) create table Curtomer_service( Cname varchar(50) not null, Rno int not null, Sno int, primary key(Cname,Rno), ) create table Employee( Eno int primary key, Ename varchar(20) not null, Eage int,

31、Esex varchar(10) check(Esex in('男','女'), Eworktime varchar(10), Eclass int check(Eclass in(1,2,3,4,5), Edepartment varchar(20) not null ) create table Page( Eno int primary key, Etotalpage int not null, Eactualpage int not null, Ebonus int, foreign key (Eno) references Employee (Eno)

32、, check(Etotalpage = Eactualpage + Ebonus) ) create table Serve( Sno int primary key, Stype varchar(20), Sprice int not null, Sdepartment varchar(20), ) create table Reserve_customer( Rname varchar(50) not null, Rsex varchar(5) check(Rsex in('男','女'), Rphonenumber int not null, RID_c

33、ard varchar(20) not null, In_Date Date not null, Out_Date Date not null, Rno int not null, primary key(Rname,RID_card) ) create table Department( Dno int primary key, Dname varchar(20) not null, Dmanager varchar(20) not null, De_no int, ) create table Bill( BDate Date primary key, Bno int , Getin in

34、t, Getout int, Profit int, check(Profit = Getin - Getout) )初始化表中数据:-Insert Room Insert Room values(102,'单人房',0,200)Insert Room values(222,'单人房',1,200)Insert Room values(305,'双人房',1,250)Insert Room values(520,'双人房',1,250)Insert Room values(637,'三人套间',1,380)Inse

35、rt Room values(850,'豪华包间',0,450)Insert Room values(911,'总统套房',1,888)select *from Room-Insert Customer_informationInsert Customer_information values('张涵','男',12345,2,520,'2012-7-10','2012-7-11')Insert Customer_information values('黄洁','女'

36、,13245,1,222,'2012-7-10','2012-7-15')Insert Customer_information values('陈浩','男',15689,3,637,'2012-7-10','2012-7-13')Insert Customer_information values('姚靖','女',26831,5,911,'2012-7-10','2012-7-12')Insert Customer_informa

37、tion values('王倩','女',28691,2,305,'2012-7-9','2012-7-13')select *from Customer_information-Insert Customer_serviceInsert Curtomer_service values('张涵',305,1)Insert Curtomer_service values('黄洁',102,3)Insert Curtomer_service values('陈浩',637,2)selec

38、t *from Curtomer_service-Insert EmployeeInsert Employee values(1,'赵晴',25,'女','一个月',5,'前台接待部')Insert Employee values(2,'李磊',28,'男','两年',3,'餐饮服务部')Insert Employee values(3,'聂晓玲',32,'女','五年',2,'财务部')Insert E

39、mployee values(4,'马凯',45,'男','八年',1,'餐饮服务部')Insert Employee values(5,'廖梅',23,'女','三年',4,'卫生部')Insert Employee values(6,'吴冬梅',40,'女','八年',1,'前台接待部')Insert Employee values(7,'梁英',41,'女','

40、;七年',1,'财务部')Insert Employee values(8,'梁冬',48,'女','十年',1,'经理部')Insert Employee values(9,'宋芳',40,'女','五年',1,'卫生部')select * from Employee -Insert PageInsert Page values(1,2100,1800,300)Insert Page values(2,3500,3000,500)Insert

41、 Page values(3,4200,3600,600)Insert Page values(4,6000,5000,1000)Insert Page values(5,1800,1700,100)Insert Page values(6,6000,5000,1000)Insert Page values(7,6000,5000,1000)Insert Page values(8,6000,5000,1000)Insert Page values(9,6000,5000,1000)select *from Page -Insert ServeInsert Serve values(1,

42、9;叫醒服务',0,'前台服务部')Insert Serve values(2,'早餐',50,'餐饮服务部')Insert Serve values(3,'午餐',250,'餐饮服务部')Insert Serve values(4,'晚餐',200,'餐饮服务部')Insert Serve values(5,'宵夜',100,'餐饮服务部')Insert Serve values(6,'饮料',10,'餐饮服务部

43、9;)Insert Serve values(7,'打扫卫生',0,'卫生部')select *from Serve-Insert Reserve_customerInsert Reserve_customer values('罗珊','女',1367890,16908,'2012-7-20','2012-7-25',102)Insert Reserve_customer values('刘宝','男',1597564,29076,'2012-7-28'

44、;,'2012-7-30',222)Insert Reserve_customer values('林玲','女',1890976,28903,'2012-7-27','2012-7-28',637)select *from Reserve_customer-Insert DepartmentInsert Department values(1,'前台接待部','吴冬梅',10)Insert Department values(2,'餐饮服务部','马凯

45、9;,50)Insert Department values(3,'财务部','梁英',5)Insert Department values(4,'经理部','梁冬',5)Insert Department values(5,'卫生部','宋芳',10)select *from Department-Insert BillInsert Bill values('2012-7-7',20120707,100000,50000,50000)Insert Bill values('

46、2012-7-8',20120708,200000,60000,140000)Insert Bill values('2012-7-9',20120709,150000,50000,100000)select *from Bill建好的表如下所示:Room=( Rno, Rtype, Rstate, Rprice );Customer_information=(cname,csex,CID_card,Cbed_number,Rno,In_date,Out_date)Customer_service=( Cname, Rno, Sno )Employee = ( Eno,

47、 Ename, Eage, Esex, Eworktime,Eclass,Esepartment)Page = ( Eno, Etotalpage, Eactualpage, Ebonus)Serve = (Sno, Stype, Sprice, Sdepatrment)Reserve_customer = ( Rname, Rsex, Rphonenumber, RID_card,In_Date,Out_Date,Rno )Department = ( Dno,Dname,Dmanager,De_no)Bill = ( BDate, Bno, Getin, Getout, Profit )存

48、储过程:CREATE PROCEDURE GetEmployeeASSELECT Ename,Employee.Eno,EtotalpageFROM Employee,PageDrop PROC GetEmployee EXECUTE GetEmployeeCREATE PROCEDURE GetD_Employee Edepartment varchar(20)ASSELECT Ename,EnoFROM EmployeeWHERE Edepartment = Edepartmentdeclare Edpartment varchar(50)SET Edpartment='前台接待部

49、'EXECUTE GetDEmployee Edpartmentdrop PROC GetD_Employee CREATE PROCEDURE GetN_Employee EName varchar(20)ASSELECT Ename,EnoFROM Employee as AWHERE A.Ename = ENameDrop PROC GetN_Employeedeclare Ename varchar(20)SET EName='梁冬'EXECUTE GetN_Employee Ename-按员工编号查询CREATE PROCEDURE GetNo_Employe

50、e Eno intASSELECT Ename,EnoFROM Employee WHERE Eno = EnoDrop PROC GetNo_Employeedeclare Eno intSET Eno= 3EXECUTE GetNo_Employee Eno-按年龄查找CREATE PROCEDURE GetA_Employee Eage intASSELECT Ename,EnoFROM Employee WHERE Eage = EageDrop PROC GetA_Employeedeclare Eage intSET Eage= 25EXECUTE GetA_Employee Ea

51、ge-按等级查找CREATE PROCEDURE GetC_Employee Eclass intASSELECT Ename,EnoFROM Employee WHERE Eclass = EclassDrop PROC GetA_Employeedeclare Eclass intSET Eclass= 5EXECUTE GetC_Employee Eclass-按性别查找CREATE PROCEDURE GetS_Employee Esex varchar(10)ASSELECT Ename,EnoFROM Employee as AWHERE A.Esex = EsexDrop PRO

52、C GetS_Employeedeclare Esex varchar(10)SET Esex='男'EXECUTE GetS_Employee Esexdeclare Eno int set Eno=3EXECUTE GetNo_Employee Eno程序运行结果如下所示:登陆系统:功能选择: 查询所有员工的信息: 按部门查询: 按姓名查询: 按编号查询: 按年龄查询: 按性别查询: 按等级查询: 增加新员工: 删除员工: 业务管理: 返回上层菜单: 入住登记: 退房: 按房号查询入住顾客:按身份证号码查询: 查询符合顾客要求的房间: 查询顾客选择的业务: 增加预约顾客(房

53、间有人,预约失败) 删除预约顾客: 查询收支:选择退出系统: 系统关键代码:数据库类:DataBaseODBC.H#ifndef ODBC_H#define ODBC_H#include<iostream>#include<string>#include<cstringt.h>#include <windows.h>#include<Sql.h>#include<Sqlext.h>#include<Sqltypes.h> using namespace std;class DataBase public: SQ

54、LRETURN result; SQLHANDLE hEnv; SQLHANDLE hDbc; SQLHANDLE hStmt; void Initial(); /初?始º?化¡¥函¡¥数ºy void Initial_environment_handle(); /初?始º?化¡¥环¡¤境3句?柄À¨² void Set_environment_handle(); /设¦¨¨置?环¡¤境3句?柄À

55、¨² void Allocate_connect_handle(); /分¤?配?连¢?接¨®句?柄À¨² void Allocate_sentence_handle(); /分¤?配?语®?句?句?柄À¨² void Release(); /释º¨ª放¤?句?柄À¨²和¨ª断?开a连¢?接¨® int ExcuteSQL(char* s

56、ql); /执¡ä行DSQL语®?句? void Enter(); /进?入¨?酒?店̨º管¨¹理¤¨ª系¦Ì统ª3 void Exit(); /退ª?出?酒?店̨º管¨¹理¤¨ª系¦Ì统ª3/员¡À工¡è管¨¹理¤¨ª void Em

57、ployee(); /员¡À工¡è管¨¹理¤¨ª void SearchEmployee(); /查¨¦询¡¥员¡À工¡è信?息¡é void EmployeeAll(); /查¨¦询¡¥所¨´有®D员¡À工¡è的Ì?信?息¡é void EmployeeDepartm

58、ent(); /按ã¡ä员¡À工¡è部?门?查¨¦询¡¥ void EmployeeName(); /按ã¡ä员¡À工¡è姓?名?查¨¦询¡¥ void EmployeeNo(); /按ã¡ä员¡À工¡è编À¨¤号?查¨¦询¡¥ void

59、EmployeeAge(); /按ã¡ä员¡À工¡è年¨º龄¢?查¨¦询¡¥ void EmployeeSex(); /按ã¡ä员¡À工¡è性?别Àe查¨¦询¡¥ void EmployeeClass(); /按ã¡ä员¡À工¡è等̨¨级

60、?查¨¦询¡¥ void AddEmployee(); /增?加¨®新?员¡À工¡è void DeleteEmployee(); /删¦?除y员¡À工¡è /业°¦Ì务?管¨¹理¤¨ª void Business(); /业°¦Ì务?管¨¹理¤¨ª void Newcustomer();

61、 /新?顾?客¨ª入¨?住Á?登Ì?记? void Deletecustomer(); / 顾?客¨ª离¤?开a,ê?删¦?除y记?录? void Querycustomer(); /查¨¦询¡¥入¨?住Á?的Ì?顾?客¨ª void QueryRno(); /按ã¡ä房¤?号?查¨¦询¡¥入¨?住Á?的&#

62、204;?顾?客¨ª void QueryID(); /按ã¡ä身¦¨ª份¤Y证¡è号?查¨¦询¡¥入¨?住Á?顾?客¨ª void QueryRoom(); /查¨¦询¡¥符¤?合?顾?客¨ª要°a求¨®的Ì?房¤?间? void Queryserve(); /查¨¦

63、询¡¥顾?客¨ª所¨´选?业°¦Ì务? void Addreverse(); /新?增?预¡è定¡§房¤?顾?客¨ª void Deletereverse(); /删¦?除y预¡è定¡§房¤?顾?客¨ª void QueryBill(); /查¨¦询¡¥账?单Ì£¤ void Choice

64、();#endifODBC.cpp#include"ODBC.h"void DataBase:Initial()Initial_environment_handle();Set_environment_handle();Allocate_connect_handle(); / 连¢?接¨®数ºy据Y源¡ä char* DSN = "test1" ; /DSN char* user = "sa" ; /log name char* pass = "72777277" /passward result = SQLConnect(hDbc,(SQLCHAR*)DSN,SQL_NTS,(SQLCHAR*)user,SQL_NTS,(SQLCHAR*)pass,SQL_NTS);if ( (result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO) ) SQLFreeHandle(SQL_HANDLE_ENV, hEnv); printf( "连¢?接¨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论