资源描述
课程设计报告
课程名称:_面向对象基础及java语言课程设计
设计题目: 宾馆客房管理系统的设计与实现
学 院: 信息科学与工程学院
专 业: 计算机科学与技术(软件外包)_
二零一五年七月二十四日
一、 设计内容及要求
宾馆客房管理系统主要设计了管理员登陆,查询客房信息,修改、添加客房信息,通过java与数据库的连接,实现后台调用数据。通过调用数据库中的ID和password登陆管理系统,做出相应的处理。
二、 开发环境
1. Eclipse(java环境开发)
2. JDK1.7(进行java程序的编译和运行)
3. MySQL绿色版(数据库储存)
三、 设计思路
1. 整体框架
客房管理系统
客房信息查询 添加客房信息 修改客房信息
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 id
ID
password
Wangd
7877
Yangjs
5988
Zhangsp
3977
3.数据库与Eclipse连接
使用ODBC为数据库Student配置ODBC数据源,使应用程序可以访问数据库,进行应用程序和数据库之间的数据交互。
四、 详细设计过程与分析
1. 登陆界面
(1) 首先由用户输入账户和密码,由系统读取账号,并根据账号在数据库中查询相应的密码;
(2) 根据数据库查询到的密码,与用户输入的密码进行匹配,如果相同,单击确定则可以进入功能界面。
2. 功能界面
在功能界面,实现三个功能,分别是:查询客户信息,添加客户信息,修改客户信息。每个按钮添加单击事件。响应后进入相应的功能界面。
3. 客房信息查询
进入客房信息查询界面,输入房间号,单击查询按钮,做出相应的事件处理事件,从home数据库xx表中读取房间类型,单价,入住姓名,身份证号码,入住状态。如果入住状态为未入住,则入住姓名,身份证号码为空。客房信息查询界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。
4. 添加客房信息
进入客房信息查询界面,界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。添加客房信息中所需录入的客房信息,及其文本区域。当用户向文本区域录入数据完成单击添加时,响应增加事件。首先,进行数据库的连接,创建执行SQL的语句对象,执行SQL语句,将数据插入到数据库,关闭连接。添加完成后,显示“添加成功”确认对话框。重置按钮功能为重置各文本框内的内容,使清空文本框更加方便。
5. 修改客房信息
进入修改客房信息界面,界面上方有客房信息查询、添加客房信息、修改客房信息三个单击按钮,点击可以直接实现事件响应。修改客房信息录入到文本区域,当用户向文本区域录入数据完成单击添加时,响应增加事件。首先,进行数据库的连接,创建执行SQL的语句对象,执行SQL语句,将数据插入到数据库,关闭连接。修改完成后,显示“修改成功”确认对话框。重置按钮功能为重置各文本框内的内容,使清空文本框更加方便。
6. 数据库的建立
使用MySQL绿色版建立home数据库,在数据库中建立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.ResultSet;
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 ActionListener{
private 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.setDefaultCloseOperation(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=new 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.add(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();
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getSource()==button1){
DB db=new DB();//链接数据库
String sql="SELECT *FROM id WHERE ID='"+text1.getText()+"'";
ArrayList<String []>list=db.arrQuery(sql);
if(list.get(0)[1].equals(text2.getText())){
new Jiemian();
this.dispose();
}else{
//JOptionPane.showMessageDialog(this,"\""+text1.getText()+"\"账号错误,请重新输入!");
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 java.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 ActionListener{
private JLabel label1,label2,label3;
private JPanel panel1,panel2,panel3,panel4,panel5;
private JButton button1,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=new 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,"Center");
this.getContentPane().add(panel3,"North");
this.setVisible(true);
}
public static void main(String[] args){
new Jiemian();
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getSource()==button1){
new Chaxu();
this.dispose();
}
if(arg0.getSource()==button2){
new AddRooms();
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;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AddRooms extends JFrame implements ActionListener{
private 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,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.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 JButton("添加客房信息");
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(new 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.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);
panel5.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.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);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(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 DB();//链接数据库
String sql="INSERT INTO xx VALUES ("+a.getText()+",'"+lx.getSelectedItem()+"',"+dj.getSelectedItem()+",'"+d.getText()+"','"+e.getText()+"',"+"'"+zt.getSelectedItem()+"'"+")";
int n=db.update(sql);
if(n>0)
{
JOptionPane.showMessageDialog(this,"添加成功!");
a.setText("");
lx.getSelectedIndex();
dj.getSelectedIndex();
d.setText("");
e.setText("");
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.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 ActionListener{
private JLabel label1,label2,label3,label4,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(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();
button1=new JButton("客房信息查询");
button1.addActionListener(this);
button2=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);
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.add(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.getContentPane().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().add(panel7,"Center");
this.setVisible(true);
}
public static void main(String[] args){
new Chaxu();
}
@Override
public void actionPerformed(ActionEvent e1) {
// TODO Auto-generated method stub
if(e1.getSource()==button1){
new Chaxu();
this.dispose();
}
if(e1.getSource()==button2){
new AddRooms();
this.dispose();
}
if(e1.getSource()==button3){
new Xgkfxx();
this.dispose();
}
if(e1.getSource()==button4){
DB db=new DB();//链接数据库
String sql="SELECT 房间类型,单价,入住姓名,身份证号码,房间状态 FROM xx WHERE 房间号="+a.getText();
ArrayList<String[]> 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.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 javax.swing.JPanel;
import javax.swing.JTextField;
public class Xgkfxx extends JFrame implements ActionListener{
private 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,button5;
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.
展开阅读全文