数据库课程设计报告酒店管理系统的设计系部信息工程系专业计算机软件专业班级学号 ____________ 姓名 _______________课题 _____________ 指导教师报告成绩______________目录1课程设计目的及要求 (1)2课程设计的主要内容 (1)3数据库设计 (1)3.1需求分析 (1)3.1.1对功能的需求 (1)3.1.2数据流图 (2)3.1.3数据字典 (4)3.2概念设计 (6)3.2.1实体E-R图 (6)3.2.2概念设计的总体E-R图 (9)3.3逻辑设计 (9)3.4物理设计 (10)4程序模块设计 (11)4.1用户登录模块设计 (11)4.1.1用户界面模块分析 (11)4.1.2运行结果 (12)4.2住宿管理模块设计 (13)4.2.1住宿管理模块分析 (13)4.2.2运行结果 (14)4.3消费模块设计 (15)4.3.1消费模块分析 (15)4.3.2运行结果 (15)5小结 (16)酒店管理系统系统的设计1 课程设计目的及要求数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程。
数据库课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程分为系统分析与数据库设计、应用程序设计和系统集成调试三个阶段进行。
数据库课程设计的主要目标是:a.加深对数据库系统、程序设计语言的理论知识的理解和应用水平。
b.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
2 课程设计的主要内容系统分析与数据库设计阶段a. 通过社会调查,选择一个实际应用数据库系统的课题。
b.进行系统需求分析和系统设计,写出系统分析和设计报告。
c.设计数据模型并进行优化,确定数据库结构、功能结构和系统安全性和完整性要求。
应用程序设计阶段a.完成数据库定义工作,实现系统数据的数据处理和数据录入。
b.实现应用程序的设计、编程、优化功能,实现数据安全性、数据完整性和并发控制技术等功能,并针对具体课题问题提出解决方法。
c.系统集成调试阶段对系统的各个应用程序进行集成和调试,进一步优化系统性能,改善系统用户界面。
3数据库设计3.1需求分析3.1.1对功能的需求a.系统帐号管理第一次用一个管理员账号(系统给定)登陆,登陆成功后,可以设置其他用户,包括密码、权限等。
b.消费管理为消费客户查询并分配餐桌,纪录客户用餐情况并结帐。
c.住宿管理为住宿客户查询并分配房间,纪录客户住宿情况并结帐。
3.1.2数据流图绘制数据流程图的目的是为了方便开发人员与用户的交流,以及为系统的设计提供依据。
数据流程图的绘制过程通常采用自顶向下,逐层分解,直到功能细化为止,形成若干层次的数据流程图。
酒店管理系统的数据流程图如下所示:顶层:图3-1 酒店管理系统顶层数据流图0层:图3-2酒店管理系统0层数据流图1层:2号图:3号图:4号图:图3-3酒店管理系统1层数据流图3.1.3 数据字典该系统具体功能模块以数据字典表示如下:数据字典(DD ,Data Dictionary ):是以特定格式记录下来的、对系统的数据流程图中各个基本要素(数据流、加工、存储和外部项)的内容和特征所作的完整的定义和说明。
数据字典是对数据流程图的重要补充和说明。
现简要列出本系统的部分数据字典。
b.处理过程卡片的定义,如表3-5所示。
d.数据存储卡片的定义,如表3-7所示。
e.数据元素卡片的定义,如表3-8所示。
f.数据结构卡片的定义,如表3-9所示。
3.2概念设计3.2.1实体E-R图由需求分析知,基本实体有客房、楼层、客户、预定单、入住单、账单a.客房的基本属性有客房编号,类型编号,楼层编号,额定人数,床数,客图3-10客房b.楼层的基本属性有楼层编号,楼层名称,如图3-11所示。
图 3-11楼层c.客户的属性有:客户姓名,性别,证件号,备注,如图3-12所示。
图3-12客户d.预订单的基本属性有预定单号,会员编号,客房类型,抵店时间,离店时间,单据状态,入住人数,客房编号,客房价格,入住价格,折扣,折扣原因,是否加床,预收款,预定电话,操作员,如图3-13所示。
图 3-13预订单e. 入住单的基本属性有入住单号,会员编号,客房类型,抵店时间,单据状态,入住人数,客房编号,客房价格,入住价格,折扣,折扣原因,是否加床,加床价格,预收款,预定电话,备注,操作员,早餐,叫醒,保密,vip,应收账款,是否结账,结账日期,付款方式。
如图3-14所示。
图 3-14入住单f.账单:账单编号,入住单号,消费内容,消费金额,消费时间,备注。
如图3-15图3-15账单3.2.2概念设计的总体E-R图综合酒店管理系统的各个应用功能,就可以得出系统的总体E-R图。
如下图3-16所示:3.3逻辑设计逻辑结构设计的任务就是把概念结构转换为与筛选的DBMS所支持的数据模型相符合的过程。
该系统的逻辑结构就是将概念结构(基本E-R图)转换为SQL SERVER 所支持的关系型数据模型,具体转换规则如下:a.基本E-R图转换为SQL SERVER 所支持的关系型数据模式(表),实体的属性就是关系的属性,实体的码就是关系的码b.一个联系转化为一个关系模式,与该联系相连的各实体的码,以及联系的属性转化为关系属性,对象同码的关系模式进行合并。
根据上述转换原则对该系统的实体进行了分解,同时,采用数据字典的方式对该系统的逻辑结构进行描述。
客房信息(客房编号、客户名称、入住时间、楼层、床数);范式判定:客房编号是决定因素,且是主码。
预定单子信息(预定单编号、客房类型、入住价格、客房编号、折扣);范式判定:预定单编号是决定因素,且是主码。
消费信息(消费品编号、缴费方式、消费品名称、消费总额、消费日期);范式判定:每一个非主属性都不部分依赖于码也不传递依赖于码。
所以客房∈3NF。
客户信息(客户身份证号、客户姓名、客房编号、消费品编号);范式判定:非主属性不部分依赖于码也不传递依赖于码,所以投诉∈3NF。
退房信息(客房编号、住房天数、客房类型、消费品编号);范式判定:非主属性不部分依赖于码也不传递依赖于码,且每一个决定因素都包含码,所以退房∈BCNF。
说明:a.下加横线部分表示关系的码b.以上关系的详细内容说明请参照概念结构设计中的具体内容3.4物理设计本系统所使用的数据存储要求为数据库,各个数据选项都要从数据库中存取,存取单位是表格,存储区域在系统的硬盘内,系统数据要满足保密性,每位用户都设定了权限,只有满足权限的用户才能使用某项数据,需要在用户输入用户名时对其权限进行判断。
表3-19消费品信息表4程序模块设计4.1用户登录模块设计4.1.1用户界面模块分析该程序是用户登录时所必须要用到的,登陆之前需要验证用户身份的合法性,故而需要用户输入程序,输入用户名及密码来进行身份验证。
本程序为非常驻内存,是子程序、可重用、是顺序处理,在输入之后方能进行验证,如图4-1所示:4.1.2运行结果输入:用户标识caifeng,用户口令0751401223。
处理:判断用户名和密码是否有效。
填入后点击[登录]按钮,系统将自动从数据库中的管理员信息表中判断是否存在相同的用户名和密码等,如果有则进入系统,如果不存在或密码错误,则提示不是管理员或密码有错误的信息。
输出:登录成功,进入管理员的功能选择页面,若不成功则显示错误信息页面。
登录界面如图4-2所示:图4-2系统登录界面当输入错误的口令是出现时,看到的现象如图4-3所示:图4-3错误口令界面图当输入正确的时候出现界面如图4-4所示:图4-4酒店管理系统主界面4.2住宿管理模块设计4.2.1住宿管理模块分析住宿管理用于对客房类型,客房价格,客房信息,系统参数等项目进行初始化设置,这些设置一般不轻易改动,包含的功能模块如下图4-5及图4-6所示:图4-6住宿管理4.2.2运行结果当有客户入住时,管理员选择酒店管理系统中的入住登记功能!该功能能方面管理员对客户进行入住的登记。
例如客户选择的客房类型,入住客户的人家,入住的日期等等!运行图形界面如图4-7所示:图4-7住宿模块4.3 消费模块设计 4.3.1消费模块分析消费管理员对顾客消费进行管理,包括提供顾客餐桌,管理顾客所点菜肴,结帐等。
如下图4-8所示:图4-8消费模块图4.3.2运行结果客户消费功能记录了客户在酒店里的一些消费信息,详细的记录了客房在具体的某天,消费了某些物品,以及消费的金额,记录好这些信息以便退房的那天消费管理消费管理员用户提供顾客消费品管理顾客消费品结帐一起付款!程序运行界面如图4-9所示:图4-9客户消费模5 小结通过这次课程设计让我对前面学过的许多课程有了更为深刻的理解,也是我对这三年所学的东西的一个综合体现。
然而这次设计让我感受颇深,让我真正体会到了在整个过程给我带来的无奈与快乐。
综合起来,主要体现在以下几个方面:首先,急于求成的心情给我带来了很大的困难。
以前我注重是编码过程,以为只要能把最后的功能实现了就可以了,所以一开始我就稍微理了一下思绪就动起手来编码,我原以为很快就能完成此次任务,可万万没想到,编了二三天,自已就陷入了泥潭,进退两难,但后来面临的问题只有重来,这真是给了我很大的打击,这样的反复让我进行了几次。
后来我终于沉住气,吸取前几次的教训,严格的按照“管理信息系统”“软件开发工具”所提到开发管理信息系统所用的方法中都把系统规划和系统分析放在极为重要的位置。
认真细致地对开发过程进行了规划和分析,才逐渐弄清了整个系统的流程,把握整体布局,明确了系统的基本功能,做好业务流程图、数据流图的情况下,在设计好系统各主要部分,将一些细节问题考虑周全后才开始动手进行开发,使得后来的工作才得以顺利进行。
其次,在编程语言的熟悉程度也让我对整个开发过程受到了一定的阻碍。
因为以前只独立编制过一些微型程序,而那些程序涉及面比较窄,实现的功能相当有限,从而要求对语言的熟悉程序不高,然而这次很多都不同,这次设计,不但难度大,而且还要求对一些算法比较熟悉,否则将延迟工作速度,必须停下来再去学习,后因时间问题,本系统还有一些不尽如意之处。
总的来说,这次的课程设计为我提供了一次锻炼的舞台,经过开发这个系统,这不仅仅是一次课程设计,不仅仅是学会了一门开发语言,更重要的是在学习的过程中,所有的问题要自已去面对,有问题也只有靠自已去解决,这们,在学习和解决这些困难的过程中提高了我学习的能力、解决问题的能力和实际工作的能力,学到了许多书本以外的知识。
这次课程设计虽说不能堪称完美,但我会在以后的时间里尽量的完善它,不断的对它进行升级,解决系统可能出现的问题。