1、酒店管理系统课程设计软件工程课程设计报告班级:软件xxx 姓名:xxx 学号:xx4 指导教师: 目录1设计内容 12概要设计 12.1数据库设计 12.1.1数据库E-R图 12.1.2 12.1.3数据库表设计 22.2逻辑结构设计 22.2.1酒店管理系统数据流图 22.2.2数据字典 33详细设计 44程序源码 54.1客房申请 54.2退房申请 64.3查看 95程序运行与调试 95.1酒店入住页面 95.2退房 105.3查询 106总结 11参考文献 12成绩评定 12 1设计内容酒店管理系统:实现住房,退房,住房人数统计等功能2概要设计2.1数据库设计2.1.1数据库E-R图图
2、2-1 E-R2.1.2住户(序号,姓名,性别,身份证号)房间(房号,类型,人数)所住(序号,房号)2.1.3数据库表设计表2-1 住户-person列名列名(Table)类型长度非空序号numberInt4是姓名nameVarchar20是性别sexChar4否身份证号idInt18是表2-2 房间-room列名列名(Table)类型长度非空房号roomidInt4是类型typeVarchar4否人数numInt4否表2-3 所住-relax列名列名(Table)类型长度非空序号numberInt4是房号idInt4是2.2逻辑结构设计2.2.1酒店管理系统数据流图图2-2 数据流图2.2.
3、2数据字典图2-3图2-4图2-5图2-63详细设计3.1酒店管理系统程序流程图图3-1 酒店管理系统程序流程图4程序源码4.1客房申请主要思想:输入身份证号,查看房间的剩余,进行入住 request.setCharacterEncoding(utf-8); ServletContext application = getServletContext(); String leixing= (String) application.getAttribute(leixing); String roomno = (String) application.getAttribute(roomno); D
4、ataSource ds = null; Context context; try context = new InitialContext(); ds = (DataSource) context.lookup(java:/comp/env/jdbc/mysqlds); catch (NamingException e) e.printStackTrace(); System.out.println(获取数据源错误!); try String sql = select * from room where statue=? and roomno=?; QueryRunner run = new
5、 QueryRunner(ds); String str=leixing,roomno; List list=(List) run.query(sql,str,new BeanListHandler(room.class); if(list.isEmpty()request.getRequestDispatcher(/servlet/insertroom).forward(request,response); elseServletContext application1= getServletContext(); application1.setAttribute(roomno,roomno
6、); application1.setAttribute(leixing,leixing); RequestDispatcher rs=request.getRequestDispatcher(/servlet/insertroom); tryrs.forward(request,response); return; catch (Exception e) catch (SQLException e) e.printStackTrace();try String sql=select clientname,sex,shenfenzheng,roomnumber from client wher
7、e yuding=1;QueryRunner run = new QueryRunner(ds);List list = (List) run.query(sql, new BeanListHandler(dbcommen.class);request.setAttribute(list,list);request.getRequestDispatcher(/main/yudingruzhu.jsp).forward(request,response);catch(SQLException e) e.printStackTrace();4.2退房申请客户退房模块设计是:输入房间号后查询客户信息
8、及消费情况;在输出之前首先要预先查询房间号是否有人入住,再修改数据库信息,最后显示客户的信息及消费情况。退房设计思想为:当输入房间号后到trueroom2控制块中查询该房间是否已经入住,到满足条件时,到insertroom对数据库插入退房时间,然后再到getall控制块查询:客户信息,房间入住,退房时间以及客户消费信息。最后到all.Jsp页面显示所有信息。然后结账,退房。request.setCharacterEncoding(utf-8); String roomno = request.getParameter(roomno);String leixing= request.getPar
9、ameter(leixing);try String sql = select * from room where statue=? and roomno=?; QueryRunner run = new QueryRunner(ds); String str = leixing, roomno ; List list = (List)run.query(sql, str, new BeanListHandler( room.class);ServletContext application1 = getServletContext(); application1.setAttribute(r
10、oomno, roomno); application1.setAttribute(leixing, leixing); RequestDispatcher rs = request.getRequestDispatcher(/servlet/insertroom); try rs.forward(request, response);return; catch (Exception e) catch (SQLException e) e.printStackTrace();Insertroom的实现如下:request.setCharacterEncoding(utf-8); Servlet
11、Context application = getServletContext(); String leixing = (String) application.getAttribute(leixing); String roomno= (String) application.getAttribute(roomno); System.out.println(roomno); System.out.println(leixing); int i=Integer.parseInt(leixing); int result = 0; String message = null; String sq
12、l=null; try switch(i) case 0:sql=update room set statue=1 where roomno=?;break; case 1:sql=update room set statue=2,startdate=now() where roomno=?;break; case 2:sql=update room set enddate=now() where roomno=?;break; String sr = roomno; QueryRunner run = new QueryRunner(ds); result = run.update(sql,
13、 sr); if(i=1) sql=update client set yuding=2 where roomnumber=?; QueryRunner run1 = new QueryRunner(ds); run1.update(sql, sr); if(i=2)ServletContext application1 = getServletContext(); application1.setAttribute(roomno, roomno); RequestDispatcher rs = request.getRequestDispatcher(/servlet/seachall);
14、try rs.forward(request, response); return; catch (Exception e) elseif (result = 1) message = 操作成功!; else message = 操作失败!; request.setAttribute(message, message); request.getRequestDispatcher(/addResult.jsp).forward(request, response); catch (SQLException e) e.printStackTrace(); Seachall的实现如下:request
15、.setCharacterEncoding(utf-8); ServletContext application = getServletContext(); String roomno = (String) application.getAttribute(roomno); String consumerno = 123456; DataSource ds = null; String sql = null; try sql = select clientname,sex,shenfenzheng from client where yuding=2 and roomnumber=?; Qu
16、eryRunner run = new QueryRunner(ds); String str = roomno ; List list = (List) run.query(sql, str, new BeanListHandler( dbcommen.class); dbcommen bl = (dbcommen) list.get(0); request.setAttribute(bl, bl); sql = select roomno,startdate,enddate,timestampdiff(day,startdate,enddate) as day from room wher
17、e statue=2 and roomno=?;List list1 = (List) run.query(sql, str, new BeanListHandler(room.class); room room1 = (room) list1.get(0); request.setAttribute(room1, room1); sql = select * from consumer where consumerno=?; String str1 = consumerno ; List list2 = (List) run.query(sql, str1, new BeanListHand
18、ler(consumer.class);consumer cm = (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 (SQLException e) e.printStackTrace();4.3查看房间查询的思想为:先到g
19、etallroom控制块对条件进行处理,将满足条件的房间号的数组放到room.Class中,再到Roomseach.Jsp页面将数组显示出来。try sql = select roomno,statue,startdate,enddate from room; QueryRunner run = new QueryRunner(ds);List list = (List) run.query(sql, new BeanListHandler(room.class); request.setAttribute(list,list); request.getRequestDispatcher(/m
20、ain/roomseach.jsp).forward(request,response); catch (SQLException e) e.printStackTrace();5程序运行与调试5.1酒店入住页面图5-1 入住5.2退房5-2酒店退房管理5.3查询5-3住户查询页面6总结通过一段时间的设计与编写,该酒店管理系统终于有了一个比较完整的框架。现将心得体会总结如下:由于时间仓促,这暂时只是一个简单的管理系统,但从设计这个系统的过程中,我感受到了关于软件工程,数据库设计、商业管理等各方面知识在实际工作中的应用。在开发该系统过程中,我始终坚持以下四项原则,并朝相应目标靠拢: (1)实用为
21、主任何系统都应该以用户需求为最终目标,以方便用户为最高原则,同进要融入先进的管理经验与技巧。该系统努力根据用户的实际需求功能情况,度身订造一套先进的管理系统,并且将在统一的Windows NT/9X图形界面下提供各种实用功能,尽可能降低使用前的培训、实施和使用中的维护时间。力求满足现在及未来的各种需求,真正为管理及决策提供强有力的支持。(2)稳定可靠不论在软件设计还是硬件制造中,稳定都是压倒一切的。本管理系统通过选用先进的开发软件,成熟的网络结构及安全可靠的数据库,再配合硬件的优化选型,从而保证系统的可靠性与容错性。(3)先进灵活系统充分应用现有成熟的网络技术、软件开发技术,先进的客户/服务器
22、结构,及高性能的数据库,满足大型客户的日常运营、开展电子商务等的需要。同时用户可自行灵活设置参数和各种代码,适应自己的特殊需要。总体而言,国内酒店IT技术开发的现状是:1、需求不明确,使酒店项目工程性强,产品化不足,开发商的总体成本居高不下,研发缺乏原动力。2、没有行业统一标准,厂商各自为政,市场分化导致产品整合难度大。3、产品推广依赖行政手段和关系网,抑制了新技术的引进和技术的创新,不利于形成自己的产品特色和质量控制。4、国外优秀品牌的低价进入,垄断了国内高星级市场,开发商利润空间式微。参考文献1美Microsoft 公司. M icrosoft SQL Server2000 数据库编程.北京: 希望电子出版社, 2001 2 王珊,萨师煊.数据库系统概论M.第4版.北京:高等教育出版社20063 张海藩,软件工程导论M.第5版,北京,清华大学出版社20113 jsp基础教程: EB/OL 成绩评定成绩 教师签字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1