酒店管理系统课程设计.docx

上传人:b****5 文档编号:6758196 上传时间:2023-01-10 格式:DOCX 页数:13 大小:354.76KB
下载 相关 举报
酒店管理系统课程设计.docx_第1页
第1页 / 共13页
酒店管理系统课程设计.docx_第2页
第2页 / 共13页
酒店管理系统课程设计.docx_第3页
第3页 / 共13页
酒店管理系统课程设计.docx_第4页
第4页 / 共13页
酒店管理系统课程设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

酒店管理系统课程设计.docx

《酒店管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统课程设计.docx(13页珍藏版)》请在冰豆网上搜索。

酒店管理系统课程设计.docx

酒店管理系统课程设计

 

软件工程课程设计报告

 

班级:

软件xxx

姓名:

xxx

学号:

xx4

指导教师:

 

目 录

1设计内容1

2概要设计1

2.1数据库设计1

2.1.1数据库E-R图1

2.1.21

2.1.3数据库表设计2

2.2逻辑结构设计2

2.2.1酒店管理系统数据流图2

2.2.2数据字典3

3详细设计4

4程序源码5

4.1客房申请5

4.2退房申请6

4.3查看9

5程序运行与调试9

5.1酒店入住页面9

5.2退房10

5.3查询10

6总结11

参考文献12

成绩评定12

1设计内容

酒店管理系统:

实现住房,退房,住房人数统计等功能

2概要设计

2.1数据库设计

2.1.1数据库E-R图

 

图2-1E-R

2.1.2

住户(序号,姓名,性别,身份证号)

房间(房号,类型,人数)

所住(序号,房号)

 

2.1.3数据库表设计

表2-1住户-person

列名

列名(Table)

类型

长度

非空

序号

number

Int

4

姓名

name

Varchar

20

性别

sex

Char

4

身份证号

id

Int

18

表2-2房间-room

列名

列名(Table)

类型

长度

非空

房号

roomid

Int

4

类型

type

Varchar

4

人数

num

Int

4

表2-3所住-relax

列名

列名(Table)

类型

长度

非空

序号

number

Int

4

房号

id

Int

4

2.2逻辑结构设计

2.2.1酒店管理系统数据流图

 

图2-2数据流图

2.2.2数据字典

图2-3

图2-4

图2-5

图2-6

3详细设计

3.1酒店管理系统程序流程图

图3-1酒店管理系统程序流程图

4程序源码

4.1客房申请

主要思想:

输入身份证号,查看房间的剩余,进行入住

request.setCharacterEncoding("utf-8");

ServletContextapplication=getServletContext();

Stringleixing=(String)application.getAttribute("leixing");

Stringroomno=(String)application.getAttribute("roomno");

DataSourceds=null;

Contextcontext;

try{context=newInitialContext();

ds=(DataSource)context.lookup("java:

/comp/env/jdbc/mysqlds");

}catch(NamingExceptione){

e.printStackTrace();

System.out.println("获取数据源错误!

");

}

try{Stringsql="select*fromroomwherestatue=?

androomno=?

";

QueryRunnerrun=newQueryRunner(ds);

Stringstr[]={leixing,roomno};

Listlist=(List)run.query(sql,str,newBeanListHandler(room.class));

if(list.isEmpty()){

request.getRequestDispatcher("/servlet/insertroom").forward(request,response);}

else{ServletContextapplication1=getServletContext();

application1.setAttribute("roomno",roomno);

application1.setAttribute("leixing",leixing);

RequestDispatcherrs=request.getRequestDispatcher("/servlet/insertroom");

try{rs.forward(request,response);

return;

}catch(Exceptione){}}

}catch(SQLExceptione){e.printStackTrace();}

try{Stringsql="selectclientname,sex,shenfenzheng,roomnumberfromclientwhereyuding='1'";QueryRunnerrun=newQueryRunner(ds);

Listlist=(List)run.query(sql,newBeanListHandler(dbcommen.class));

request.setAttribute("list",list);request.getRequestDispatcher("/main/yudingruzhu.jsp").forward(request,response);}catch(SQLExceptione){e.printStackTrace();}

4.2退房申请

客户退房模块设计是:

输入房间号后查询客户信息及消费情况;在输出之前首先要预先查询房间号是否有人入住,再修改数据库信息,最后显示客户的信息及消费情况。

退房设计思想为:

当输入房间号后到trueroom2控制块中查询该房间是否已经入住,到满足条件时,到insertroom对数据库插入退房时间,然后再到getall控制块查询:

客户信息,房间入住,退房时间以及客户消费信息。

最后到all.Jsp页面显示所有信息。

然后结账,退房。

request.setCharacterEncoding("utf-8");

Stringroomno=request.getParameter("roomno");

Stringleixing=request.getParameter("leixing");

try{Stringsql="select*fromroomwherestatue=?

androomno=?

";

QueryRunnerrun=newQueryRunner(ds);

Stringstr[]={leixing,roomno};

Listlist=(List)run.query(sql,str,newBeanListHandler(

room.class));

ServletContextapplication1=getServletContext();

application1.setAttribute("roomno",roomno);

application1.setAttribute("leixing",leixing);

RequestDispatcherrs=request.getRequestDispatcher("/servlet/insertroom");

try{rs.forward(request,response);return;

}catch(Exceptione){}}

}catch(SQLExceptione){e.printStackTrace();}

Insertroom的实现如下:

request.setCharacterEncoding("utf-8");

ServletContextapplication=getServletContext();

Stringleixing=(String)application.getAttribute("leixing");

Stringroomno=(String)application.getAttribute("roomno");

System.out.println(roomno);

System.out.println(leixing);

inti=Integer.parseInt(leixing);

intresult=0;

Stringmessage=null;

Stringsql=null;

try{

switch(i){

case0:

sql="updateroomsetstatue=1whereroomno=?

";break;

case1:

sql="updateroomsetstatue=2,startdate=now()whereroomno=?

";break;

case2:

sql="updateroomsetenddate=now()whereroomno=?

";break;

}

Stringsr[]={roomno};

QueryRunnerrun=newQueryRunner(ds);

result=run.update(sql,sr);

if(i==1){

sql="updateclientsetyuding=2whereroomnumber=?

";

QueryRunnerrun1=newQueryRunner(ds);

run1.update(sql,sr);

}

if(i==2){ServletContextapplication1=getServletContext();

application1.setAttribute("roomno",roomno);

RequestDispatcherrs=request.getRequestDispatcher("/servlet/seachall");

try{

rs.forward(request,response);

return;

}catch(Exceptione){

}}

else{if(result==1){

message="操作成功!

";

}else{

message="操作失败!

";

}

request.setAttribute("message",message);

request.getRequestDispatcher("/addResult.jsp").forward(request,

response);}

}catch(SQLExceptione){

e.printStackTrace();

}

}

