客房管理系统课程设计报告.docx

上传人:牧羊曲112 文档编号:2032705 上传时间:2023-01-02 格式:DOCX 页数:85 大小:1.15MB
返回 下载 相关 举报
客房管理系统课程设计报告.docx_第1页
第1页 / 共85页
客房管理系统课程设计报告.docx_第2页
第2页 / 共85页
客房管理系统课程设计报告.docx_第3页
第3页 / 共85页
客房管理系统课程设计报告.docx_第4页
第4页 / 共85页
客房管理系统课程设计报告.docx_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《客房管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《客房管理系统课程设计报告.docx(85页珍藏版)》请在三一办公上搜索。

1、-课程设计院 别: 信息科学与电气工程学院_ 班 级: 计算141_ 姓 名: _吴刚_ 学 号: 140811209_ 指导教师: 张岳_ 设计地点: 实验楼307_时 间: 2016 年 9 月 4 日_ 至 2016 年 9 月 16 日课 程 设 计 任 务 书题 目 数据库课程设计 客房管理系统 系 (部) 信息科学与电气工程学院 专 业 计算机科学与技术 班 级 计算141 学生姓名 吴刚 学 号 140811209 09 月 04 日至 09 月 16 日 共 2 周指导教师(签字) 院 长(签字) 2017年 09月 17日一、设计内容及要求内容:客房各种信息,包括客房的类别、

2、当前的状态、价格等;客房信息的查询和修改,比如按房间号查询住宿情况。以及退房、订房、换房等信息的修改。对查询、统计结果输出。通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。要求:1对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个

3、关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)二、设计原始资料1、数据库原理2、课程设计题目:客房管理系统三、设计完成后提交的文件和图表1计算说明书部分2图纸部分:课程设计报告格式(附后):封面、题目、时间地点、目的及要求、内容、详细的步骤和代码编写过程(绘制出拓扑图)、总结。设计报告格式: 设计题目 设计时间

4、、地点 设计目的 设计要求 设计思路(要求有文字描述,并画出流程图)(占报告40%) 设计过程(要求有文字说明实现的过程,并对相应的代码添加注释)(占报告40%) 设计总结(分析程序的得与失) 心得体会 封面格式如下(一定要有封面):四、进程安排教学内容学时地点备注分配任务与分组1天实验室系统功能需求分析1天实验室数据库需求分析1天实验室逻辑数据库结构2天实验室查询视图、存储过程、触发器1天实验室编程2天实验室程序测试和成果验收2天实验室五、主要参考资料1.数据库系统原理与应用沈祥玖 张岳 中国水利水电出版社 20162.SQL Server数据库配置与管理指南刘奎 清华大学出版社 20103

5、.SQL与关系数据库理论 周成兴清华大学出版社 2010信息科学与电气工程学院课程设计成绩评定用表平时成绩(30%)答辩成绩(40%)报告成绩(30%)总成绩注:本表可根据实际情况修改。目 录前 言- 1 -1.问题描述- 2 -1.1背景- 2 -1.2功能要求- 2 -2.需求分析- 3 -2.1需求分析- 3 -2.1.1 处理对象- 3 -2.1.2 系统功能分析- 3 -2.1.3安全性和完整性要求- 4 -2.2系统功能模块图- 5 -2.3数据字典- 6 -3.概念结构设计- 7 -3.1 E-R图- 7 -3.2实体及属性的定义- 7 -4.物理结构设计- 8 -5.触发器设计

6、- 8 -6.数据库的实施和维护- 9 -6.1 建立数据库、数据表、索引- 9 -6.1.1.建立数据库- 9 -6.1.2.建立数据表- 9 -6.1.3.建立索引- 10 -7. 存在问题总结- 11 -致 谢- 11 -8.主要参考资料- 11 -附 录- 12 -前 言随着我国经济的迅速发展和假日经济的出现,宾馆酒店业的竞争愈来愈激烈。要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。而对对酒店的经营状况去决定行作用的是酒店的管理。如何利用先进的管理手段,提高酒店的管理水平,是每一家酒店的管理者所面临的重要课题。简单的服务标准已经不是制胜的锦囊,只有做到最细微之处

