《Java程序设计课程设计旅馆管理系统.doc》由会员分享,可在线阅读,更多相关《Java程序设计课程设计旅馆管理系统.doc(48页珍藏版)》请在三一办公上搜索。
1、课 程 设 计课程设计题目: Java程序设计课程设计 旅馆管理系统 系 别 信息工程系 班级 计本061 学生姓名 学号 指导教师 职称 助教、副教授 起止日期:2008 年 12 月1 日起至 2008年12月 5 日止1.设计的原始资料及依据通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。2设计的主要内容及要求第五组设计题目:旅馆管理系统需要完成的功能: 客房登记模块: 可以实现添加客户的基本信息功能。 客房预定管理模块: 可以实现取消预定和更改预定功能。 退房管理和服务费用模块:可以
2、实现计算客户消费信息和录入客户服务功能。 客户管理模块:可以查询客户信息和服务信息情况。 房间管理模块:可以实现房价调整、查询空房和房价情况。 服务管理和顾客数目统计模块:可以实现服务价格调整、查询服务和统计顾客数目。3.对设计说明书撰写内容、格式、字数的要求 学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。 装订格式封面、任务书、成绩评审意见表、摘要和关键词、目录、正文、结论、致谢、参考文献。 课程设计说明书(论文)是体现和总结课程设计成
3、果的载体,一般不应少于3000字。打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,三级节标题采用黑体小四号字,表题与图题采用宋体五号字。4.设计完成后应提交成果的种类、数量、质量等方面的要求 课程设计任务书 课程设计报告 设计成品(光盘)5.时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天(12月1日)查阅资料,充分解读题目内容,小组分工,确定每个人的具体任务。系统分析设计,包括数据库设计及登陆界面的实现等。1天2第2天(12月2日)编制程序,单元测试。1天3第3天(12月3日
4、)编制程序,单元测试。1天4第4天(12月4日)程序整合,综合调试。1天5第5天(12月5日)检查程序,撰写课程设计报告,评定成绩。1天6.主要参考资料(文献)1 耿祥义.JAVA2 实用教程.北京:清华大学出版社,20062 朱仲杰.JAVA2 全方位学习.北京:机械工业出版社,2006 3 张思民.JAVA程序设计实践教程.北京:清华大学出版社,20064 汤一平.Java 语言程序设计.北京:科学出版社,20065 刘艺.Java 程序设计大学教程. 北京:机械工业出版社,20066 耿祥义.Java课程设计.北京:清华大学出版社,20037 Sharon Zakhour. Java教程
5、. 北京:人民邮电出版社,2007沈 阳 工 程 学 院 面向对象程序设计 课程设计成绩评定表系(部):信息工程系 班级: 计本061 学生姓名: 刘根虎、都子卿、吴长鑫、黄桂声 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工
6、整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为
7、人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对旅馆进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提旅馆管理的效率,也是旅馆的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套旅馆管理系统已成为很有必要的事情。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JA
8、VA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现旅馆管理系统的全部过程。本次课程设计是配合JAVA程序设计课程,帮助学生深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。本次课程设计主要是用JAVA实现旅馆管理系统,其系统主要完成以下功能模块: 客房登记模块: 可以实现添加客户的基本信息功能;客房预定管理模块: 可以实现取消预定
9、和更改预定功能;退房管理和服务费用模块:可以实现计算客户消费信息和录入客户服务功能;客户管理模块:可以查询客户信息和服务信息情况;房间管理模块:可以实现房价调整、查询空房和房价情况;服务管理和顾客数目统计模块:可以实现服务价格调整、查询服务和统计顾客数目。关键词:旅馆管理系统,客户管理,客房管理,JAVA目 录摘 要I第1章 绪 论- 1 -第2章 系统功能介绍- 2 -2.1系统功能总框图- 2 -2.2 功能模块介绍- 2 -2.3 组内任务分工- 3 -第3章 数据库设计- 5 -3.1 数据库需求分析- 5 -3.2 数据库表设计- 5 -第4章 具体功能实现- 7 -4.1组员介绍视
10、频- 7 -4.1.1组员介绍视频介绍- 7 -4.1.2设计代码- 7 -4.2 系统登陆界面- 10 -4.2.1系统登陆界面介绍- 10 -4.2.2设计代码- 11 -4.3系统界面设计- 15 -4.3.1系统界面设计介绍- 15 -4.3.2设计代码- 15 -4.4客房登记功能模块- 24 -4.4.1客房登记功能模块介绍- 24 -4.4.2设计代码- 24 -4.5客房预定功能模块- 29 -4.5.1客房预定功能模块介绍- 29 -4.5.2设计代码- 29 -4.6退房和服务管理模块- 32 -4.6.1退房和服务管理模块功能介绍- 32 -4.6.2设计代码- 32 -
11、4.7 客户管理模块- 35 -4.7.1 客房管理模块功能介绍- 35 -4.7.2 设计代码- 36 -4.8 房间管理模块- 38 -4.8.1 房间管理模块功能介绍- 38 -4.8.2 设计代码- 38 -结论- 40 -致谢- 41 -参考文献- 42 - 第1章 绪论世界的发展,社会的进步,人们的物质生活和精神生活都得到了很大的飞跃,人们以前的意识里就是所谓的人工管理。可是人类在进步、国家在进步、世界在进步,那么必然会带来新的产物,由前一个阶段向后一阶段过度。随着电子电子计算机技术的进步,为各行各业的自动化管理打开了方便之门。在新的条件下,有必要实现旅馆的自动化管理,提高旅馆工作
12、人员的效率。本系统从对旅馆的核心业务客户的管理出发,着眼于为旅馆管理创造自动化的办公环境而开发 在计算机飞速发展的今天,将计算机这一信息处理利器应用于旅馆的日常管理已是势必所然,而且这也将为旅馆管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为旅馆的飞速发展提供无限潜力。采用计算机管理信息系统已成为企业、旅馆管理科学化和现代化的重要标志,它给旅馆管理带来了明显的经济效益和社会效益。主要体现在:极大的提高了管理人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。减少的出错率,更大程度避免了不必要的误差,使旅馆管理正规化、标准化、社会化。 基于旅馆管理的全面自动化,可以减少
13、客房管理、客户管理及旅馆服务管理中的漏洞,可以节约不少管理开支,增加企业收入。这样可使旅馆有更大的发展空间,被人们和社会所认同,在社会上有它的位置和地位。对于客房管理的操作自动化和信息化,全面提高了公司管理的水平,让管理人员很容易的实现客房的查询和管理。对于客户的管理,更明确和准确化,既保证了客户的安全,又利于管理者进行统计和查询。对于旅馆服务管理,很方便的提供客户必要的服务,让顾客得到满足。具体信息的处理有强大的数据库做后盾,它里面保存大量且重要的信息,实现了旅馆管理的数据化,因为现在可以说是数据的时代,其实就是所谓的信息时代。 随着我国改革开放的不断深入,经济飞速的发展,旅馆要想生存、发展
14、,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,旅馆管理的全面自动化、信息化则是其中极其重要的部分。为了旅馆管理自动化的步伐,提高旅馆管理业务处理效率,建旅馆管理系统已变得十分重要。旅馆管理已经成为现在的发展趋势,目前为止,旅馆采用自动化管理的很少,还有大部分采用人工管理,不过就是比较正规化,改善了以前的人工管理的部分缺点。可是在很大程度上并没有解决问题,因为社会目前的发展对它们的要求仅限于此,但是就目前的社会发展趋势看,社会在不段的发展,而且向全面自动话靠拢,那么旅馆管理系统就将成为一大亮点,是社会发展的必然产物。因此开发一个标准化的旅馆管理系统是很有必要的,而且JAVA
15、是一种面向对象的、无平台的编程语言,具有很大的发展空间,用它编写旅馆管理系统可以更体现出旅馆管理的优势。 第2章 系统功能介绍2.1系统功能总框图 经过需求分析和系统的概要设计,得到系统功能总框图,如图2.1所示。旅馆管理系统客房登记退房和服务客户管理服务信息查询客户信息查询服务录入服务更改客户退房客房预定更改预定取消预定房间管理空房查询房价调整图2.1 旅馆管理系统总体结构框图2.2 功能模块介绍在旅馆管理系统中管理员先通过,登陆界面进入系统。首先管理员需要录入客户的基本信息,包括身份证号、姓名、电话、房间号、预定日期、逗留天数等,并将这些数据通过JAVA连接到数据库,等待其他的功能使用。然
16、后就是预定的设置,在预定设置里包括取消预定和更改预定,管理员根据客户的不同需求,对客户的预定进行设置。下来就是录入客户的服务和退房处理,录入客户服务时是根据客户的房间号,进行处理的,在录入时,会对数据库做相应的改动;退房处理是根据客户住的房间类型、客户的服务和逗留的天数来确定的。客户的管理,是为了更方便的管理客户,它包括客户信息的查询(基于姓名)、客户信息的查询(基于房间号)和服务的查询,完成它们都需要调用相应的数据库,针对自己的查询的需要设计对应的JAVA语句。房间管理是为了了解房间的情况,有助于让管理员妥善的为客户安排房间,它包括房间查看、空房查询、空客房查询、空豪华间查询、房价查询和房价
17、的调整,房间的查看是为了总体查看现在有多少房间被用;空房查询是细化的查看房间有多少被用,都是那些房间被占;房间更改是根据不同的需要更改房价,以达到客户的需求。客户数目统计,它是按客户来自不同国家进行统计的,这样可以分析,现在有那些国家对旅馆的需求大,没需求的国家又是为什么,进行长时间的统计,在根据本旅馆自身的问题,得出解决的办法,最后就是退出系统。2.3 组内任务分工 组员们经过商量后,得到小组任务分工情况表,如表2-1所示。表2-1 小组任务分工情况表组员具 体 任 务 分 工雷林整体设计、数据库创建、登陆界面和背景音乐、房间管理模块金鑫主界面设计,服务管理模块王维为视频制作,客房管理模块谢
18、阳客户登记、预定设置和退房管理模块 第3章 数据库设计3.1 数据库需求分析需求分析简单地说就是分析用户的需求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。本系统的数据库需求分析应该分为六部分:客户信息部分、房间信息部分、房间类型部分、客房服务部分、客户登记部分和转化部分。通过调查人们的基本的信息,综合分析后,选出有代表性的作为客户信息部分;房间用那种方式好管理,主要采用的方式,将分析出房间信息部门;而现在的房间都有那些类型,包括什么部分,各类型的房间需配备那些设备,价格是多少,综合分析后得出房间类型
19、部分;根据人们现在的不同需要,调查那些服务是人们必须有的,而且是人们想有的,从而得到客房服务部门;客户要进行房间的结算就必须由管理员进行必要的登记,在登记的基础上分析出客户主要的消费方式,综合得到客户登记部分和转化部分。3.2 数据库表设计针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下七张表格,分别是管理员密码表、客户信息表,房间信息表,房间类型表,客房服务表,客户登记表和转化表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。表定义说明如下:表3-1 管理员密码表字段名称数据类型长度备注usernamenchar10passwordnch
20、ar6表3-2 客户信息表字段名称数据类型长度备注GuestIdchar18取0-9或xGuestNamechar30GuestPhonechar11取0-9GuestCodezipchar6取0-9GuestCountrychar12表3-3房间信息表字段名称数据类型长度备注RoomNochar6RoomPositionchar5RoomTypechar2default DXRoomStatechar2default DX表3-4 房间类型信息表字段名称数据类型长度备注RoomTypechar2default DXRoomPricefloatRoomPrice=119RoomEquipmen
21、tschar400表3-5 服务信息表字段名称数据类型长度备注ServerIdchar2取0-9ServerName char60ServerPricefloat8=ServerPrice 表3-6 客户登记表字段名称数据类型长度备注GuestIdchar18取0-9或xRoomNochar6RoomTypechar2AtDate char10MM/DD/YYFromDatechar10MM/DD/YYToDate char10MM/DD/YYDaysintroomcostfloatservercostfloattotalcostfloat表3-7 转化信息表字段名称数据类型长度备注Guest
22、Id char18取0-9或xServerIdchar2取0-9AtDatechar10MM/DD/YY其中还将客户信息表,房间信息表,服务信息表,客户登记表,转化信息表进行关联。第4章 具体功能实现4.1组员介绍视频4.1.1组员介绍视频介绍在开始的时候会播放一段视频,主要是介绍组员的信息和组员所负责的模块,先给人一清晰的介绍。在实现的过程中,先是选取对应的视频文件,视频在播放的过程中,不仅可以前进后退,而且可以暂停。因此得到组员介绍视频图,如图4.1所示。图 4.1组员介绍视频图4.1.2设计代码import java.awt.*;import java.awt.event.*;impor
23、t java.io.*;import .*;import javax.swing.*;import javax.media.*;/ 视频播放程序public class VideoPlayDemo extends JFrame private Player player; / 播放器对象private Component visualMedia; / 视频显示组件private Component mediaControl; / 视频播放控制组件private Container container; / 主容器private File mediaFile; /媒体文件private URL
24、fileURL; /媒体文件URL地址 public VideoPlayDemo() / 构造函数super(视频播放程序); /调用父类构造函数container = getContentPane(); /得到窗口容器JToolBar toobar = new JToolBar(); /实例化工具栏JButton openFile = new JButton(打开媒体文件); /实例化按钮toobar.add(openFile); /增加按钮到工具栏JButton openURL = new JButton(打开网络地址);setLocation (d.width / 2 - getWidt
25、h() / 2, d.height / 2 - getHeight() / 2); jLabel1 = new JLabel(); jLabel2 = new JLabel(); admin_userid = new JTextField(); admin_password = new JPasswordField();toobar.add(openURL);container.add(toobar, BorderLayout.NORTH); /设置工具栏openFile.addActionListener(new ActionListener() /打开文件按钮事件处理public void
26、 actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); /实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);/设置文件打开模式为仅打开文件int result = fileChooser.showOpenDialog(VideoPlayDemo.this);/显示对话框if (result = JFileChooser.APPROVE_OPTION) /得到用户行为mediaFile = fileChoo
27、ser.getSelectedFile(); /得到选择的文件if (mediaFile != null) try fileURL = mediaFile.toURL(); /得到文件的URL地址 catch (MalformedURLException ex) ex.printStackTrace(); /输出错误信息showMessage(打开错误); /显示错误信息startPlayer(fileURL.toString(); /开始播放打开的文件);openURL.addActionListener(new ActionListener() /打开URL按钮事件处理public voi
28、d actionPerformed(ActionEvent event) String addressName =JOptionPane.showInputDialog(VideoPlayDemo.this, 输入URL地址);if (addressName != null)startPlayer(addressName); /开始播放打开的URL);Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);setSize(300, 200); /设置窗口大小setVisible(true); /设置窗口为可视setDefaultC
29、loseOperation(JFrame.EXIT_ON_CLOSE); /关闭窗口时退出程序/初始化播放器public void startPlayer(String mediaLocation) if (player != null)/如果播放器非空则移去先前的播放器组件if (visualMedia != null)container.remove(visualMedia); /如果对象visualMedia非空则移去if (mediaControl != null) container.remove(mediaControl); /如果对象mediaControl非空则移去player
30、.close(); /关闭播放器MediaLocator mediaLocator = new MediaLocator(mediaLocation); /媒体定位器if (mediaLocator = null) showMessage(打开文件错误); /显示错误信息return;try player = Manager.createPlayer(mediaLocator); /得到播放器实例player.addControllerListener(new PlayerEventHandler(); /增加播放控制器player.realize(); catch (Exception ex
31、) ex.printStackTrace();showMessage(打开错误); /显示错误信息/取得媒体组件public void getMediaComponents() visualMedia = player.getVisualComponent(); /取得视频显示组件/如果对象visualMedia非空则加入到窗口内容窗格if (visualMedia != null) container.add(visualMedia, BorderLayout.CENTER);pack();mediaControl = player.getControlPanelComponent(); /
32、取得播放控制组件/如果对象visualMedia非空则加入到窗口内容窗格if (mediaControl != null)container.add(mediaControl, BorderLayout.SOUTH);/播放器事件处理private class PlayerEventHandler extends ControllerAdapter public void realizeComplete(RealizeCompleteEvent realizeDoneEvent) player.prefetch(); /预取媒体数据/完成预取媒体数据后,开始播放媒体public void pr
33、efetchComplete(PrefetchCompleteEvent prefetchDoneEvent) getMediaComponents();validate();player.start(); /开始播放媒体/如果媒体播放完毕,重新设置媒体时间并停止媒体播放器public void endOfMedia(EndOfMediaEvent mediaEndEvent) player.setMediaTime(new Time(0); /重新设置媒体时间player.stop(); / 停止媒体播放public void showMessage(String s) JOptionPan
34、e.showMessageDialog(this, s);/显示提示信息public static void main(String args) new VideoPlayDemo();4.2 系统登陆界面4.2.1系统登陆界面介绍视频播放完成后,系统自动弹出系统管理登陆界面。它需要管理员输入正确的用户名和密码,如果密码错误,会进行必要的提示,当然如果密码正确,会进入顺利的进入系统,在此,用户名和密码都存在数据库中,在你输入用户名和密码时,程序会连接到数据库,将你输入的信息和数据库中的信息比较。因此得到旅馆管理登陆界面图,如图4.2所示。 图4.2旅馆管理登陆界面图4.2.2设计代码impor
35、t java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;import javax.swing.table.*;public class Login_1 extends JFrame private Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); / Determine users screen size /* Creates new form NewAccount */ public Login_1() initComponent
36、s(); private void initComponents() setResizable (false); setLocation (d.width / 2 - getWidth() / 2, d.height / 2 - getHeight() / 2); jLabel1 = new JLabel(); jLabel2 = new JLabel(); admin_userid = new JTextField(); admin_password = new JPasswordField(); btnOk = new JButton(); /new ImageIcon(img/login
37、.jpg) Icon login = new ImageIcon(img/login.jpg); JLabel computer = new JLabel(login); Icon tabbed = new ImageIcon(img/admin.gif); JLabel tab = new JLabel(tabbed); getContentPane().setLayout(null); setTitle(旅店管理登录界面); getContentPane().add(computer); computer.setBounds(40, 0, 273, 216); /Admin Usernam
38、e label jLabel1.setForeground (Color.black); jLabel1.setHorizontalAlignment(SwingConstants.RIGHT); jLabel1.setFont(new Font(Tahoma, 1, 11); jLabel1.setText(Username :); getContentPane().add(jLabel1); jLabel1.setBounds(50, 265, 75, 25); /Admin Password label jLabel2.setForeground (Color.black); jLabe
39、l2.setHorizontalAlignment(SwingConstants.RIGHT); jLabel2.setFont(new Font(Tahoma, 1, 11); jLabel2.setText(Password :); getContentPane().add(jLabel2); jLabel2.setBounds(50, 300, 75, 25); getContentPane().add(admin_userid); getContentPane().add(admin_password); admin_userid.setBounds(130, 265, 150, 25
40、); admin_password.setBounds(130, 300, 150, 25); getContentPane().setBackground(Color.white); getContentPane().add(btnOk); getContentPane().add(tab); tab.setBounds(35, 225, 280,110); /Login button btnOk.setText(LOGIN); btnOk.setFont(new Font(Tahoma, 1, 9); btnOk.setBackground(Color.white); btnOk.setBounds (236, 336, 70, 25); btnOk.setToolTipText(Click to login);btnOk.addActionListener(new ActionListener() public void actionPerf