Seachall的实现如下:

request.setCharacterEncoding("utf-8");

ServletContextapplication=getServletContext();

Stringroomno=(String)application.getAttribute("roomno");

Stringconsumerno="123456";

DataSourceds=null;

Stringsql=null;

try{sql="selectclientname,sex,shenfenzhengfromclientwhereyuding=2androomnumber=?

";

QueryRunnerrun=newQueryRunner(ds);

Stringstr[]={roomno};

Listlist=(List)run.query(sql,str,newBeanListHandler(

dbcommen.class));

dbcommenbl=(dbcommen)list.get(0);

request.setAttribute("bl",bl);

sql="selectroomno,startdate,enddate,

timestampdiff(day,startdate,enddate)asday

fromroomwherestatue=2androomno=?

";

Listlist1=(List)run.query(sql,str,newBeanListHandler(room.class));

roomroom1=(room)list1.get(0);

request.setAttribute("room1",room1);

sql="select*fromconsumerwhereconsumerno=?

";

Stringstr1[]={consumerno};

Listlist2=(List)run.query(sql,str1,newBeanListHandler

(consumer.class));

consumercm=(consumer)list2.get(0);request.setAttribute("cm",cm);

if(list.isEmpty()||list1.isEmpty()||list2.isEmpty()){System.out.println("读取失败!

");}else{

request.getRequestDispatcher("/seachall.jsp").forward(request,

response);}

}catch(SQLExceptione){e.printStackTrace();}}

4.3查看

房间查询的思想为:

先到getallroom控制块对条件进行处理,将满足条件的房间号的数组放到room.Class中,再到Roomseach.Jsp页面将数组显示出来。

try{sql="selectroomno,statue,startdate,enddatefromroom";

QueryRunnerrun=newQueryRunner(ds);

Listlist=(List)run.query(sql,newBeanListHandler(room.class));

request.setAttribute("list",list);

request.getRequestDispatcher("/main/roomseach.jsp").forward(request,response);}

catch(SQLExceptione){

e.printStackTrace();}

5程序运行与调试

5.1酒店入住页面

图5-1入住

5.2退房

5-2酒店退房管理

 

5.3查询

5-3住户查询页面

 

6总结

通过一段时间的设计与编写,该酒店管理系统终于有了一个比较完整的框架。

现将心得体会总结如下:

由于时间仓促,这暂时只是一个简单的管理系统,但从设计这个系统的过程中,我感受到了关于软件工程,数据库设计、商业管理等各方面知识在实际工作中的应用。

在开发该系统过程中,我始终坚持以下四项原则,并朝相应目标靠拢:

(1)实用为主

任何系统都应该以用户需求为最终目标,以方便用户为最高原则,同进要融入先进的管理经验与技巧。

该系统努力根据用户的实际需求功能情况,度身订造一套先进的管理系统,并且将在统一的WindowsNT/9X图形界面下提供各种实用功能,尽可能降低使用前的培训、实施和使用中的维护时间。

力求满足现在及未来的各种需求,真正为管理及决策提供强有力的支持。

(2)稳定可靠

不论在软件设计还是硬件制造中,稳定都是压倒一切的。

本管理系统通过选用先进的开发软件,成熟的网络结构及安全可靠的数据库,再配合硬件的优化选型,从而保证系统的可靠性与容错性。

(3)先进灵活

系统充分应用现有成熟的网络技术、软件开发技术,先进的客户/服务器结构,及高性能的数据库,满足大型客户的日常运营、开展电子商务等的需要。

同时用户可自行灵活设置参数和各种代码,适应自己的特殊需要。

总体而言,国内酒店IT技术开发的现状是:

1、需求不明确,使酒店项目工程性强,产品化不足,开发商的总体成本居高不下,研发缺乏原动力。

2、没有行业统一标准,厂商各自为政,市场分化导致产品整合难度大。

3、产品推广依赖行政手段和关系网,抑制了新技术的引进和技术的创新,不利于形成自己的产品特色和质量控制。

4、国外优秀品牌的低价进入,垄断了国内高星级市场,开发商利润空间式微。

参考文献

[1][美]Microsoft公司.MicrosoftSQLServer2000数据库编程.北京:

希望电子出版社,2001

[2]王珊,萨师煊.数据库系统概论[M].第4版.北京:

高等教育出版社2006

[3]张海藩,软件工程导论[M].第5版,北京,清华大学出版社2011

[3]jsp基础教程:

[EB/OL]

 

成绩评定

 

成绩教师签字

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1