7、才有机会让顾客体会到酒店服务的优点,而精准、快捷、周全往往就是最基本的成功要素。因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。信息与科技在酒店管理与现代化建设中显现出越来越重要的地位。在某种意义上,酒店客房状态管理方面的信息化与科学化,已成为现代化酒店的重要标志。关键字:客房管理;管理系统;服务。1.问题描述1.1背景随着宾馆业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓展经营空间,降低运营成本,提高管理和决策效率。传统的宾馆计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实

8、现了对顾客服务和进行财务核算所需要的各个功能。但传统的宾馆管理基于财务管理为主线的设计理念,无法满足宾馆全面信息化管理的需要。现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷。宾馆客房管理系统亦随着宾馆管理理念的发展而发展。宾馆客房管理系统依旧采用了先进的数据库理论,多媒体技术,软件工程理念等,从基层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为一线,形成一套上下贯通,操作便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力的支持。其对客人个性化服务及全面彻底的信息化,使企业电算化水平提升到一个新的更高层次,提供大量丰富的基于企业管理经营过

9、程中实际的数据。1.2功能要求(1)客人基本信息的录入;(2)客人基本信息的查询、修改、增加、删除等;(3)客房相关信息的录入,包括房间号、收费标准、床位、类别等;(4)客房类别标准的制定、类别信息的输入;(5)客房基本信息的查询、修改、删除等;(6)住房信息的录入,包括房间号、客人姓名等;(7)退房信息的更新;2.需求分析2.1需求分析2.1.1 处理对象系统要处理的对象包括信息管理、客户信息管理、客房信息管理、入住和退房管理、客房类型管理、费用管理、价目信息管理等7个方面,各个对象包含的信息如下所示:(1)信息管理:可以对于各种信息的查询,个人信息可以查看自己的私人信息,还可以对自己的私人

10、信息进行修改。用户信息查看用户的个人信息,对用户的信息进行增、删、查、改。(2)客户信息管理:可以新建客户,输入客户的身份证号码、姓名、性别、出生日期和地址等信息,可以对于客户的信息进行相应的修改,还可以对客户的消费信息进行统计。(3)客房信息管理:可以在相应的房间类型下面进行添加相应的房间,对相应的房间进行删除,查看空房以及客房的情况。(4)入住和退房管理:客户可以入住相应的类型房型下的空房,然后可以退房,系统自动将相应的订单状态置为失效,入住状态置为已退房,将相应房间的状态置为空房。(5)客房类型管理:管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房型,管理员、工作人员都

