1、常州信息职业技术学院课程设计报告软件学院Java 程序设计 课程设计报告题目: 旅店管理系统 班级: 姓名: 学号: 年 月 日常州信息职业技术学院课程设计报告 目 录摘 要 I第 1 章 绪 论 .1第 2 章 系统功能介绍 22.1 系统功能总框图 .22.2 模块功能介绍 22.2.1 客户信息管理模块功能介绍 .22.2.2 房间信息管理 .32.2.3 开退房模块功能介绍 32.2.4 退房功能介绍 .3第 3 章 数据库设计 43.1 数据库需求分析 43.2 数据库表的设计 .4第 4 章 系统功能实现 64.1 管理员模块功能实现 64.1.1 管理员登陆 .64.1.2 管理
2、员添加功能实现 .74.1.3 管理员查询,修改,删除功能实现 .84.2 旅客管理模块功能实现 114.2.1 旅客查询 .114.2.2 旅客添加: .124.2.3 旅客修改: .124.2.3 旅客删除: .124.3 房间管理模块功能实现 134.3.1 GRUD 功能实现 .134.3.2 订房功能实现 .154.3.3 退房功能实现 .16结 论 17致 谢 18常州信息职业技术学院课程设计报告 摘 要随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信
3、息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。我们本次的 Java 课程设计的最终目标是实现一个旅店管理系统,因为 Java 是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用 Java 编程为我们本次程序的编写提供了方便。在设计中我们主
4、要进行了数据库及类的设计,把整系统分成了 14 个类和 2 个表。通过应用 swing、sql、 util 等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,连接到数据库后,向数据库发送 SQL 语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论、致谢、参考文献 7 大块。在绪论中介绍了本次课设选题的缘由及思想。系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。在数据库需求分析中详细说明了数据库的需求分析、概念设计及
5、表的设计。在系统功能实现中主要通过抓图来体现设计的结果。总之,我们的整体设计思想均在报告中体现。关键词: 旅店管理系统,Java 程序设计语言,数据库 .常州信息职业技术学院课程设计报告 第 1 章 绪论1第 1 章 绪 论随着信息的迅速发展,信息化管理已经引入并且应用到各行各业的管理领域中去,而一个大型的机电将管理信息化也是势在必行的,大量的客流量,同时还要存储各项业务的信息不断更换的客流信息,员工个人信息和工资发配等任务,若要时还是用人力管理不仅将会影响到盈利的同时无异于又给每一位员工带来了很大的工作量!酒店形态具有种种优点,但在目前状况下,它仍存在服务业企业所共有的落后的一面,如:不能有
6、效地、快速地服务于每个顾客,收款结算速度慢,容易出现服务不周,不易进行服务评价等。而且在酒店日常管理中,货物的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着酒店形态的高速发展,其经营管理也变的愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。而企业若想再激烈的市场经济中立足并胜出,就必须拥有一套完善并适应自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息,完善服务质量、提高经济效益、分析市场需求、制定服务计划和目标等管理目的。住房管理模块。此模块必须具有以下功能:登录管理:
7、只有在输入正确的户名和密码才可登录进入操作界面。房间信息的管理:可以对房间信息进行增添、删除、修改、查询功能。开房功能:记录住户信息,并把相应的房间状态改为“入住” 。退房:退房时算出总费用 (房间价格+ 加床价格) * 天数;退房成功后把相应的房间状态改为“空闲” ;更新用户消费总金额。预订房功能:提前预定房间,注意房间的状态,预定日期前还是可以由其他房客入住,预定房间到期时未入住的处理。2第 2 章 系统功能介绍2.1 系统功能总框图 旅店管理系统功能总框图,如图 2-1 所示。2.2 模块功能介绍2.2.1 客户信息管理模块功能介绍1. 客户登陆此模块主要是利用 MenuBar 添加菜单
8、条,利用 Menu 和 MenuItem 添加菜单和菜单的各个参数,通过事件 ActionEvent 可以实现进入各个模块如房间的添加、删除、修改、查询、房间状态的更改、退房结算、更改状态及住户信息、按日期、姓名查询入住记录的功能。旅店管理系统管理员旅客管理房间管理登录增删改查添加修改删除入住退房查询32.2.2 房间信息管理1. 房间添加此模块主要的实现功能:当有新的客户要看入住时,可以通过此功能实现,当数据库中存在其新信息,即成为旅店的一员。其中信息分别包括客户房号、姓名、性别。同时可有三项功能在此处实现,即添加、重置以及返回。2.房间修改此模块主要的实现功能对有信息更新的客户进行即时修改
9、,以随时更新客户在数据库中的信息。本模块通过房号确定客户,可对客户信息的姓名、性别、房号。此处可分别实现对该功能的修改、重置、返回。3.房间查询此模块主要可对所要了解的客户信息。即把客户的信息从数据库调出来,显示在该窗口中的文字区域。查询方式分别有按房号查询、按姓名查询,并可通过办理入相应的关键字,更加缩小查询范围。此处可实现查询和返回功能。4. 房间删除此模块可以删除一些不再使用本旅店的客户资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有两种删除途径,分别为按房号删除、按姓名删除,并可通过所输入的关键字尽快找到所要删除的资料。此处可分别实现对该功能的修改、重置、返回。2.2.3
10、开退房模块功能介绍开房:记录用户信息并将房间状态改为“入住” 。2.2.4 退房功能介绍退房:1.算出总费用2.判断当前退房的时间3.退房成功后把相应的房间该为“空闲4第 3 章 数据库设计3.1 数据库需求分析1. tb_user 表,即管理员表,记录了用户名和密码。2. tb_customer 表,即旅客表,记录了旅客的信息。3. tb_room 表,即房间表,记录了房间的信息。3.2 数据库表的设计1 tb_user 表表中记录了可以使管理员进入该系统的用户名及密码,如表 3-1 所示。4. 表 3-1 用户信息表字段名称 数据类型 长 度 备 注用户名 文 本 10密 码 文 本 15
11、2 tb_customer 表表中记录旅客信息,用于存下所有旅客的记录,如表 3-2 所示。5. 表 3-2 旅客管理表字段名称 数据类型 长 度 备 注Id Int 10用户名 文 本 15密码 文 本 15性别 文 本 15年龄 文 本 15电话 文 本 103 room 表表中记录了库内所有房间的所有资料,如表 3-3。6. 表 3-3 房间表字段名称 数据类型 长 度 备 注房间号 文 本 10价格 文 本 155Vip 文 本 15状态 文 本 15订房时间 文 本 15退房时间 文 本 106第 4 章 系统功能实现4.1 管理员模块功能实现4.1.1 管理员登陆此模块是整个系统最
12、主要的部分,管理员可以通过此模块实现进入其余各个模块。主要程序代码如下:String username = jTextField1.getText().trim(); /获取用户名输入框的信息,去白char pass = jPasswordField1.getPassword();String userpass = new String(pass);System.out.println(“gui 中输入的用户名“ + username + “t 密码是“ + userpass);udi = new UserDAOImp();boolean flag = udi.isExist(username
13、, userpass);if (flag) System.out.println(“gui 中找到 该用户“);/下一步/转到系统主界面去this.setVisible(false); /登录界面隐去/主界面要出来UserManaMainGUI maingui = new UserManaMainGUI();maingui.setjPanel1(false); /让表格的界面隐去maingui.setVisible(true); else System.out.println(“gui 中找到 没有该用户“); 74.1.2 管理员添加功能实现主要程序代码如下:c = new Customer
14、();cgui = new CustMainGUI();cdi = new CustomerDAOImp();String name = jTextField1.getText().trim(); String sex = jTextField2.getText().trim();String age = jTextField3.getText().trim();String tel = jTextField4.getText().trim();String number=“;String VIP=jTextField6.getText();c.setCustomername(name);c.
15、setCustomersex(sex);c.setCustomerage(age);c.setCustomertel(tel);c.setRoomnumber(number);c.setVIP(Integer.valueOf( VIP);if (cdi.insertCustomer(c) JOptionPane.showMessageDialog(this, “添加成功“);this.setVisible(false);cgui.setVisible(true); else JOptionPane.showMessageDialog(this, “添加失败“);84.1.3 管理员查询,修改,
16、删除功能实现主要程序代码如下:查询:udi = new UserDAOImp();/调用数据访问层的业务方法/查询所有方法List list = udi.selectAll();/对 list 进行遍历 JTable 显示在主界面上Iterator it = list.iterator();Object userdata = new Objectlist.size()5;int i = 0; /序号while (it.hasNext() User u = (User) it.next(); /用户 Useruserdatai = new Objectnew Integer(i + 1), u.
17、getUsername(), u.getUsersex(), u.getUserage(), u.getUsertel();i+;/新创建一个表格样式DefaultTableModel newmodel = new DefaultTableModel(userdata, new String“序号“, “姓名“, “性别“, “年龄“, “联系方式“);jTable1.setModel(newmodel);jPanel1.setVisible(true);9修改:System.out.println(“执行操作“);if (evt.getSource() = jButton2) System.
18、out.println(“执行添加操作“);this.setVisible(false);AddUserGUI addgui = new AddUserGUI();addgui.setVisible(true);if (evt.getSource() = jButton3) System.out.println(“执行修改操作“);int row = jTable1.getSelectedRow();List list = (List) udi.selectAll();u = (User) list.get(row);u.setUsername(jTextField1.getText();u.
19、setUserpass(jPasswordField1.getText();u.setUsersex(jTextField2.getText();u.setUserage(jTextField3.getText();u.setUsertel(jTextField4.getText();if (udi.modifyUserInfo(u.getUid(), u) JOptionPane.showMessageDialog(this, “修改成功“); else JOptionPane.showMessageDialog(this, “修改失败“);if (evt.getSource() = jBu
20、tton4) System.out.println(“执行删除操作“);int row = jTable1.getSelectedRow();List list = (List) udi.selectAll();u = (User) list.get(row);if (udi.deleteUserInfo(u.getUid() JOptionPane.showMessageDialog(this, “删除成功“); else JOptionPane.showMessageDialog(this, “删除失败“);删除:System.out.println(“执行操作“);if (evt.get
21、Source() = jButton2) System.out.println(“执行添加操作“);this.setVisible(false);AddUserGUI addgui = new AddUserGUI();10addgui.setVisible(true);if (evt.getSource() = jButton3) System.out.println(“执行修改操作“);int row = jTable1.getSelectedRow();List list = (List) udi.selectAll();u = (User) list.get(row);u.setUse
22、rname(jTextField1.getText();u.setUserpass(jPasswordField1.getText();u.setUsersex(jTextField2.getText();u.setUserage(jTextField3.getText();u.setUsertel(jTextField4.getText();if (udi.modifyUserInfo(u.getUid(), u) JOptionPane.showMessageDialog(this, “修改成功“); else JOptionPane.showMessageDialog(this, “修改
23、失败“);if (evt.getSource() = jButton4) System.out.println(“执行删除操作“);int row = jTable1.getSelectedRow();List list = (List) udi.selectAll();u = (User) list.get(row);if (udi.deleteUserInfo(u.getUid() JOptionPane.showMessageDialog(this, “删除成功“); else JOptionPane.showMessageDialog(this, “删除失败“);114.2 旅客管理模
24、块功能实现4.2.1 旅客查询主要程序代码如下:cdi = new CustomerDAOImp();/调用数据访问层的业务方法/查询所有方法List list = cdi.selectAll();/对 list 进行遍历 JTable 显示在主界面上Iterator it = list.iterator();Object userdata = new Objectlist.size()7;int i = 0; /序号while (it.hasNext() Customer c = (Customer) it.next(); /用户 Useruserdatai = new Objectnew
25、Integer(i + 1), c.getCustomername(), c.getCustomersex(), c.getCustomerage(), c.getCustomertel(), c.getRoomnumber(), c.getVIP();i+;/新创建一个表格样式DefaultTableModel newmodel = new DefaultTableModel(userdata, new String“序号“, “姓名“, “性别“, “年龄“, “电话“, “房间号“, “VIP“);jTable1.setModel(newmodel);jPanel1.setVisible
26、(true);124.2.2 旅客添加:主要代码如下:cdi = new CustomerDAOImp();c = new Customer();acg = new AddCustGUI();System.out.println(“执行操作“);if (evt.getSource() = jButton2) System.out.println(“执行添加操作“);this.setVisible(false);acg.setVisible(true);4.2.3 旅客修改:主要代码如下:cdi = new CustomerDAOImp();c = new Customer();acg = ne
27、w AddCustGUI();if (evt.getSource() = jButton3) System.out.println(“执行修改操作“);int row = jTable1.getSelectedRow();List list = (List) cdi.selectAll();c = (Customer) list.get(row);c.setCustomername(jTextField1.getText();c.setCustomersex(jTextField2.getText();c.setCustomerage(jTextField3.getText();c.setCu
28、stomertel(jTextField4.getText();c.setRoomnumber(jTextField5.getText();c.setVIP(Integer.valueOf(jTextField6.getText();if (cdi.modifyCustomerInfo(c.getCid(), c) JOptionPane.showMessageDialog(this, “修改成功“); else JOptionPane.showMessageDialog(this, “修改失败“);4.2.3 旅客删除:主要代码如下:13if (evt.getSource() = jButt
29、on4) System.out.println(“执行删除操作“);int row = jTable1.getSelectedRow();List list = (List) cdi.selectAll();c = (Customer) list.get(row);if (cdi.deleteCustomerInfo(c.getCid() JOptionPane.showMessageDialog(this, “删除成功“); else JOptionPane.showMessageDialog(this, “删除失败“);4.3 房间管理模块功能实现4.3.1 GRUD 功能实现主要代码如下
30、:r = new Room();rdi = new RoomDAOImp();System.out.println(“执行操作“);if (evt.getSource() = jButton2) System.out.println(“执行添加操作“);r.setMoney(jTextField2.getText();r.setVip(Integer.valueOf(jTextField3.getText();14r.setState(jTextField4.getText();r.setOrdertime(jTextField5.getText();r.setBacktime(jTextFi
31、eld6.getText();if (rdi.insertRoom(r) JOptionPane.showMessageDialog(this, “添加成功“); else JOptionPane.showMessageDialog(this, “添加失败“);if (evt.getSource() = jButton3) System.out.println(“执行修改操作“);int row = jTable1.getSelectedRow();List list = (List) rdi.selectAll();r = (Room) list.get(row);r.setMoney(jT
32、extField2.getText();r.setVip(Integer.valueOf(jTextField3.getText();r.setState(jTextField4.getText();if (rdi.modifyRoomInfo(r.getRoomnumber(), r) JOptionPane.showMessageDialog(this, “修改成功“); else JOptionPane.showMessageDialog(this, “修改失败“);if (evt.getSource() = jButton4) System.out.println(“执行删除操作“);
33、int row = jTable1.getSelectedRow();List list = (List) rdi.selectAll();r = (Room) list.get(row);if (rdi.deleteRoomInfo(r.getRoomnumber() JOptionPane.showMessageDialog(this, “删除成功“); else JOptionPane.showMessageDialog(this, “删除失败“);154.3.2 订房功能实现主要代码如下:r = new Room();cdi = new CustomerDAOImp();int row
34、 = jTable1.getSelectedRow();List list = (List) rdi.selectAll();r = (Room) list.get(row);if (“入住“.equals(r.getState() JOptionPane.showMessageDialog(this, “房间已被入住!“); else c = cdi.getCustomerInfo(jTextField8.getText();if (c.getCustomername() != null) System.out.println(“该房间可入住“);r.setState(“入住“);r.set
35、Ordertime(jTextField5.getText().trim();r.setBacktime(jTextField6.getText().trim();rdi.modifyRoomInfo(r.getRoomnumber(), r);c.setRoomnumber(jTextField1.getText();if (cdi.modifyCustomerInfo(c.getCid(), c) JOptionPane.showMessageDialog(this, “订房成功“); else JOptionPane.showMessageDialog(this, “操作失败“); el
36、se JOptionPane.showMessageDialog(this, “无该人,无法订房“);164.3.3 退房功能实现主要代码如下:r = new Room();cdi = new CustomerDAOImp();c = cdi.getCustomerInfo(jTextField7.getText();if (c.getCustomername() = null) JOptionPane.showConfirmDialog(this, “无该人“); else if (“空闲“.equals(r.getState() JOptionPane.showMessageDialog(
37、this, “房间空闲,操作失败!“); else System.out.println(“正在退房“);int row = jTable1.getSelectedRow();List list = (List) rdi.selectAll();r = (Room) list.get(row);r.setState(“空闲“);r.setOrdertime(“);r.setBacktime(“);rdi.modifyRoomInfo(r.getRoomnumber(), r);c = cdi.getCustomerInfo(jTextField7.getText();c.setRoomnumb
38、er(“);if (cdi.modifyCustomerInfo(c.getCid(), c) JOptionPane.showMessageDialog(this, “成功退房“); else JOptionPane.showMessageDialog(this, “操作失败“);17结 论两周的 java 课程设计已经结束了。虽然只是短短的两周时间,可是在这两周我们把课堂里老师讲的知识用到实践中去了,感到非常高兴。这次的课程设计可以看作是一次理论与实践相结合的桥梁,通过这次的课程设计,我们学习到了许多的知识,也认识到了自己目前的不足,那就是缺乏相应的知识与经验,所以在运用和操作方面都不是那
39、么的得心应手。但是,经过这段时间对相关书籍的阅读和分析,我们组顺利的完成了设计,我还明白了在编写程序的时候,应该尽量使界面简洁大方,布局统一。变量类型的定义,一定要够用就好,这样程序就可以尽可能的减少对系统资源的占用。在设计时也免不了存在着一些不足,所以在今后的学习中我们会努力取得更大的进步,对于我们不足的地方希望老师能够及时给予批评,以便我们在今后的学习或工作中能够及时的改正。总之,这次课程设计为我提供了与众不同的学习方法,在书本中面对现实,为我们将来在社会上立足提供了良好的前提。课程设计虽然结束了,但我感觉要想把课程设计做好,那必须把基础知识学透彻,当然更离不开团体的力量,因为团体的力量是
40、无穷的。人生有数,学无止境,学习生活是无穷尽的,只有掌握更多的、更新的知识才能使自己始终立于不败之地。如果只为现在所取得的成绩而沉浸于喜悦、骄傲之中的话,那么,我想我们不会前进,只能停留在原来的地方,甚至还会倒退。所以我们应该从两周的课程设计中所暴露出的问题入手,不断完善自己的欠缺和不足。相信此次课程设计为我们以后继续从事计算机工作打下了扎实的基础,也明确了以后的学习方向。虽然两周的时间很短暂,但是收获很大! 18致 谢历时二个星期的课程设计已经结束,我通用不懈的努力终于顺利地完成了课程设计的任务。在喜悦的同时,我也要向曾经在设计过程中帮助过我的老师和同学表示感谢!感谢学校提供给我们这次课程设计机会,使我们有了良好的环境学习 Java 程序设计和数据库知识,使我能够把学到的知识运用到实践中。二周的实训期间我在实训中遇到了许多困难,当被这些问题困扰的时候,向老师和同学寻求帮助,老师很认真的为我解答并告诉我是哪里出了问题导致了错误.在这段时,同学们也给了我不少的帮助,虽然大家都很忙,但是当我有问题时,大家还是细心地帮我解决所遇到的问题,给予我及时的帮助,在这里非常感谢所有的同学们。.