已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程名称: Java EE/.Net课程设计 设计题目: 小型酒店管理系统 学 院: 信息工程与自动化 专 业: 计科 年 级: 09级 学生姓名: 指导教师: 日 期: 2012.6.6 教 务 处 制 课 程 设 计 任 务 书 信息工程与自动化 学院 计科 专业 09 年级学生姓名: 孙浩川 课程设计题目: 小型酒店管理系统 课程设计主要内容:本小型酒店管理系统的开发是针对小型酒店的日常管理业务开发而成的,采用sql server作为后台数据库,java工具来设计程序,实现以下几个功能:一,通过使用计算机能方便的维护,包括插入、删除、修改各信息表;二、能方便的实现基于多个表的连接查询;三、系统具有操作方便、简捷等特点。这些功能模块基本上满足了客人在酒店预订、入住管理等方面的需求。设 计 指 导 教 师 (签字): 教学基层组织负责人(签字): 年 月 日摘要随着经济的发展,旅游业和商贸流通业的繁荣促使宾馆酒店业也得到前所未有的发展。利用以计算机为基础的管理信息系统改善和挖掘宾馆酒店业的市场潜力,从而最大限度地获取营业利润是目前宾馆酒店从业者们在软件环境方面改善和提高服务的一个重要措施。本小型酒店管理系统的开发是针对小型酒店的日常管理业务开发而成的,采用sql server作为后台数据库,java工具来设计程序,实现以下几个功能:一,通过使用计算机能方便的维护,包括插入、删除、修改各信息表;二、能方便的实现基于多个表的连接查询;三、系统具有操作方便、简捷等特点。这些功能模块基本上满足了客人在酒店预订、入住管理等方面的需求。通过以上功能的实现来提供相对比较完善的酒店管理机制的建立。本文详细介绍了酒店入住信息管理系统的开发实现过程,从系统的需求分析、总体设计、详细设计、关键代码及说明、项目测试等各个环节都进行了详尽的分析和描述。关键词:java,课程设计,本小型酒店管理系统,sql server目录一、项目需求分析41.1 功能需求41.2 操作需求41.3 系统性能要求4二、项目总体设计52.1 系统功能模块划分52.2 界面设计62.3 数据库与数据库逻辑结构设计9三、项目详细设计103.1 关于类的设计103.2 数据库的连接103.3 类的功能设计11四、关键代码及说明12五、项目测试23六、 总结26一、项目需求分析1.1 功能需求随着人们生活水平的提高,越来越多的人们出门旅游,酒店的普及让人们越来越方便,所以酒店的管理愈加显得重要。酒店管理系统就是一个简单的数据库管理系统,要做一个系统首先要搞得是调查分析,得出系统的一个逻辑模型,然后构架数据库,然后再进行后面的详细设计,编码,测试等阶段了。酒店管理系统的大致功能应该包括:1、房间的管理,包括房态的查询等2、人员入住登记3、入住人员查询、管理4、人员退房等。根据需求分析,本系统采用的语言:(1)本系统采用Java语言,Java是目前使用最为广泛的计算机语言之一。它具有简单,面向对象,稳定,与平台无关等特点。说他简单,并不是说这门语言很干瘪,而是一种清楚更容易理解的方式实现程序。面向对象是基于对象的变成更符合人的思维方式,使人们更容易编写程序。(2)本系统还采用SQL语言,SQL Server具有许多显著优点:易用性、适合分布组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。(3)本系统有效的利用Java和SQL的优点。1.2 操作需求能够准确地记录相关信息。系统界面友好、操作简单易行,查询灵活方便,数据储存安全可靠。系统维护安全、方便、可靠,并且能够实现实用性,先进性的要求。经分析我认为本酒店管理系统的具体要求为:1、通过使用计算机能方便的维护(包括插入、删除、修改)各信息表2、能方便的实现基于多个表的连接查询3、系统具有操作方便、简捷等特点。1.3 系统性能要求操作系统: Windows 7开发软件: MyEclipse 、SQL Server二、项目总体设计2.1 系统功能模块划分1)新建函数 Link Create(Link Head);/ 创建一个带头节点的空链表 2)修改函数 Link Modify(Link Head);/修改单个节点3)删除函数 Link Del(Link &Head);4)查询函数bool Search(Link Head)/ 查询同时满足“姓名”和“房间号”的入住人员信息Link Search_Unique_Front(Link Head)/ 查询满足“身份证号“的入住人员信息(身份证号必需唯一)5)保存函数 void Save_ByFile(Link Head)/6)排序函数(包括按房间号排序和按姓名进行字典排序)/Link Sort(Link Head)/Link Sort_byname(Link Head)7) 显示函数 void Display_List(Link Head)2.2 界面设计1. 管理员登陆界面2. 主界面3. 客人资料编辑页面4. 客人信息修改界面主界面模块部分示例代码:import java.awt.*;import java.awt.event.*;class WindowExit extends Frameimplements ActionListener MenuBar menubar; Menu menu1,menu2,menu3; MenuItem item1,item2,item3,item4,item5,item6,item7,item8; WindowExit() menubar=new MenuBar(); menu1=new Menu(资料查询); menu2=new Menu(客人编辑); menu3=new Menu(房间编辑); item1=new MenuItem(客人资料查询); item2=new MenuItem(房间资料查询); item3=new MenuItem(添加客人资料); item4=new MenuItem(修改客人资料); item5=new MenuItem(删除客人资料); item6=new MenuItem(添加房间资料); item7=new MenuItem(修改房间资料); item8=new MenuItem(删除房间资料); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6); menu3.add(item7); menu3.add(item8); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); setMenuBar(menubar); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); item6.addActionListener(this); item7.addActionListener(this); item8.addActionListener(this);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setBounds(110,100,300,300); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=item1)WindowText1 win=new WindowText1(客人查询界面); if(e.getSource()=item2)WindowText2 win=new WindowText2(房间查询界面); if(e.getSource()=item5)WindowText5 win=new WindowText5(客人删除界面); if(e.getSource()=item3)WindowText3 win=new WindowText3(客人添加界面); if(e.getSource()=item8)WindowText8 win=new WindowText8(房间删除界面); if(e.getSource()=item6)WindowText6 win=new WindowText6(房间添加界面); if(e.getSource()=item7)WindowText7 win=new WindowText7(房间修改界面); if(e.getSource()=item4)WindowText4 win=new WindowText4(客人修改界面); public class example public static void main(String args) WindowExit win=new WindowExit(); 2.3 数据库与数据库逻辑结构设计经过对初始关系模式的规范化处理以下关系模式中不存在部分函数依赖和传递函数依赖,已经达到3NF。(=代表主码,代表外码)客人资料(证件号码,姓名,性别,年龄,电话,证件名称)客房资料(房间号,客人姓名,客人证件号,入房时间,退房时间,入房人数)总额(房间号,客人姓名,证件号码,入住人数,总额)分析以上关系模式,已不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是有个别关系模式中存在着些许数据冗余,但可以提高查询效率。数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。三、项目详细设计3.1 关于类的设计所有的方法均以类为基础。所涉及到的类包括:Class Person 入住人员类;该类是一个基类,设置了属于保护类的入住人员基本属性,以及构造函数Person(char 证件号码,varchar 姓名,char 性别,int 年龄,char 电话,varchar 证件名称)。Class Room 管理类;该类定义了管理函数,即几个模块功能的实现方法,链表的使用也包括其中。此类的作能在于将所有功能模块集成并定义本系统使用的主要方法。3.2 数据库的连接import java.awt.*;import java.awt.event.*;public class login extends Frame implements ActionListener Label username=new Label(管理员号:);/使用文本创建一个用户名标签 TextField t1=new TextField();/创建一个文本框对象 Label password=new Label(密码:);/创建一个密码标签 TextField t2=new TextField(); Button b1=new Button(登陆);/创建登陆按钮 Button b2=new Button(取消);/创建取消按钮 public login() this.setTitle(酒店管理系统);/设置窗口标题 this.setLayout(null);/设置窗口布局管理器 username.setBounds(50,40,60,20);/设置姓名标签的初始位置 this.add(username);/ 将姓名标签组件添加到容器 t1.setBounds(120,40,80,20);/ 设置文本框的初始位置 this.add(t1);/ 将文本框组件添加到容器 password.setBounds(50,100,60,20);/密码标签的初始位置 this.add(password);/将密码标签组件添加到容器 t2.setBounds(120,100,80,20);/设置密码标签的初始位置 this.add(t2);/将密码标签组件添加到容器 b1.setBounds(50,150,60,20);/设置登陆按钮的初始位置 this.add(b1);/将登陆按钮组件添加到容器 b2.setBounds(120,150,60,20);/设置取消按钮的初始位置 this.add(b2);/ 将取消按钮组件添加到容器 b1.addActionListener(this);/给登陆按钮添加监听器 b2.addActionListener(this);/ 给取消按钮添加监听器 this.setVisible(true);/设置窗口的可见性 this.setSize(300,200);/设置窗口的大小 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );/通过内部类重写关闭窗体的方法 public void actionPerformed(ActionEvent e) if(e.getSource()=b1)/处理登陆事件 String name=t1.getText(); String pass=t2.getText(); if(name!=null&pass.equals(000123)/判断语句 new WindowExit(); public static void main(String args)/主函数 new login(); 3.3 类的功能设计模块一:增加入住人员函数Add();增加通讯录基本信息。模块二:删除入住人员函数Delete();删除指定的入住人员的基本信息。模块三:修改人员函数Modify();修改指定的通讯录基本信息。模块四:查询人员信息函数Query();查询指定的入住人员信息。模块五:数据存盘,载入函数Save()以及Load();储存与载入基本信息。模块六:预览数据void Look();预览比较详细的信息。模块七:删除奖罚信息表void DesTory();删除已载入的所有的信息。模块八:基础数据设置函数void TJ();;统计男女的人数,以及总人数。四、关键代码及说明import java.awt.*;import java.awt.event.*;public class login extends Frame implements ActionListener Label username=new Label(管理员号:);/使用文本创建一个用户名标签 TextField t1=new TextField();/创建一个文本框对象 Label password=new Label(密码:);/创建一个密码标签 TextField t2=new TextField(); Button b1=new Button(登陆);/创建登陆按钮 Button b2=new Button(取消);/创建取消按钮 public login() this.setTitle(酒店管理系统);/设置窗口标题 this.setLayout(null);/设置窗口布局管理器 username.setBounds(50,40,60,20);/设置姓名标签的初始位置 this.add(username);/ 将姓名标签组件添加到容器 t1.setBounds(120,40,80,20);/ 设置文本框的初始位置 this.add(t1);/ 将文本框组件添加到容器 password.setBounds(50,100,60,20);/密码标签的初始位置 this.add(password);/将密码标签组件添加到容器 t2.setBounds(120,100,80,20);/设置密码标签的初始位置 this.add(t2);/将密码标签组件添加到容器 b1.setBounds(50,150,60,20);/设置登陆按钮的初始位置 this.add(b1);/将登陆按钮组件添加到容器 b2.setBounds(120,150,60,20);/设置取消按钮的初始位置 this.add(b2);/ 将取消按钮组件添加到容器 b1.addActionListener(this);/给登陆按钮添加监听器 b2.addActionListener(this);/ 给取消按钮添加监听器 this.setVisible(true);/设置窗口的可见性 this.setSize(300,200);/设置窗口的大小 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );/通过内部类重写关闭窗体的方法 public void actionPerformed(ActionEvent e) if(e.getSource()=b1)/处理登陆事件 String name=t1.getText(); String pass=t2.getText(); if(name!=null&pass.equals(000123)/判断语句 new WindowExit(); public static void main(String args)/主函数 new login(); public class example public static void main(String args) WindowExit win=new WindowExit(); import java.awt.*;import java.awt.event.*;class WindowExit extends Frameimplements ActionListener MenuBar menubar; Menu menu1,menu2,menu3; MenuItem item1,item2,item3,item4,item5,item6,item7,item8; WindowExit() menubar=new MenuBar(); menu1=new Menu(资料查询); menu2=new Menu(客人编辑); menu3=new Menu(房间编辑); item1=new MenuItem(客人资料查询); item2=new MenuItem(房间资料查询); item3=new MenuItem(添加客人资料); item4=new MenuItem(修改客人资料); item5=new MenuItem(删除客人资料); item6=new MenuItem(添加房间资料); item7=new MenuItem(修改房间资料); item8=new MenuItem(删除房间资料); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6); menu3.add(item7); menu3.add(item8); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); setMenuBar(menubar); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); item6.addActionListener(this); item7.addActionListener(this); item8.addActionListener(this);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setBounds(110,100,300,300); setVisible(true); validate(); public void actionPerformed(ActionEvent e) /if(e.getSource()=item1)WindowText1 win=new WindowText1(客人查询界面); /if(e.getSource()=item2)WindowText2 win=new WindowText2(房间查询界面); if(e.getSource()=item5)WindowText5 win=new WindowText5(客人删除界面); if(e.getSource()=item3)WindowText3 win=new WindowText3(客人添加界面); /if(e.getSource()=item8)WindowText8 win=new WindowText8(房间删除界面); if(e.getSource()=item6)WindowText6 win=new WindowText6(房间添加界面); / if(e.getSource()=item7)WindowText7 win=new WindowText7(房间修改界面); / if(e.getSource()=item4)WindowText4 win=new WindowText4(客人修改界面); import java.awt.*;import java.awt.event.*; import java.sql.*;import javax.swing.border.*;import javax.swing.*; class WindowText3 extends Frame implements ActionListener TextField t1,t2,t3,t4,t5; Choice c1; Button b,b0,b01; Box b1,b2,b3,b4,b5,b6; WindowText3 (String s) super(s);setLayout(new FlowLayout(); c1=new Choice();c1.add(男);c1.add(女);t1=new TextField(15);t2=new TextField(15);t3=new TextField(15);t4=new TextField(15);t5=new TextField(15);b=new Button(添加);b0=new Button(清空);b01=new Button(返回);b1=Box.createVerticalBox(); b1.add(Box.createVerticalStrut(15); b1.add(new Label(证件号); b1.add(Box.createVerticalStrut(15); b1.add(new Label(姓名); b1.add(Box.createVerticalStrut(15); b1.add(new Label(性别);b2=Box.createVerticalBox(); b2.add(Box.createVerticalStrut(15); b2.add(new Label(年龄); b2.add(Box.createVerticalStrut(15); b2.add(new Label(电话); b2.add(Box.createVerticalStrut(15); b2.add(new Label(证件名称);b3=Box.createVerticalBox(); b3.add(Box.createVerticalStrut(15); b3.add(t1); b3.add(Box.createVerticalStrut(15); b3.add(t2); b3.add(Box.createVerticalStrut(15); b3.add(c1); b4=Box.createVerticalBox(); b4.add(Box.createVerticalStrut(15); b4.add(t3); b4.add(Box.createVerticalStrut(15); b4.add(t4); b4.add(Box.createVerticalStrut(15); b4.add(t5); b5=Box.createVerticalBox(); b5.add(Box.createVerticalStrut(15); b5.add(b); b5.add(Box.createVerticalStrut(15); b5.add(b0); b5.add(Box.createVerticalStrut(15); b5.add(b01); b6=Box.createHorizontalBox(); b6.add(b1); b6.add(Box.createHorizontalStrut(20); b6.add(b3); b6.add(Box.createHorizontalStrut(20); b6.add(b2); b6.add(Box.createHorizontalStrut(20); b6.add(b4); b6.add(Box.createHorizontalStrut(20); b6.add(b5); add(b6);add(new Label(备注);add(new TextArea();b0.setBackground(Color.pink);b01.setBackground(Color.pink);b.setBackground(Color.pink);b1.setBackground(Color.cyan);b2.setBackground(Color.cyan);b3.setBackground(Color.cyan);b4.setBackground(Color.cyan);b5.setBackground(Color.cyan);this.setForeground(Color.blue);b.setFont(new Font(楷体_GB2312, Font.BOLD, 18);b0.setFont(new Font(楷体_GB2312, Font.BOLD, 18);b01.setFont(new Font(楷体_GB2312, Font.BOLD, 18);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); b.addActionListener(this);b0.addActionListener(this);b01.addActionListener(this); setBounds(300,150,490,490); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=b0)t1.setText(null);t2.setText(null);t3.setText(null);t4.setText(null);t5.setText(null);c1.select(0); if(e.getSource()=b01) dispose(); else if(e.getSource()=b)/执行客人信息添加操作 Connection con; Statement sql; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e1) System.out.println(+e1); try con=DriverManager.getConnection(jdbc:odbc:sun,); sql=con.createStatement();String q=(+Integer.parseInt(t1.getText()+,+t2.getText()+,+c1.getSelectedItem()+,+t5.getText()+,+t4.getText()+,+t3.getText()+); String a=INSERT INTO 客人资料 values+q; sql.executeUpdate(a);JOptionPane.showMessageDialog(this,添加成功!, 消息对话框,JOptionPane.INFORMATION_MESSAGE); con.close(); catch(SQLException e2) System.out.println(e2);JOptionPane.showMessageDialog(this,输入信息有误,添加不成功!, 消息对话框,JOptionPane.INFORMATION_MESSAGE); import java.awt.*;import java.awt.event.*; import java.sql.*; class WindowText5 extends Frame implements ActionListener TextField text1,text2; Button b,c; TextArea a; WindowText5(String s) super(s); setLayout(new FlowLayout(); text1=new TextField(输入证件号:,15); text1.setEditable(false); text2=new TextField(15); a=new TextArea(13,55); c=new Button(删除); b=new Button(返回); add(text1); add(text2); add(c); add(a); add(b);c.addActionListener(this);b.addActionListener(this);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); setBounds(200,200,500,500); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=c) Connection con; Statement sql; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e1) System.out.println(+e1); try con=DriverManager.getConnection(jdbc:odbc:sun,); sql=con.createStatement(); String q=text2.getText(); String a=delete FROM 客人资料 WHERE 证件号码=+text2.getText()+; sql.executeUpdate(a); con.close(); catch(SQLException e2) System.out.println(e2); if(e.getSource()=b)dispose(); import java.awt.*;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会议邀请函(集合15篇)
- 疫情防控年度个人工作总结范文文本
- 大学学生实习报告范文锦集七篇
- 安全责任划分
- 开学典礼老师演讲稿集锦15篇
- 泊船瓜洲的课件教学
- 事业单位个人年度工作总结参考范文
- 房地产销售试用期工作总结18篇
- 政工工作计划模板集锦六篇
- 买卖合同范文合集六篇
- 2023年医科医学计算机应用题库
- (正式版)SHT 3070-2024 石油化工管式炉钢结构设计规范
- 发生心脏骤停的应急预案
- 咸阳中心医院门诊综合楼装修改造项目施工组织设计
- 全国高考数学新课标Ⅱ卷第11题说题课件
- 2024年荆州市产业投资发展集团有限公司招聘笔试参考题库附带答案详解
- 冲上云霄-飞机鉴赏智慧树知到期末考试答案2024年
- 建筑防雷与接地-等电位连接
- 2024行政法与行政诉讼法论述题
- 国际货运代理业现状及发展对策分析-以KX公司为例
- 施工现场安全文明施工管理处罚细则
评论
0/150
提交评论