11、可以查看相应的房型信息,管理员有需要时可以删除相应的房型,系统自动将该房型下的房间删除。(6)费用管理:管理员、工作人员都可以查看相应的费用信息,管理员有需要时可以对宾馆的收入与支出进行查询或修改。(7)价目信息管理:可以查看客房的收费标准,管理员可以对客房价格进行查询与修改,工作人员可以查看可风的价目信息。2.1.2 系统功能分析某宾馆需要建立一个住房管理系统,需求分析结果如下:(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能;(2)一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同类型的房间的床位收费标准可能不同;(3)每个房间有房间号、收费标准、床位数目等信息;(4)

12、每位客人有身份证号码、姓名、性别、出生日期和地址等信息;(5)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息;(6)管理系统可查询出客人住宿相关信息、房间信息。2.1.3安全性和完整性要求安全性先通过试图机制,不同的用户只能访问系统授权的视图,这样可以满足系统数据一定程度上的安全性,在通过用户授权机制,用户登录来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。系统完整性要求系统中数据的正确性以及相容性。可以通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。152.2系统功能模块图系统功能模块图,如图2.2所示。图2.2 系统的功能模

13、块图2.3数据字典表2-3.客户信息表:表中列名数据类型可否为空说明编号IntNot null自增姓名Varchar(20)Not null性别intNot null(0-男,1-女)出生日期dataNot null身份证号Varchar(20)Not null主键联系电话Varchar(20)Not null家庭住址Varchar(50)Not null会员等级Varchar(10)Not null会员积分floatNot null表2-4. 客房信息表:表中列名数据类型可否为空说明编号Int Not null自增房间号Varchar(10)Not null主键分类Varchar(20)No

14、t null订房状态intNot null0-已订,1-未订清洁状态intNot null0-已清洁,1-未清洁价格floatNot null折扣floatNot null房间描述Varchar(500)Not null可用状态intNot null0-可用,1-不可用表2-5. 订房信息表:表中列名数据类型可否为空说明编号intNot null自增身份证号Varchar(20)Not null联合主键、外键房间号Varchar(20)Not null联合主键、外键入住时间datetimeNot null联合主键退房时间datetimeNot null总房价floatNot null3.概念结

15、构设计3.1 E-R图各实体之间的E-R图,如图3-1所示。图3-1 实体之间的E-R图3.2实体及属性的定义客户信息实体的E-R图,如图3-2所示。图32 客户信息实体的ER图客房信息实体的E-R图,如图3-3所示。图33 客房信息实体的ER图客户住宿实体的E-R图,如图3-4所示。 图34 客户住宿实体的ER图4.物理结构设计数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段要完成两大任务。(1) 确定数据库的物理结构,在关系数据库中主要是存储方法和存储结构。(2) 对物理结构进行评价,评价的重点是时间和空间效率。CREATE UNIQUE INDEX T

16、ravno ON Travellers(Tno)CREATE UNIQUE INDEX Roomno ON Rooms(Rno)CREATE UNIQUE INDEX Ritemno ON Roomitem(Ritemno)CREATE UNIQUE INDEX Livno ON Living(Tno)5.触发器设计会员积分:USE kfglxtGO/* Object: Trigger dbo.t1 Script Date: 09/26/2017 19:36:40 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo.

17、t1on dbo.订房信息表after insertasbeginset nocount on;declare 编号 int,增加积分 intselect 编号=身份证号,增加积分=总房价from insertedupdate dbo.客户信息表set 会员积分=会员积分+增加积分where 身份证号=编号End会员等级:USE kfglxtGO/* Object: Trigger dbo.会员等级增加 Script Date: 09/26/2017 19:37:52 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger db

18、o.会员等级增加on dbo.订房信息表after insertasbeginset nocount on; declare 编号 int,增加积分 intselect 编号=身份证号,增加积分=总房价from insertedupdate dbo.客户信息表set 会员等级=(会员积分+增加积分)/100where 身份证号=编号End6.数据库的实施和维护6.1 建立数据库、数据表、索引6.1.1.建立数据库 Create database kfglxt;6.1.2.建立数据表(1)客户信息表CREATE TABLE 客户信息表(编号 int IDENTITY(1,1)NOT NULL,姓

19、名 varchar(20)NOT NULL,性别 int NOT NULL,出生日期 date NOT NULL,身份证号 varchar(20)NOT NULL,联系电话 varchar(20)NOT NULL,家庭住址 varchar(50)NULL,会员等级 varchar(10)NULL,会员积分 float NULL,CONSTRAINT p1 PRIMARY KEY(身份证号);(2) 客房信息表CREATE TABLE 客房信息表(编号 int IDENTITY(1,1)NOT NULL,房间号 varchar(10)NOT NULL,分类 varchar(20)NOT NULL

20、,订房状态 int NOT NULL,清洁状态 int NOT NULL,价格 float NOT NULL,折扣 float NOT NULL,房间描述 varchar(500)NOT NULL,可用状态 int NOT NULL,CONSTRAINT p6 PRIMARY KEY(房间号);(3) 订房信息表CREATE TABLE 订房信息表(编号 int IDENTITY(1,1)NOT NULL,身份证号 varchar(20)NOT NULL,房间号 varchar(10)NOT NULL,入住时间 datetime NOT NULL,退房时间 datetime NOT NULL,

21、总房价 float NOT NULL,CONSTRAINT p2 PRIMARY KEY(身份证号,房间号,入住时间),CONSTRAINT p3 FOREIGN KEY(身份证号)REFERENCES 客户信息表(身份证号),CONSTRAINT p4 FOREIGN KEY(房间号)REFERENCES 客房信息表(房间号);6.1.3.建立索引CREATE UNIQUE INDEX Travno ON tb_Travellers(Tno)CREATE UNIQUE INDEX Roomno ON tb_Rooms(Rno)CREATE UNIQUE INDEX Ritemno ON tb

22、_Roomitem(Ritemno)CREATE UNIQUE INDEX Livno ON tb_Living(Tno)7. 存在问题总结1. 对书本知识不熟悉,课程设计过程当中需要不断的查阅课本,这样造成了时间的浪费。2. 2. 对SQL Server 2000 操作不熟悉,导致导入数据是经常出错,造成了一些不必要的麻烦,应该提高操作熟练程度。3. 对于触发器和存储过程定义不是很熟悉,有的稍微难点的语句写不出来,对于数据库定义语句应该要熟练掌握。4.对数据库设计总体把握不是很准确,导致中间多次反复的改动前面的业务流程图、数据流图和E-R图。 致 谢感谢老师的指导和陪伴 -宋立勇8.主要参考

23、资料1.数据库系统原理与应用沈祥玖 张岳 中国水利水电出版社 20162.SQL Server数据库配置与管理指南刘奎 清华大学出版社 20103.SQL与关系数据库理论 周成兴清华大学出版社 2010附 录登录界面图 1主界面图 2订房图3源代码import java.awt.Container;import java.awt.*;import java.util.*;import java.text.*;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListen

24、er;import java.awt.event.ItemEvent;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.s

25、wing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;class denglu extends JFrame implements ActionListener JLabel systemTime; Container con=this.getContentPane(); JFrame f=new JFrame(客房管理系统); JLabel a=new JLabel(用户名); JTextField a1=new JTextField

26、(); JLabel b=new JLabel(密码); JTextField b1=new JPasswordField(); JLabel q=new JLabel(答辩人:宋立勇); JButton c=new JButton(登录); JButton d=new JButton(退出); JPanel z=(JPanel)this.getContentPane(); ImageIcon icon=new ImageIcon(getClass().getResource(/Desktop/3.JPG); JLabel tu=new JLabel(icon);Container conte

27、nt= this.getContentPane();public denglu(String s)super(s);con.setLayout(null);systemTime = new JLabel(系统时间:); Container cp = getContentPane();systemTime.setBounds(20,200,200,200);cp.add(systemTime);a.setBounds(new Rectangle(100,80,60,30);b.setBounds(new Rectangle(100,140,60,30);a1.setBounds(new Rect

28、angle(150,80,150,30);b1.setBounds(new Rectangle(150,140,150,30);q.setBounds(new Rectangle(280,300,100,20);c.setBounds(new Rectangle(100,200,80,30);d.setBounds(new Rectangle(200,200,80,30);con.add(a);con.add(b);con.add(q);con.add(c);con.add(d);con.add(a1);con.add(b1);this.setSize(400,400);tu.setBound

29、s(0, 0, getWidth(), getHeight();z.add(tu); z.setOpaque(false); this.getLayeredPane().add(tu,new Integer(Integer.MIN_VALUE);this.setVisible(true);c.addActionListener(this);d.addActionListener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=d)this.setVisible(false);if(e.getSource()=

30、c)String driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;tryClass.forName(driverName);System.out.println(连接驱动成功);catch (ClassNotFoundException b)b.printStackTrace();String dbURL=jdbc:sqlserver:/localhost:1433;DatabaseName=kfglxt; tryConnection dbConn; String userName=sa;String userPwd=370724

31、; dbConn=DriverManager.getConnection(dbURL,userName,userPwd);System.out.println(连接数据库成功);Statement statement;statement = dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); String s1 = a1.getText(); String s2 = b1.getText(); /executeQuery()执行给定的SQL语句,该语句返回单个resultse

32、t对象 ResultSet resultset = statement.executeQuery(select * from 员工信息表 where 用户名=+s1+ and 密码=+s2+); if(resultset.next() JOptionPane.showMessageDialog(null,登陆成功!欢迎使用!); this.setVisible(false); new frist(客房管理);/,管理员-+t1.getText() con.setVisible(false);/隐藏窗体 else JOptionPane.showMessageDialog(this,用户名和密码

33、不正确!请重新输入,警告,JOptionPane.WARNING_MESSAGE); dbConn.close(); a1.setText(null); b1.setText(null); / this.setVisible(false); catch(Exception w)w.printStackTrace(); public static void main(String argu)denglu d=new denglu(客房管理系统);TimerTask task = new TimerTask() denglu time = new denglu(null); public void

34、 run() /comment by me/* Calendar st = Calendar.getInstance(); String sdate;Date ddate;ddate=st.getTime();*/ /add by me below: String sdate;sdate=(new SimpleDateFormat(yyyy-MM-dd hh:mm:ss).format(new Date(); time. systemTime.setText(sdate); ;Timer t = new Timer(); t.scheduleAtFixedRate(task, new Date

35、(), 1000); 登录import java.awt.Container;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;class frist extends JFrame imp

36、lements ActionListener Container con=this.getContentPane(); JFrame f=new JFrame(客房管理系统); /JButton a=new JButton(系统信息管理);JButton b=new JButton(客户信息管理); JButton c=new JButton(客房信息管理); JButton d=new JButton(订房信息管理); /JButton sh=new JButton(退票); /JButton xs=new JButton(订票信息); JButton tc=new JButton(退出);

37、 JLabel q=new JLabel(答辩人:宋立勇); JPanel z=(JPanel)this.getContentPane(); ImageIcon icon=new ImageIcon(getClass().getResource(/Desktop/3.JPG); JLabel tu=new JLabel(icon);Container content= this.getContentPane();public frist(String s)super(s);con.setLayout(null);/a.setBounds(new Rectangle(20,30,200,30);

38、b.setBounds(new Rectangle(20,80,200,30);c.setBounds(new Rectangle(20,130,200,30);d.setBounds(new Rectangle(20,180,200,30);/sh.setBounds(new Rectangle(20,230,100,30);/xs.setBounds(new Rectangle(20,280,100,30);tc.setBounds(new Rectangle(250,400,100,30);q.setBounds(new Rectangle(350,500,100,20);/con.ad

39、d(a);con.add(b);con.add(c);con.add(d);/con.add(sh);/con.add(xs);con.add(tc);con.add(q);this.setSize(500,600);tu.setBounds(0, 0, getWidth(), getHeight();z.add(tu); z.setOpaque(false); this.getLayeredPane().add(tu,new Integer(Integer.MIN_VALUE);this.setVisible(true);/a.addActionListener(this);b.addAct

40、ionListener(this);c.addActionListener(this);d.addActionListener(this);/sh.addActionListener(this);/xs.addActionListener(this);tc.addActionListener(this); public static void main(String argu)frist f=new frist(客房管理系统);public void actionPerformed(ActionEvent e) if(e.getSource()=tc) this.setVisible(false); if(e.getSource()=c) new kefang(客房信息管理); if(e.getSource()=b) new kehu(客户信息管理); if(e.getSource()=d) new dingfang(订房信息管理); 主界面import java.awt.Cont

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号