




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\u7272第一章前言 225243第二章需求分析 3173452.1可行性分析 379962.1.1技术可行性 33712.1.2操作可行性 3267612.1.3经济可行性 317992.2环境分析 3310982.2.1系统关键用户 373672.2.2系统目的 3219222.2.3系统组织结构 4191342.2.4系统流程 4134592.3问题和约束 5253472.3.1定义问题 5321522.3.2定义约束 5161582.4系统目的 6322392.5功能模块与接口 620929第三章概念结构设计 756763.1信息源和用户 7305163.2信息需求 7162443.3系统的陈氏E-R模型 85403.3.1系统整体E-R图 840013.3.2各主题模块的的陈氏E-R图 812168第四章逻辑结构设计 10234544.1管理员表及表内信息 10175194.2预订信息表 10208494.3入住信息表 11266204.4房间信息表及表内信息 1128626第五章数据库物理设计 12105905.1数据库需要的空间估算 12120965.2数据库表对象需要的空间估算 12217515.2.1房间信息表一 1243355.2.2预定信息表二 1271955.2.3入住信息表三 12107665.2.4账单表四 1227587第六章具体设计阶段—房屋系统 13138636.1.添加房屋 1329154} 16209126.2修改房屋信息 1636366.3查询信息 19179336.4删除房屋信息 214806第七章测试 25231697.1增长房屋 2565397.2查询房间 26312147.3修改房屋信息 2781127.4删除房间 2815189总结 3023705附录 31第一章前言随着市场经济和旅游业的不断发展,酒店行业日趋发达。传统的酒店管理往往令管理者花大量的时间来解决琐碎事物,例如错误查询、烦琐的登记和结账手续、费用计算错误、空余客房资料不能及时提供等。从而影响出租率,使得管理人员不得不集中精力规划管理运营策略和进行决策。以上问题可通过电脑系统辅助解决,酒店管理的电脑化,不仅是体现酒店现代化形象的一个重要标志,并且对于提高员工工作效率,加速资金周转、减少各项成本及改善服务质量都有十分积极的作用。为此,国家建设部已于最近做出明确规定:凡星级酒店在项目审批时,其设计方案必须涉及电脑管理系统,否则不予立项。可见,酒店管理电脑化势在必行。本酒店管理系统将先进的电脑技术与现代酒店服务管理完美地结合起来,实现了全新概念的服务和管理方式。 本系统属于大型酒店管理和民用住宅设计项目中的一部分,由NEC公司由日本移植到中国并实现了汉化。本系统配合视频点播系统可以对酒店进行全方位管理,重要优点如下:1.电脑收银,快速准确,减少来宾等待时间,并可杜绝收银过程中的舞弊现象。2.高效的客房管理:能有效的提高房率,增长营业收入。3.提高决策依据:管理者可以随时了解经营情况,以制定相应的经营方针。4.减轻员工的工作承担:从而使员工把更多的精力放在提高为来宾服务的质量上。5.简朴、方便地保存和查询历史资料。6.树立良好的酒店形象。我们设计的酒店管理系统后台数据库采用SQLSever2023,以保证数据的安全、高效和稳定;前台采用Microsoft公司的JAVA作为重要开发工具,它可以与SQLSever2023数据库无缝衔接。在需求分析及总体设计后,将酒店管理系统分为:登陆模块、客房预订模块、客户接待模块、房屋管理模块、收银模块等几部分。整个设计过程中小组成员分工:小组成员成员分工学号王郭鑫客户接待系统2程晨客户预订系统2刘鸣晓退房系统1李雪登录、注册系统2张嘉雯房屋管理系统,界面优化2第二章需求分析2.1可行性分析2.1.1技术可行性酒店管理系统是采用Java语言编写的,具有Java的“一次编写,到处运营”的优点,所以此系统在不同的操作系统上都可以运营,具有很强的移植性、健全性和安全性。并且酒店管理系统规定规定应具有功能完备、易于使用、易于维护等特点,而对于后者则规定能建立数据一致性和完整性强、数据安全性好的库。基于以上的规定,本系统采用MyEclipse7.0作为开发工具,使得代码编写的过程大大的简化。而数据库则是采用目前较为流行的SqlServer2023,Java对SqlServer2023具有很好的支持并且在经历了数年的发展SqlServer2023很好的口碑。此系统在技术上是可行的。2.1.2操作可行性酒店管理系统具有和谐的用户界面,使用方便,易于维护,操作简朴易于被用户接受,用户只需纯熟操作计算机,和对此系统使用做简朴的了解即可方便使用,并且使用此系统可以大大减少管理人员的承担。因此从使用操作方面看,此系统的开发是可行的。2.1.3经济可行性 本酒店管理系统运营的硬件环境只需一台便宜的电脑既可,软件环境则是安装windowsXP系统,MyEclipse7.0,SqlServer2023既可。对于一般的中小型酒店来说都是很小的成本支出。2.2环境分析2.2.1系统关键用户经分析,酒店管理系统的关键为房间的预订,房间信息的修改,收银系统。2.2.2系统目的通过度析,系统需要满足如下功能:(1)根据不同账号登录界面,可注册账号(2)生成订单(3)对于已经生成的订单进行查询,修改,删除(4)将订单信息转为入住。对于入住信息科进行查询,修改,删除(5)对于房间信息进行增长,查询,修改,删除(6)退房时,账单的生成,涉及房间价格以及网费(7)退房,计算费用(8)记录总收益2.2.3系统组织结构退出添加订房退出添加订房记录酒店管理系统修改客户信息查询客户信息添加房间信息修改房间信息删除房间信息查看所有房间信息登陆预订接待房务管理收银预定转接待查询订房删除订房修改订房客户入住网络管理结帐退房图.4系统流程系统流程图图问题和约束 该系统在真实生活需要更多的信息,例如对于登记者信息的查询,与公安系统的联网等等。我们所设计的只是一个小型酒店的重要的关键的部分。2.3.1定义问题(1)酒店管理不是仅仅对于房价信息的查询,要方便管理者真正的使用(2)对于已经预定的房价信息要可以方便快捷的查找(3)酒店管理中要考虑到除房费意外也许产生的费用2.3.2定义约束期限: 系统要在两周内完毕软件和硬件:该系统必须具有后台数据库,以保证数据的安全、高效和稳定和作为重要开发工具该系统的前台。必须运营在现有操作系统之上。系统的额外拓展: 要有良好的人机交流界面。2.4系统目的(1)对于大量的房间信息可以统一规划的管理(2)对于订单的增长,修改,重置简朴可行(3)对于大量的订单,账单统一规划管理数据流图:图2.42.5功能模块与接口表1:登录模块模块模块接口功能登录Info_Manage登录系统注册Setzhuce注册用户主界面zhujiemian进入系统主界面表2:预定模块模块模块接口功能添加Adddingfang添加预订信息删除Deletedingfang删预订信息修改Getdingfang修改预订信息查询setren按客户姓名查询信息Setdingfang查询所有预订信息表3:接待模块模块模块接口功能录入信息AddGrade查询已预订信息,将其入住修改信息Getruzhu修改入住客户信息查询信息Setruzhu查询入住客户信息删除信息Deleteruzhu删除入住客户信息表4:房屋管理模块模块模块接口功能增长房屋Addroom增长房屋信息删除房屋Deleteroom删除已有的房屋修改房屋Getroom修改房屋信息查询房屋setroom按房间号查询房屋信息表5:收银模块模块模块接口功能生成账单wwww退房,生成账单,记录收益第三章概念结构设计3.1信息源和用户 信息源:房间信息表、预订信息表、入住信息表、账单信息表 用户:酒店系统操作员3.2信息需求 1设计系统操作员账号、密码 2输出各种表3.3系统的陈氏E-R模型3.3.1系统整体E-R图图.2各主题模块的的陈氏E-R图房间信息:预订信息:登录信息:第四章逻辑结构设计4.1管理员表及表内信息4.2预订信息表4.3入住信息表4.4房间信息表及表内信息第五章数据库物理设计5.1数据库需要的空间估算项目磁盘空间/KB数据库内创建表的固定空间(库内需要空间)12294个表*4KB/个(外存预留空间)16数据库使用的总空间12455.2数据库表对象需要的空间估算5.2.1房间信息表一名称数据类型字段大小可否为空房间编号char10no规格char10yes状态int4yes价格money8yes是否有网char10yes5.2.2预定信息表二名称数据类型字段大小可否为空姓名char10no证件号char10no电话char10yes规格char10yes房间编码char10yes入住时间datetime8yes5.2.3入住信息表三名称数据类型字段大小可否为空姓名char10no证件号char10no电话char10yes规格char10yes房间编码char10yes入住时间datetime8yes是否有网char10yes5.2.4账单表四名称数据类型字段大小可否为空总价Int4yes第六章具体设计阶段—房屋系统6.1.添加房屋根据规定添加房屋。输入新增的房间编号,假如房间已存在,则提醒“该号已存在”;假如房间不存在,则设定房间规格、价格、是否有网。有网状态为1,无网为0。点击添加,房屋信息保存增长成功;点击重置,一切为空,重新添加;点击退出,返回功能页面。classAddroomextendsJFrameimplementsActionListener{ JLabelJL=newJLabel("添加房屋",JLabel.CENTER); JLabelJLNumber=newJLabel("房间编号:"); JTextFieldJTNumber=newJTextField(); JLabelJL1=newJLabel("规格:"); JTextFieldJT1=newJTextField(); JLabelJL2=newJLabel("价格:"); JTextFieldJT2=newJTextField(); JLabelJL3=newJLabel("是否有网:"); JTextFieldJT3=newJTextField(); JButtonJBAdd=newJButton("添加"); JButtonJBNext=newJButton("重置"); JButtonJBExit=newJButton("退出"); Stringsql=""; publicAddroom() { setSize(550,700); setLocation(200,50); Stringpath="d:\\addroom.jpg"; ImageIconbackground=newImageIcon(path); JLabellabel=newJLabel(background); label.setBounds(0,0,this.getWidth(),this.getHeight()); JPanelimagePanel=(JPanel)this.getContentPane(); imagePanel.setOpaque(false); this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE)); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("添加房屋信息"); this.setLayout(null); JL.setFont(newFont("TimesRoman",Font.BOLD,24));JL.setForeground(Color.red); JL.setFont(newjava.awt.Font("宋体",Font.PLAIN,19)); JL.setBounds(100,30,200,40); this.add(JL); JLNumber.setBounds(100,100,100,20); this.add(JLNumber); JTNumber.setBounds(200,100,80,20); this.add(JTNumber); JL1.setBounds(100,140,60,20); this.add(JL1); JT1.setBounds(200,140,80,20); this.add(JT1); JL2.setBounds(100,180,60,20); this.add(JL2); JT2.setBounds(200,180,80,20); this.add(JT2); JL3.setBounds(100,220,60,20); this.add(JL3); JT3.setBounds(200,220,80,20); this.add(JT3); JBAdd.setBounds(80,320,90,20); this.add(JBAdd); JBAdd.addActionListener(this); JBNext.setBounds(190,320,90,20); this.add(JBNext); JBNext.addActionListener(this); JBExit.setBounds(300,320,90,20); this.add(JBExit); JBExit.addActionListener(this); this.setBounds(10,10,500,400); this.setVisible(true); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==JBAdd) { Stringsnumber=JTNumber.getText(); Stringsguige=JT1.getText(); Stringsjiage=JT2.getText(); Stringswang=JT3.getText(); sql="select*fromroomwhere房间编号='"+snumber+"'"; System.out.println(sql); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncot=DriverManager.getConnection("jdbc:odbc:jiudian","sa","sa"); Statementstm=cot.createStatement(); ResultSetrs=stm.executeQuery(sql); if(rs.next()) JOptionPane.showMessageDialog(null,"该号已经存在!"); else { sql="insertintoroomvalues('"+snumber+"','"+sguige+"','0','"+sjiage+"','"+swang+"')"; System.out.println(sql); inti=stm.executeUpdate(sql); if(i>0) JOptionPane.showMessageDialog(null,"添加成功!"); else JOptionPane.showMessageDialog(null,"添加失败!"); } }catch(Exceptionee) { } } if(e.getSource()==JBNext) { JTNumber.setText(null); JT1.setText(null); JT2.setText(null); JT3.setText(null); } if(e.getSource()==JBExit) { setVisible(false); newzhujiemian(); } } publicstaticvoidmain(Stringargs[]) { newAddroom(); }}6.2修改房屋信息输入要修改的房间编号,假如房间不存在,则提醒“此房间不存在”;假如房间存在有记录,则可任意修改房间规格、价格、是否有网。有网状态为1,无网为0。点击修改,房屋信息保存修改成功;点击重置,一切为空,重新添加;点击退出,返回功能页面。classGetroomextendsJFrameimplementsActionListener{ JLabelJL=newJLabel("修改房屋信息",JLabel.CENTER); JLabelJLNumber=newJLabel("房间编号:"); JTextFieldJTNumber=newJTextField(); JLabelJL1=newJLabel("规格:"); JTextFieldJT1=newJTextField(); JLabelJL2=newJLabel("价格:"); JTextFieldJT2=newJTextField(); JLabelJL3=newJLabel("是否有网:"); JTextFieldJT3=newJTextField(); JButtonJBAdd=newJButton("修改"); JButtonJBNext=newJButton("重置"); JButtonJBExit=newJButton("退出"); Stringsql=""; publicGetroom() { setSize(550,600); setLocation(200,50); Stringpath="d:\\getroom.jpg"; ImageIconbackground=newImageIcon(path); JLabellabel=newJLabel(background); label.setBounds(0,0,this.getWidth(),this.getHeight()); JPanelimagePanel=(JPanel)this.getContentPane(); imagePanel.setOpaque(false); this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE)); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("修改房屋信息"); this.setLayout(null); JL.setFont(newFont("TimesRoman",Font.BOLD,24));JL.setForeground(Color.red); JL.setFont(newjava.awt.Font("宋体",Font.PLAIN,19)); JL.setBounds(100,30,200,40); this.add(JL); JLNumber.setBounds(100,100,100,20); this.add(JLNumber); JTNumber.setBounds(200,100,80,20); this.add(JTNumber); JL1.setBounds(100,140,60,20); this.add(JL1); JT1.setBounds(200,140,80,20); this.add(JT1); JL2.setBounds(100,180,60,20); this.add(JL2); JT2.setBounds(200,180,80,20); this.add(JT2); JL3.setBounds(100,220,60,20); this.add(JL3); JT3.setBounds(200,220,80,20); this.add(JT3); JBAdd.setBounds(80,360,90,20); this.add(JBAdd); JBAdd.addActionListener(this); JBNext.setBounds(190,360,90,20); this.add(JBNext); JBNext.addActionListener(this); JBExit.setBounds(300,360,90,20); this.add(JBExit); JBExit.addActionListener(this); this.setBounds(10,10,550,450); this.setVisible(true); addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}}); } publicvoidactionPerformed(ActionEvente) { if(e.getSource()==JBAdd) { Stringsnumber=JTNumber.getText(); Stringsguige=JT1.getText(); Stringsjiage=JT2.getText(); Stringswang=JT3.getText(); sql="select*fromroomwhere房间编号='"+snumber+"'"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncot=DriverManager.getConnection("jdbc:odbc:jiudian","sa","sa"); Statementstm=cot.createStatement(); ResultSetrs=stm.executeQuery(sql); if(rs.next()) { sql="updateroomset房间编号='"+snumber+"',规格='"+sguige+"',价格='"+sjiage+"',是否有网='"+swang+"'where房间编号='"+snumber+"'"; intn=stm.executeUpdate(sql); if(n>0) JOptionPane.showMessageDialog(null,"修改成功!"); else JOptionPane.showMessageDialog(null,"修改失败!"); } else { JOptionPane.showMessageDialog(null,"此房间不存在!"); } }catch(Exceptioner) { } } if(e.getSource()==JBNext) { JTNumber.setText(null); JT1.setText(null); JT2.setText(null); JT3.setText(null); } if(e.getSource()==JBExit) { setVisible(false); newzhujiemian(); } } publicstaticvoidmain(Stringargs[]) { newGetroom(); }}6.3查询信息根据规定查询房屋。输入房间号,点击查询,在下方表格出现房间相应的房间规格、房间状态、价格、是否有网。有网状态为1,无网为0。输入新的房间号,可以查询新的信息。点击退出,返回功能页面。输入房间号,查询房屋状态。publicclasssetroomextendsJFrameimplementsActionListener{ privateJTabletable;JButtonJB1=newJButton("返回");privateJScrollPanescpDemo; privateJTableHeaderjth; privateJTabletabDemo; privateJButtonbtnShow; privateJButtonbtnShow1; JLabelJLRoom =newJLabel("房间号:"); JTextFieldJTRoom =newJTextField(); //构造方法 publicsetroom(){ //窗体的相关属性的定义 JB1.setBounds(400,20,60,30); this.add(JB1); JB1.addActionListener(this); this.setSize(620,400); this.setLayout(null); this.setLocation(100,50); //创建组件 this.scpDemo=newJScrollPane(); this.scpDemo.setBounds(10,50,500,300); //finalJTextAreatextArea=newJTextArea(2023,300); //JScrollPanescrollPane=newJScrollPane(textArea); this.btnShow=newJButton("查询"); this.btnShow.setBounds(300,20,60,30); //给按钮注册监听 JLRoom.setBounds(10,10,60,60); this.add(JLRoom); JTRoom.setBounds(60,30,100,20); this.add(JTRoom); this.btnShow.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventae){ btnShow_ActionPerformed(ae); } }); //将组件加入到窗体中 add(this.scpDemo); add(this.btnShow); //显示窗体 this.setVisible(true); } publicvoidbtnShow_ActionPerformed(ActionEventae){ Stringsroom=JTRoom.getText(); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectionconn=DriverManager.getConnection("jdbc:odbc:jiudian","sa","sa"); Stringsql="select*fromroomwhere房间编号='"+sroom+"'"; System.out.print(sql); PreparedStatementpstm=conn.prepareStatement(sql); ResultSetrs=pstm.executeQuery(); //计算有多少条记录 intcount=0; while(rs.next()){ count++; } rs=pstm.executeQuery(); //将查询获得的记录数据,转换成适合生成JTable的数据形式 Object[][]info=newObject[count][5]; count=0; while(rs.next()){ info[count][0]=rs.getString("房间编号"); info[count][1]=rs.getString("规格"); info[count][2]=rs.getString("状态"); info[count][3]=rs.getString("价格"); info[count][4]=rs.getString("是否有网"); count++; } //定义表头 String[]title={"房间编号","房间规格","房间状态","价格","是否有网"}; //创建JTable this.tabDemo=newJTable(info,title); //显示表头 this.jth=this.tabDemo.getTableHeader(); //将JTable加入到带滚动条的面板中 this.scpDemo.getViewport().add(tabDemo); }catch(ClassNotFoundExceptioncnfe){ JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE); }catch(SQLExceptionsqle){ JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE); } }publicvoidactionPerformed(ActionEvente){ if(e.getSource()==JB1) { setVisible(false); newzhujiemian(); } }publicstaticvoidmain(String[]args){newsetroom();}}6.4删除房屋信息输入房间号,删除房屋信息。此时再查询此房间,信息显示为空。classDeleteroomextendsJFrameimplementsActionListener{ JLabelJL=newJLabel("删除房间",JLabel.CENTER); JLabelJLNumber=newJLabel("房间号:"); JTextFieldJTNumber=newJTextField(); JButtonJBGet=newJButton("删除"); JButtonJBNext=newJButton("重置"); JButtonJBExit=newJButton("退出"); Stringsql=""; publicDeleteroom() { setSize(600,700); setLocation(200,50); Stringpath="d:\\deleteroom.jpg"; ImageIconbackground=newImageIcon(path); JLabellabel=newJLabel(background); label.setBounds(0,0,this.getWidth(),this.getHeight()); JPanelimagePanel=(JPanel)this.getContentPane(); imagePanel.setOpaque(false); this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE)); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("删除房间"); this.setLayout(null); JL.setFont(newFont("TimesRoman",Font.BOLD,24));JL.setForeground(Color.red); JL.setFont(newjava.awt.Font("宋体",Font.PLAIN,19)); JL.setBounds(100,30,200,40); this.add(JL); JLNumber.setBounds(100,120,100,20); this.add(JLNumber); JTNumber.setBounds(200,120,80,20); this.add(JTNumber); JBGet.setBounds(80,240,90,20); this.add(JBGet); JBGet.addActionListener(this); JBNext.setBounds(190,240,90,20); this.add(JBNext); JBNext.addActionListener(this); JBExit.setBounds(300,240,90,20); this.add(JBExit); JBExit.addActionListener(this); this.setBounds(10,10,500,400); this.setVisible(true); addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度猪场租赁与养殖废弃物资源化利用合作协议
- 2025年度危化品物流承包装卸搬运及安全防护合同
- 二零二五年度董事职责履行与聘任合同
- 2025年度学生安全教育与应急演练合作协议
- 2025年度医院食堂营养均衡供餐服务协议
- 2025年度农产品电商平台购销合同图片制作与物流服务合同
- 2025年度夫妻共同财产投资决策及收益共享协议书
- 2025年吉林职业技术学院单招职业技能测试题库及参考答案
- 2025年度保障房东权益的商铺租赁合同要点
- 2025年度债务转移与债务清偿合同范本
- 2024年南京旅游职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2025年春新外研版(三起)英语三年级下册课件 Unit2第2课时Speedup
- 人教版(新)九年级下册化学全册教案教学设计及教学反思
- 2025年浙江省国土空间规划研究院招聘历年高频重点提升(共500题)附带答案详解
- 2025年安徽省安庆市公安警务辅助人员招聘190人历年高频重点提升(共500题)附带答案详解
- 7.1力教学课件-2024-2025学年初中物理人教版八年级下册
- 光伏电站安全培训课件
- 小学生勤俭节约课件
- 化工行业生产过程安全管理升级策略方案
- 慢性胰腺炎病教学查房
- 中考英语复习阅读理解-主旨大意题、推理判断题
评论
0/150
提交评论