1、课程设计报告课程名称:_面向对象基础及java语言课程设计 设计题目: 宾馆客房管理系统的设计与实现 学 院: 信息科学与工程学院 专 业: 计算机科学与技术(软件外包)_ 二零一五年七月二十四日一、 设计内容及要求 宾馆客房管理系统主要设计了管理员登陆,查询客房信息,修改、添加客房信息,通过java与数据库的连接,实现后台调用数据。通过调用数据库中的ID和password登陆管理系统,做出相应的处理。二、 开发环境1. Eclipse(java环境开发)2. JDK1.7(进行java程序的编译和运行)3. MySQL绿色版(数据库储存)三、 设计思路1. 整体框架 客房管理系统 客房信息查
2、询 添加客房信息 修改客房信息 2.数据库设计 本系统使用MySQL 绿色版来存储数据,其中有一个数据库home,数据库中包含两张表:xx表主要记录客房的信息(房间号,房间类型,单价,入住姓名,身份证号码,房间状态),如图表1-1;id表中记录管理员的信息(ID,password),如图1-2。表1-1 xx房间号房间类型单价入住姓名身份证号码房间状态301标准间168张树鹏370782199510093073入住303标准间168王栋370782199510094431入住305标准间168未入住307大床房148杨金石370782199510095566入住309家庭房256未入住表1-2
3、 idIDpasswordWangd7877Yangjs5988Zhangsp39773.数据库与Eclipse连接使用ODBC为数据库Student配置ODBC数据源,使应用程序可以访问数据库,进行应用程序和数据库之间的数据交互。四、 详细设计过程与分析1. 登陆界面 (1) 首先由用户输入账户和密码,由系统读取账号,并根据账号在数据库中查询相应的密码;(2) 根据数据库查询到的密码,与用户输入的密码进行匹配,如果相同,单击确定则可以进入功能界面。2. 功能界面 在功能界面,实现三个功能,分别是:查询客户信息,添加客户信息,修改客户信息。每个按钮添加单击事件。响应后进入相应的功能界面。3.
4、客房信息查询 进入客房信息查询界面,输入房间号,单击查询按钮,做出相应的事件处理事件,从home数据库xx表中读取房间类型,单价,入住姓名,身份证号码,入住状态。如果入住状态为未入住,则入住姓名,身份证号码为空。客房信息查询界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。4. 添加客房信息 进入客房信息查询界面,界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。添加客房信息中所需录入的客房信息,及其文本区域。当用户向文本区域录入数据完成单击添加时,响应增加事件。首先,进行数据库的连接,创建执行SQL的语句对象,执
5、行SQL语句,将数据插入到数据库,关闭连接。添加完成后,显示“添加成功”确认对话框。重置按钮功能为重置各文本框内的内容,使清空文本框更加方便。5. 修改客房信息 进入修改客房信息界面,界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。修改客房信息录入到文本区域,当用户向文本区域录入数据完成单击添加时,响应增加事件。首先,进行数据库的连接,创建执行SQL的语句对象,执行SQL语句,将数据插入到数据库,关闭连接。修改完成后,显示“修改成功”确认对话框。重置按钮功能为重置各文本框内的内容,使清空文本框更加方便。6. 数据库的建立 使用MySQL绿色版建立hom
6、e数据库,在数据库中建立id表和xx表。五、 源代码1. 登陆界面源代码package KF;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.beans.Statement;import java.sql.Connection;import java.sql.Result
7、Set;import java.util.ArrayList;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class HoteLand extends JFrame implements ActionListenerprivate
8、 JPanel panel1,panel2,panel3,panel4,panel5;private JLabel label1,label2,label3;private JTextField text1;private JTextField text2;private JButton button1,button2;public HoteLand()super(客房系统登录);this.setLocation(400,200);this.setSize(300,200);this.setBackground(java.awt.Color.LIGHT_GRAY);/this.setDefau
9、ltCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setLayout(new BorderLayout();panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();panel3.setLayout(new java.awt.FlowLayout(FlowLayout.CENTER);label1=new JLabel(客房管理系统);label2=new JLabel(账号);label3=ne
10、w JLabel(密码);text1=new JTextField(10);text2=new JPasswordField(10);button1=new JButton(确定);button1.addActionListener(this);button2=new JButton(退出);button2.addActionListener(this);panel4.add(label2);panel4.add(text1);panel5.add(label3);panel5.add(text2);panel1.add(panel4);panel1.add(panel5);panel2.ad
11、d(button1);panel2.add(button2);panel3.add(label1);this.getContentPane().add(panel3,North);this.getContentPane().add(panel1,Center);this.getContentPane().add(panel2,South);this.setVisible(true);public static void main(String args)new HoteLand();Overridepublic void actionPerformed(ActionEvent arg0) /
12、TODO Auto-generated method stubif(arg0.getSource()=button1)DB db=new DB();/链接数据库String sql=SELECT *FROM id WHERE ID=+text1.getText()+;ArrayListlist=db.arrQuery(sql);if(list.get(0)1.equals(text2.getText()new Jiemian();this.dispose();else/JOptionPane.showMessageDialog(this,+text1.getText()+账号错误,请重新输入!
13、);JOptionPane.showMessageDialog(this,+text2.getText()+密码错误,请重新输入!);text2.setText();text1.setText();if(arg0.getSource()=button2)/text1.setText(null);/text2.setText(null);System.exit(0);2. 功能界面package KF;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import j
14、ava.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Jiemian extends JFrame implements ActionListenerprivate JLabel label1,label2,label3;private JPanel panel1,panel2,panel3,panel4,panel5;private JButton but
15、ton1,button2,button3;public Jiemian()this.setLocation(400,200);this.setSize(400,130);this.setBackground(java.awt.Color.LIGHT_GRAY);panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();button1=new JButton(客房信息查询);button1.addActionListener(this);button2=n
16、ew JButton(添加客房信息);button2.addActionListener(this);button3=new JButton(修改客房信息);button3.addActionListener(this);label2=new JLabel(-欢迎使用客房管理系统-);panel1.add(button1);panel1.add(button2);panel1.add(button3);panel2.add(label2);this.getContentPane().add(panel2,South);this.getContentPane().add(panel1,Cente
17、r);this.getContentPane().add(panel3,North);this.setVisible(true);public static void main(String args)new Jiemian();Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubif(arg0.getSource()=button1)new Chaxu();this.dispose();if(arg0.getSource()=button2)new AddRooms();
18、this.dispose();if(arg0.getSource()=button3)new Xgkfxx();this.dispose();3. 添加客房信息界面package KF;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;i
19、mport javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class AddRooms extends JFrame implements ActionListenerprivate JLabel label1,label2,label3,label4,label5,label6,label7;private JPanel panel1,panel2,panel3,panel4,panel5,panel6,panel
20、7,panel8,panel9;private JButton button1,button2,button3,button4,button5;private JTextField a,b,c,d,e,f;private JComboBox lx,dj,zt;SuppressWarnings( unchecked, rawtypes )public AddRooms() super(客房管理系统); this.setLocation(400,200);this.setSize(420,400);this.setBackground(java.awt.Color.LIGHT_GRAY);this
21、.getContentPane().setLayout(new FlowLayout(1);panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();panel6=new JPanel();panel7=new JPanel();panel8=new JPanel();panel9=new JPanel();button1=new JButton(客房信息查询);button1.addActionListener(this);button2=new JB
22、utton(添加客房信息);button2.addActionListener(this);button3=new JButton(修改客房信息);button3.addActionListener(this);label1=new JLabel( 添加客房信息);label2=new JLabel(房 间 号:); a=new JTextField(25); label3=new JLabel(房间类型:); /b=new JTextField(25); String t1=大床房 ,标准间 ,家庭房; lx=new JComboBox(t1); lx.setPreferredSize(ne
23、w Dimension(280,25); label4=new JLabel(单 价:); String t2=148,168,256; dj=new JComboBox(t2); dj.setPreferredSize(new Dimension(280,25); label5=new JLabel(入住姓名:); d=new JTextField(25); label6=new JLabel(身份证号:); e=new JTextField(25); label7=new JLabel(状 态:); String t3=入住 ,未入住 ; zt=new JComboBox(t3); zt.
24、setPreferredSize(new Dimension(280,25); button4=new JButton(添加);button4.addActionListener(this);button5=new JButton(重置);button5.addActionListener(this);panel1.add(button1);panel1.add(button2);panel1.add(button3);panel2.add(label1);panel3.add(label2);panel3.add(a);panel4.add(label3);panel4.add(lx);pa
25、nel5.add(label4);panel5.add(dj);panel6.add(label5);panel6.add(d);panel7.add(label6);panel7.add(e);panel9.add(label7);panel9.add(zt);panel8.add(button4);panel8.add(button5);this.getContentPane().add(panel1,Center);this.getContentPane().add(panel2,Center);this.getContentPane().add(panel3,Center);this.
26、getContentPane().add(panel4,Center);this.getContentPane().add(panel5,Center);this.getContentPane().add(panel6,Center);this.getContentPane().add(panel7,Center);this.getContentPane().add(panel9,Center);this.getContentPane().add(panel8,Center);this.setVisible(true);Overridepublic void actionPerformed(A
27、ctionEvent arg0) / TODO Auto-generated method stubif(arg0.getSource()=button1)new Chaxu();this.dispose();if(arg0.getSource()=button2)new AddRooms();this.dispose();if(arg0.getSource()=button3)new Xgkfxx();this.dispose();if(arg0.getSource()=button4)/System.out.println(lx.getSelectedIndex();DB db=new D
28、B();/链接数据库String sql=INSERT INTO xx VALUES (+a.getText()+,+lx.getSelectedItem()+,+dj.getSelectedItem()+,+d.getText()+,+e.getText()+,+zt.getSelectedItem()+);int n=db.update(sql);if(n0)JOptionPane.showMessageDialog(this,添加成功!);a.setText();lx.getSelectedIndex();dj.getSelectedIndex();d.setText();e.setTe
29、xt();zt.getSelectedIndex();if(arg0.getSource()=button5)a.setText();b.setText();c.setText();d.setText();e.setText();public static void main(String args)new AddRooms();4. 客房信息查询package KF;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.
30、Statement;import java.util.ArrayList;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Chaxu extends JFrame implements ActionListenerprivate JLabel label1,label2,label3,la
31、bel4,label5,label6,label7;Private JPanel panel1,panel2,panel3,panel4,panel5,panel6,panel7,panel8;private JButton button1,button2,button3,button4,button5;private JTextField a,b,c,e,d,f;Statement sqll;public Chaxu()super(欢迎使用客房管理系统);this.setLocation(400,200);this.setSize(420,380);this.setBackground(ja
32、va.awt.Color.LIGHT_GRAY);this.getContentPane().setLayout(new FlowLayout(1);panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();panel6=new JPanel();panel7=new JPanel();panel8=new JPanel();button1=new JButton(客房信息查询);button1.addActionListener(this);butto
33、n2=new JButton(添加客房信息);button2.addActionListener(this);button3=new JButton(修改客房信息);button3.addActionListener(this);label1=new JLabel( 查 询 客 房 信 息 );label2=new JLabel(房 间 号:); a=new JTextField(19); button4=new JButton(查询); button4.addActionListener(this); label3=new JLabel(房间类型:); b=new JTextField(25
34、); label4=new JLabel(单 价:); c=new JTextField(25); label5=new JLabel(入住姓名:); d=new JTextField(25); label6=new JLabel(身份证号:); e=new JTextField(25); label7=new JLabel(房间状态:); f=new JTextField(25); button5=new JButton(返回); button5.addActionListener(this);panel1.add(button1);panel1.add(button2);panel1.ad
35、d(button3);panel2.add(label2);panel2.add(a);panel2.add(button4);panel3.add(label3);panel3.add(b);panel4.add(label4);panel4.add(c);panel5.add(label5);panel5.add(d);panel6.add(label6);panel6.add(e);panel8.add(label7);panel8.add(f);panel7.add(button5);this.getContentPane().add(panel1,Center);this.getCo
36、ntentPane().add(label1,Center);this.getContentPane().add(panel2,Center);this.getContentPane().add(panel3,Center);this.getContentPane().add(panel4,Center);this.getContentPane().add(panel5,Center);this.getContentPane().add(panel6,Center);this.getContentPane().add(panel8,Center);this.getContentPane().a
37、dd(panel7,Center);this.setVisible(true);public static void main(String args)new Chaxu();Overridepublic void actionPerformed(ActionEvent e1) / TODO Auto-generated method stubif(e1.getSource()=button1)new Chaxu();this.dispose();if(e1.getSource()=button2)new AddRooms();this.dispose();if(e1.getSource()=
38、button3)new Xgkfxx();this.dispose();if(e1.getSource()=button4)DB db=new DB();/链接数据库String sql=SELECT 房间类型,单价,入住姓名,身份证号码,房间状态 FROM xx WHERE 房间号=+a.getText();ArrayList list = db.arrQuery(sql);b.setText(list.get(0)0);c.setText(list.get(0)1);d.setText(list.get(0)2);e.setText(list.get(0)3);f.setText(list
39、.get(0)4);if(e1.getSource()=button5)new Jiemian();this.dispose();5. 修改客房信息package KF;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import
40、javax.swing.JPanel;import javax.swing.JTextField;public class Xgkfxx extends JFrame implements ActionListenerprivate JLabel label1,label2,label3,label4,label5,label6,label7;private JPanel panel1,panel2,panel3,panel4,panel5,panel6,panel7,panel8,panel9;private JButton button1,button2,button3,button4,b
41、utton5;private JTextField a,b,c,d,e,f;public Xgkfxx() super(客房管理系统); this.setLocation(400,200);this.setSize(420,380);this.setBackground(java.awt.Color.LIGHT_GRAY);this.getContentPane().setLayout(new FlowLayout(1);panel1=new JPanel();panel2=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();panel6=new JPanel();panel7=new JPanel();panel8=new JPanel();panel9=new JPanel();button1=new JButton(客房信息查询);button1.