酒店管理系统文档参考模板

上传人:沈*** 文档编号:92062522 上传时间:2022-05-18 格式:DOC 页数:34 大小:682.50KB
返回 下载 相关 举报
酒店管理系统文档参考模板_第1页
第1页 / 共34页
酒店管理系统文档参考模板_第2页
第2页 / 共34页
酒店管理系统文档参考模板_第3页
第3页 / 共34页
点击查看更多>>
资源描述
摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对旅店进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提旅店管理的效率,也是旅店的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套旅店管理系统已成为很有必要的事情。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现旅店管理系统的全部过程。本次课程设计是配合JAVA程序设计课程,帮助学生深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。本次课程设计主要是用JAVA实现旅店管理系统,其系统主要完成以下功能模块: 客房登记模块: 可以实现添加客户的基本信息功能;客房预定管理模块: 可以实现取消预定和更改预定功能;退房管理和服务费用模块:可以实现计算客户消费信息和录入客户服务功能;客户管理模块:可以查询客户信息和服务信息情况;房间管理模块:可以实现房价调整、查询空房和房价情况;服务管理和顾客数目统计模块:可以实现服务价格调整、查询服务和统计顾客数目。关键词:旅店管理系统,Access数据库,客户管理,客房管理,JAVA / 34目 录摘 要I第1章 绪论1第2章 系统功能介绍22.1系统功能总框图22.2 功能模块介绍22.3 组内任务分工3第3章 数据库设计43.1 数据库需求分析43.2 数据库表设计4第4章 具体功能实现64.1 系统登陆界面64.2 系统界面设计84.3 客房登记功能模块104.4 客房预定功能模块124.5 退房和服务管理模块144.6 客户管理模块194.7 房间管理模块234.8 顾客数目统计模块25结 论29致 谢30参考文献31第1章 绪论世界的发展,社会的进步,人们的物质生活和精神生活都得到了很大的飞跃,人们以前的意识里就是所谓的人工管理。可是人类在进步、国家在进步、世界在进步,那么必然会带来新的产物,由前一个阶段向后一阶段过度。随着电子电子计算机技术的进步,为各行各业的自动化管理打开了方便之门。在新的条件下,有必要实现旅店的自动化管理,提高旅店工作人员的效率。本系统从对旅店的核心业务客户的管理出发,着眼于为旅店管理创造自动化的办公环境而开发 在计算机飞速发展的今天,将计算机这一信息处理利器应用于旅店的日常管理已是势必所然,而且这也将为旅店管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为旅店的飞速发展提供无限潜力。采用计算机管理信息系统已成为企业、旅店管理科学化和现代化的重要标志,它给旅店管理带来了明显的经济效益和社会效益。主要体现在:极大的提高了管理人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。减少的出错率,更大程度避免了不必要的误差,使旅店管理正规化、标准化、社会化。 基于旅店管理的全面自动化,可以减少客房管理、客户管理及旅店服务管理中的漏洞,可以节约不少管理开支,增加企业收入。这样可使旅店有更大的发展空间,被人们和社会所认同,在社会上有它的位置和地位。对于客房管理的操作自动化和信息化,全面提高了公司管理的水平,让管理人员很容易的实现客房的查询和管理。对于客户的管理,更明确和准确化,既保证了客户的安全,又利于管理者进行统计和查询。对于旅店服务管理,很方便的提供客户必要的服务,让顾客得到满足。具体信息的处理有强大的数据库做后盾,它里面保存大量且重要的信息,实现了旅店管理的数据化,因为现在可以说是数据的时代,其实就是所谓的信息时代。 随着我国改革开放的不断深入,经济飞速的发展,旅店要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,旅店管理的全面自动化、信息化则是其中极其重要的部分。为了旅店管理自动化的步伐,提高旅店管理业务处理效率,建旅店管理系统已变得十分重要。旅店管理已经成为现在的发展趋势,目前为止,旅店采用自动化管理的很少,还有大部分采用人工管理,不过就是比较正规化,改善了以前的人工管理的部分缺点。可是在很大程度上并没有解决问题,因为社会目前的发展对它们的要求仅限于此,但是就目前的社会发展趋势看,社会在不段的发展,而且向全面自动话靠拢,那么旅店管理系统就将成为一大亮点,是社会发展的必然产物。因此开发一个标准化的旅店管理系统是很有必要的,而且JAVA是一种面向对象的、无平台的编程语言,具有很大的发展空间,用它编写旅店管理系统可以更体现出旅店管理的优势。 第2章 系统功能介绍2.1系统功能总框图 经过需求分析和系统的概要设计,得到系统功能总框图,如图2.1所示。旅店管理系统客房登记退房和服务客户管理服务信息查询客户信息查询服务录入服务更改客户退房客房预定更改预定取消预定房间管理空房查询房价调整图2.1 旅店管理系统总体结构框图2.2 功能模块介绍在旅店管理系统中管理员先通过登陆界面进入系统。首先管理员需要录入客户的基本信息,包括身份证号、姓名、电话、房间号、预定日期、逗留天数等,并将这些数据通过JAVA连接到数据库,等待其他的功能使用。然后就是预定的设置,在预定设置里包括取消预定和更改预定,管理员根据客户的不同需求,对客户的预定进行设置。下来就是录入客户的服务和退房处理,录入客户服务时是根据客户的房间号,进行处理的,在录入时,会对数据库做相应的改动;退房处理是根据客户住的房间类型、客户的服务和逗留的天数来确定的。客户的管理,是为了更方便的管理客户,它包括客户信息的查询(入住客人)、客户信息的查询(基于姓名)、客户信息的查询(基于房间号)和服务的查询,完成它们都需要调用相应的数据库,针对自己的查询的需要设计对应的JAVA语句。房间管理是为了了解房间的情况,有助于让管理员妥善的为客户安排房间,它包括房间查看、空房查询、空客房查询、空豪华间查询、房价查询和房价的调整,房间的查看是为了总体查看现在有多少房间被用;空房查询是细化的查看房间有多少被用,都是那些房间被占;房间更改是根据不同的需要更改房价,以达到客户的需求。客户数目统计,它是按客户来自不同国家进行统计的,这样可以分析,现在有那些国家对旅店的需求大,没需求的国家又是为什么,进行长时间的统计,在根据本旅店自身的问题,得出解决的办法,最后就是退出系统。2.3 组内任务分工组员们经过商量后,得到小组任务分工情况表,如表2-1所示。表2-1 小组任务分工情况表姓 名任务分工组长温周洋整体设计、数据库创建、主界面设计,登陆界面、背景音乐客户登记、预定设置和退房管理模块组员沈聪杰房间管理模块客房管理模块石钧玮服务管理模块朱卫锋客户管理模块 第3章 数据库设计3.1 数据库需求分析需求分析简单地说就是分析用户的需求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。本系统的数据库需求分析应该分为六部分:客户信息部分、房间信息部分、房间类型部分、客房服务部分、客户登记部分和转化部分。通过调查人们的基本的信息,综合分析后,选出有代表性的作为客户信息部分;房间用那种方式好管理,主要采用的方式,将分析出房间信息部门;而现在的房间都有那些类型,包括什么部分,各类型的房间需配备那些设备,价格是多少,综合分析后得出房间类型部分;根据人们现在的不同需要,调查那些服务是人们必须有的,而且是人们想有的,从而得到客房服务部门;客户要进行房间的结算就必须由管理员进行必要的登记,在登记的基础上分析出客户主要的消费方式,综合得到客户登记部分和转化部分。3.2 数据库表设计针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下七张表格,分别是管理员密码表、客户信息表,房间信息表,房间类型表,客房服务表,客户登记表和转化表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。表定义说明如下:表3-1 管理员密码表字段名称数据类型长度备注usernamenchar10passwordnchar6表3-2 客户信息表字段名称数据类型长度备注GuestIdchar18取0-9或xGuestNamechar30GuestPhonechar11取0-9GuestCodezipchar6取0-9GuestCountrychar12表3-3房间信息表字段名称数据类型长度备注RoomNochar6RoomPositionchar5RoomTypechar2default DXRoomStatechar2default DX表3-4 房间类型信息表字段名称数据类型长度备注RoomTypechar2default DXRoomPricefloatRoomPrice=119RoomEquipmentschar400表3-5 服务信息表字段名称数据类型长度备注ServerIdchar2取0-9ServerNamechar60ServerPricefloat8=ServerPrice表3-6 客户登记表字段名称数据类型长度备注GuestIdchar18取0-9或xRoomNochar6RoomTypechar2AtDatechar10MM/DD/YYFromDatechar10MM/DD/YYToDatechar10MM/DD/YYDaysintroomcostfloatservercostfloattotalcostfloat表3-7 转化信息表字段名称数据类型长度备注GuestIdchar18取0-9或xServerIdchar2取0-9AtDatechar10MM/DD/YY其中还将客户信息表,房间信息表,服务信息表,客户登记表,转化信息表进行关联。第4章 具体功能实现4.1 系统登陆界面在程序启动后,系统自动弹出系统管理登陆界面。它需要管理员输入正确的用户名和密码,如果密码错误,会进行必要的提示,当然如果密码正确,会进入顺利的进入系统,在此,用户名和密码都存在数据库中,在你输入用户名和密码时,程序会连接到数据库,将你输入的信息和数据库中的信息比较。因此得到旅店管理登陆界面图,如图4.1所示。图4.1旅店管理登陆界面图程序代码如下:private Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); / Determine users screen size /* Creates new form NewAccount */ public Login_1() initComponents(); 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.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 Username 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); jLabel2.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); 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 actionPerformed(ActionEvent evt) if(!admin_userid.getText().equals()& !admin_password.getText().equals()/输入的用户名和密码不能为空verifyadminLogin(); elseJOptionPane.showMessageDialog(Component) null, 请输入正确用户名和密码!, Login Error, JOptionPane.INFORMATION_MESSAGE); ); setIconImage (getToolkit().getImage (img/logo_1.png);setSize (330, 400);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setVisible(true); public static void main(String args) Login_1 ad=new Login_1(); 4.2 系统界面设计 系统界面设计,采用合理的布局和标准的规格,操作方便快捷,插入的图片形象化,相当于快捷方式。界面的左边是一个树型结构,目的是快捷的实现管理员的操作;菜单条分各功能,简单明了;切片按扭,使得按扭和面板一体化。因此得到系统界面设计图,如图4.2所示。 图4.2系统界面设计图程序代码如下:class Hotel extends Frame private Font f; private JTabbedPane jtp; /切片按钮AudioClip clip; public Hotel() f = new Font(TimesChinese,Font.PLAIN,12); setFont(f); jtp=new JTabbedPane(); jtp.addTab(客房登记,new ImageIcon(img/3.gif),new RoomEnrollTabPane(),客房登记); /new ImageIcon(img1/1.png) jtp.addTab(取消预订,new ImageIcon(img/7.gif),new BookCancelTabPane(),取消预订); jtp.addTab(更改预订,new ImageIcon(img/9.gif),new BookReworkTabPane(),更改预订); jtp.addTab(退还房间,new ImageIcon(img/10.gif),new RoomReturnTabPane(),退还房间); jtp.addTab(服务费用入帐,new ImageIcon(img/11.gif),new ServerCostEnrollTabPane(),服务费用入帐); add(Center,jtp); /菜单条、菜单和菜单项的设置与添加MenuBar bar = new MenuBar(); Menu guestMenu=new Menu(客户管理); guestMenu.add(入住客户信息查询);guestMenu.add(客户信息查询(基于姓名); guestMenu.add(客户信息查询(基于房号); guestMenu.add(服务信息查询(基于房号); Menu roomMenu=new Menu(房间管理); roomMenu.add(房间查看); roomMenu.add(空房列表); roomMenu.add(空豪华间); roomMenu.add(空余客房); roomMenu.add(房价查询); roomMenu.add(房价调整); Menu serverMenu=new Menu(服务管理); serverMenu.add(服务列表); serverMenu.add(服务价格调整); serverMenu.add(服务事项列表(基于日期); Menu numberMenu=new Menu(顾客数目统计); numberMenu.add(顾客数目); /numberMenu.add(顾客数(基于国家); Menu QuitMenu=new Menu(退出系统); QuitMenu.add(退出系统); bar.add(guestMenu); bar.add(roomMenu); bar.add(serverMenu); bar.add(numberMenu); bar.add(QuitMenu); setMenuBar(bar); show(); /窗口接口 addWindowListener(new WindowAdapter() /当单击窗口上的关闭按钮时,监视器首先调用windowClosing方法,该方法的执行必须保证窗口调用dispose()方法,这样才能触发“窗口已关闭”,监视器才会调用windowClosed方法。 public void windowClosing(WindowEvent e) dispose(); System.exit(0); ); 4.3 客房登记功能模块系统进入后,首先看到的就是客房登记界面,登记的内容包括客户的身份证号、姓名、电话、邮编、来自的国家、所住的房间、预定的日期、开始住的日期、退房的日期和逗留的天数。输入时有相应的提示,输入完成后,确定后,程序会将输入的信息保存到数据库,以备具体应用时再调用。客房登记功能界面,如图4.3所示。图4.3客房登记界面程序代码如下:public class MyActionListener implements ActionListener public void actionPerformed(ActionEvent evt) GuestId=idtxt.getText().toString(); GuestName=nametxt.getText().toString(); GuestPhone=phonetxt.getText().toString(); GuestCodezip=codeziptxt.getText().toString(); GuestCountry=countrychoice.getSelectedItem().toString(); RoomNo=RNtxt.getText().toString(); RoomType=RTchoice.getSelectedItem().toString(); AtDate=ADtxt.getText().toString(); FromDate=FDtxt.getText().toString(); ToDate=TDtxt.getText().toString(); Days=Integer.parseInt(daystxt.getText(); sqlstring0=new String(select RoomPrice from RoomTypes where RoomType=+RoomType+); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring0); ResultSet result0=stmt.executeQuery(sqlstring0); while(result0.next() roomprice=result0.getFloat(1); stmt.close(); con.close(); catch(Exception e) System.out.println(e); roomcost=roomprice*Days; servercost=0; totalcost=roomcost+servercost; sqlstring1=new String(insert into Guest values (+GuestId+,+GuestName+,+ GuestPhone+,+GuestCodezip+,+GuestCountry+); sqlstring2=new String(insert into Reservations values (+GuestId+,+RoomNo+,+ RoomType+,+AtDate+,+FromDate+,+ToDate+,+Days+,+roomcost+,+servercost+,+totalcost+); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con1=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt1=con1.createStatement(); System.out.println(sqlstring1); ResultSet result1=stmt1.executeQuery(sqlstring1); stmt1.close(); con1.close(); catch(Exception e) System.out.println(e); Try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con2=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt2=con2.createStatement(); System.out.println(sqlstring2); ResultSet result2=stmt2.executeQuery(sqlstring2); stmt2.close(); con2.close(); catch(Exception e) System.out.println(e); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con3=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt3=con3.createStatement(); System.out.println(sqlstring3); ResultSet result3=stmt3.executeQuery(sqlstring3); stmt3.close(); con3.close(); catch(Exception e) System.out.println(e); 4.4 客房预定功能模块客房预定包括取消预定和更改预定,当客户想取消预定时,输入客户的身份证号和房间号,取消客户的预定;当更改预定时,输入客户的身份证号、房间号和逗留的天数,更改用户的预定,程序自动修改数据库。因此,得到客房预定功能图,如图4.4所示。 图4.4客房预定功能界面 程序代码如下:public class MyActionListener implements ActionListener public void actionPerformed(ActionEvent evt) GuestId=idtxt.getText().toString(); RoomNo=RNtxt.getText().toString(); Days=Integer.parseInt(daystxt.getText(); sqlstring1=new String(select servercost from Reservations where GuestId=+GuestId+ and RoomNo=+RoomNo+); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring1); ResultSet result1=stmt.executeQuery(sqlstring1); while(result1.next() sercost=result1.getFloat(1); stmt.close(); con.close(); catch(Exception e) System.out.println(e); sqlstring2=new String(select Roomtypes.RoomPrice from Room,Roomtypes where Room.RoomType=Roomtypes.RoomType and Room.RoomNo=+RoomNo+); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring2); ResultSet result2=stmt.executeQuery(sqlstring2); while(result2.next() price=result2.getFloat(1); stmt.close(); con.close(); catch(Exception e) System.out.println(e); cost=price*Days; sqlstring3=new String(update Reservations set Days=+Days+,roomcost=+cost+,totalcost=+sercost+cost+ where GuestId=+GuestId+ and RoomNo=+RoomNo+); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring3); ResultSet result3=stmt.executeQuery(sqlstring3); stmt.close(); con.close(); catch(Exception e) System.out.println(e); public class cancel_ActionListener implements ActionListener public void actionPerformed(ActionEvent e) idtxt.setText(); RNtxt.setText(); daystxt.setText(); 4.5 退房和服务管理模块系统中的退房和服务管理,包括客户退房、管理员录入客户的服务信息、查询服务、更改服务的费用。客户退房,输入客户身份证号和房间号,确定后,客户的各项消费将列出,包括住房费用和服务费用;管理员录入客户的服务信息,输入客户的房间号、服务项和服务日期,添加后,程序会将此服务加到客户的消费中;查询服务,根据添加服务的日期,调用数据库,显示客户的各项服务;更改服务,选择相应的服务,填写更改后的价格,程序将调用数据库更改相应服务的费用。因此,得到退房和服务管理功能图,如图4.5,4.6所示。图4.5退房服务管理功能图 图4.6服务费用入账功能图程序代码如下:public class MyActionListener implements ActionListener public void actionPerformed(ActionEvent evt) GuestId=idtxt.getText().toString(); RoomNo=RNtxt.getText().toString(); sqlstring0=new String(select * from Reservations where GuestId=+GuestId+ and RoomNo=+RoomNo+); sqlstring1=new String(delete from Reservations where GuestId=+GuestId+ and RoomNo=+RoomNo+); sqlstring2=new String(delete from Transactions where GuestId=+GuestId+); sqlstring3=new String(delete from Guest where GuestId=+GuestId+); sqlstring4=new String(update Room set RoomState=VC where RoomNo=+RoomNo+); tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring0); ResultSet result0=stmt.executeQuery(sqlstring0); while(result0.next() String socrates = result0.getString(8), result0.getString(9), result0.getString(10) ; philosophers.addRow( socrates ); stmt.close(); con.close(); catch(Exception e) System.out.println(e); tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:hotel); Statement stmt=con.createStatement(); System.out.println(sqlstring1); ResultSet result1=stmt.executeQuery(sqlstring1); stmt.close(); con.close(); catch(Exception e)System.out.println(e); try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:h
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!