数据库原理酒店管理系统设计课程设计报告.docx
《数据库原理酒店管理系统设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库原理酒店管理系统设计课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
数据库原理酒店管理系统设计课程设计报告
课程设计报告
(本科)
课程:
数据库原理
学号:
61
15
姓名:
张自豪
袁满
班级:
2013级计算机科学与技术
教师:
孙雯
时间:
计算机学院
设计名称:
酒店管理系统设计
设计内容、目的与要求:
(1)旅客基本信息的录入;
(2)旅客基本信息的查询、修改、增加、删除等;
(3)酒店相关信息的录入,包括房间号、收费标准、床位、类别等;
(4)酒店类别标准的制定、类别信息的输入;
(5)酒店基本信息的查询、修改、删除等;
(6)住房信息的录入,包括房间号、旅客姓名等;
(7)退房信息的更新;
计划与进度安排:
5月12日—5月14日:
分析题目,设计题目模块;
5月15日—6月4日:
编写课程设计的模块程序;
6月5日—6月20日:
把各模块程序结合,并调试程序;
6月21日—6月30日:
参考网上程序,修改和重写部分程序并作出课程设计报告册和说明书;
7月1日—7月5日:
调整报告格式,完善、美化,准备课程设计验收。
设计过程、步骤(可加页):
某宾馆需要建立一个住房管理系统,需求分析结果如下:
(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能;
(2)一个房间有多个床位,同一房间内的床位具有相同的收费标准。
不同类型的房间的床位收费标准可能不同;
(3)每个房间有房间号、收费标准、床位数目等信息;
(4)每位旅客有身份证号码、姓名、性别、出生日期和地址等信息;
(5)对每位旅客的每次住宿,应该记录其入住日期、退房日期和预付款额信息;
(6)管理系统可查询出旅客住宿相关信息、房间信息。
结果与分析(可以加页):
载入界面
主界面
(1)信息管理:
可以对于各种信息的查询,个人信息可以查看自己的私人信息,还可以对自己的私人信息进行修改。
用户信息查看用户的个人信息,对用户的信息进行增、删、查、改。
旅客登录
客房查询
信息修改
(2)客户信息管理:
可以新建客户,输入客户的身份证号码、姓名、性别、出生日期和地址等信息,可以对于客户的信息进行相应的修改,还可以对客户的消费信息进行统计。
管理员界面
用户管理
(3)酒店信息管理:
可以在相应的房间类型下面进行添加相应的房间,对相应的房间进行删除,查看空房以及酒店的情况。
客房管理
(4)入住和退房管理:
客户可以入住相应的类型房型下的空房,然后可以退房,系统自动将相应的订单状态置为失效,入住状态置为已退房,将相应房间的状态置为空房。
入住登记
退房结账
(5)酒店类型管理:
管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房型,管理员、工作人员都可以查看相应的房型信息,管理员有需要时可以删除相应的房型,系统自动将该房型下的房间删除。
客房修改
系统功能分析
某宾馆需要建立一个住房管理系统,需求分析结果如下:
(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能;
(2)一个房间有多个床位,同一房间内的床位具有相同的收费标准。
不同类型的房间的床位收费标准可能不同;
(3)每个房间有房间号、收费标准、床位数目等信息;
(4)每位旅客有身份证号码、姓名、性别、出生日期和地址等信息;
(5)对每位旅客的每次住宿,应该记录其入住日期、退房日期和预付款额信息;
(6)管理系统可查询出旅客住宿相关信息、房间信息。
3).安全性和完整性要求
安全性先通过试图机制,不同的用户只能访问系统授权的视图,这样可以满足系统数据一定程度上的安全性,在通过用户授权机制,用户登录来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
系统完整性要求系统中数据的正确性以及相容性。
可以通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
设计体会与建议:
张自豪:
个人对这个程序相对满意。
通过本次课程设计,对SQL语言,数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表,学会了数据库的基本操作。
很多事情不是想象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免冗余,尽量按照属性处理了。
从各种文档的阅读到需求分析、概要设计、数据库总体设计、代码编写与调试,我们都准备了好长时间。
组内分工合作的整个过程,我亲身体验了一回系统的设计开发过程,分工合作的好处。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。
因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。
所以以后的课程设计要特别注意这一块的设计。
经过组内讨论,我们确定的课题是企业信息文档管理系统。
说实话,我对这个系统不是很了解。
通过上网查找资料、相关文献的阅读,我对该系统有了大体的了解。
袁满:
通过这次毕业设计的完成,使我对自己所学知识进一步的了解,同时通过实践发现自己的不足,对知识的掌握及运用存在诸多的不完善。
本系统也存在着很多不足,如系统十分简单,实现功能也不够完善,安全性问题也没有很好的解决。
所以在今后的学习中我会继续努力,完善自我,同学的帮助、指导老师的用心辅导和学校的精心安排使这个课题能够顺利进行。
但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,也难免存在错漏,恳请老师谅解。
在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和用户的需要,分析现有情况及问题。
在一个月的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题,经过组内讨论。
最终把它解决了。
通过这次课程设计,我对数据库的设计更加熟练了。
附录(代码):
how();
}
i++;
}
}
}
}
//登陆界面代码
usingSystem;
using;
using;
using;
using;
using;
using;
usingHotelManagement
{
publicpartialclasslogin:
Form
{
publiclogin()
{
InitializeComponent();
}
publicstaticintchoice=0;//用于标记是否登陆成功,并在index中将值传给,用于判断用户是否登陆
privatevoidinlog(stringinfos)//写入日志infos信息
{
stringpaths=()+"\\";//当前工作目录下创建文件
StreamWriterswtxt=newStreamWriter(paths,true,;
(infos);//写文本流
();
}
stringusername,password;
privatevoiddl_Click(objectsender,EventArgse)
{
stringsql;
DataSetds;//数据在内存中的缓存
if!
=""&&""&&!
=-1)//信息完整判断
{
username=//获取用户名
password=sql="select*fromuserInfowhereusername='"+username+"'andpwd='"+password+"'";//默认为旅客登陆
if=="管理员")
{
sql="select*fromManagerwhereadminname='"+username+"'andpwd='"+password+"'";
}
connectdata=newconnect();//connect实例
();//打开数据库
ds=(sql);//获取执行结果
DataTabledt=[0];//单表
DataRowdr;//单行
if==1)//结果只有一行代表信息正确
{
dr=[0];//将查询结果的第一行赋值给drdr[i]表示该行的第i+1个单元格
if=="旅客")//以旅客权限登陆
{
();
choice=1;//标记登录状态为登陆
Guestguest=newGuest();
=username;//用于在admin或guest的状态栏显示登陆者的账号
="旅客";
();
stringmyss=+""++""+username+"登陆";
inlog(myss);//写入信息到文本
}
elseif=="管理员")//以管理员权限登录
{
();
choice=1;//标记登录状态为登陆
adminmanager=newadmin();
=username;
="管理员";
();
stringmyss=+""++""+username+"登陆";
inlog(myss);
}
else
{
("用户权限选择错误!
","提示",;
}
}
else
{
("用户名或者密码错误!
请重试!
","警告",;
="";
="";
}
}
else
{
("请确认输入完整信息","提示");
}
}
privatevoidcancel_Click(objectsender,EventArgse)
{
();
indexind=newindex();
();
}
privatevoidlogin_Load(objectsender,EventArgse)
{
();
='*';
}
privatevoidlabel1_Click(objectsender,EventArgse)
{
();
logonlog=newlogon();
();
}
}
}