当前位置:文档之家› 2015面向对象技术基础及java语言课程设计报告 张树鹏 杨金石 王栋

2015面向对象技术基础及java语言课程设计报告 张树鹏 杨金石 王栋

课程设计报告

课程名称:_面向对象基础及java语言课程设计

设计题目:宾馆客房管理系统的设计与实现

学院:信息科学与工程学院

专业:计算机科学与技术(软件外包)_ 姓名:杨金石王栋张树鹏___

学号:20131214157 20131214134 20131214180 班级:计软1301

指导教师:董立凯

二零一五年七月二十四日

一、设计内容及要求

宾馆客房管理系统主要设计了管理员登陆,查询客房信息,修改、添加客房信息,通过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

表1-2 id

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()+"'";

ArrayListlist=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 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.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);

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);

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(b);

panel5.add(label4);

panel5.add(c);

panel6.add(label5);

panel6.add(d);

panel7.add(label6);

panel7.add(e);

panel9.add(label7);

panel9.add(f);

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){

if(arg0.getSource()==button4){

DB db=new DB();//链接数据库

String sql="update xx set 房间类型= '"+b.getText()+"',单价="+c.getText()+",入住姓名='"+d.getText()+"',身份证号码="+e.getText()+",房间状态='"+f.getText()+"' where 房间号="+a.getText();

int n=db.update(sql);

if(n>0)

{

JOptionPane.showMessageDialog(this,"修改成功!");

a.setText("");

b.setText("");

c.setText("");

d.setText("");

e.setText("");

f.setText("");

}

}

if(arg0.getSource()==button5){

a.setText("");

b.setText("");

c.setText("");

d.setText("");

e.setText("");

f.setText("");

}

}

}

public static void main(String[] args){

new Xgkfxx();

}

}

6.连接数据库

package KF;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashMap;

public class DB {

Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

public void getConnection(){

try {

Class.forName("com.mysql.jdbc.Driver");//加载驱动

conn = DriverManager.getConnection("jdbc:mysql://localhost:3308/home","root","m ysql");//获取连接

stmt = conn.createStatement();//创建语句对象

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public int update(String sql){

int num = -1;

getConnection();

try {

num = stmt.executeUpdate(sql);

} catch (SQLException e) {

e.printStackTrace();

}finally{

close();

}

return num;

}

public static void main(String[] args) {

DB db = new DB();

ArrayList arr = db.arrQuery("select * from employee");

for (int i = 0; i < arr.size(); i++) {

String[] temp = arr.get(i);

for(String t : temp){

System.out.print(t+" ");

}

System.out.println();

}

}

public ArrayList arrQuery(String sql){

getConnection();

ArrayList rsList = new ArrayList();

try {

rs = stmt.executeQuery(sql);

ResultSetMetaData rsmd = rs.getMetaData();

int num = rsmd.getColumnCount();

while(rs.next()){

String[] arr = new String[num];

for (int i = 1; i <=num; i++) {

String temp = rs.getString(i);

arr[i-1] = temp;

}

rsList.add(arr);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return rsList;

}

// 编写程序:

// 创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:

// ArrayList rsList = new ArrayList()形式

// 其中: String[] 用于存储一行记录的所有字段(的值)

// rsList存储所有的数组(String[]),即记录的总数

public ArrayList> query(String sql){ getConnection();

ArrayList> alist = new ArrayList>();

try {

rs = stmt.executeQuery(sql);

ResultSetMetaData rsmd = rs.getMetaData();//获取结果集结构对象

while(rs.next()){

HashMap hm = new HashMap();

for (int i = 1; i <=rsmd.getColumnCount(); i++) {

String key = rsmd.getColumnName(i);

String value = rs.getString(i);

hm.put(key, value);

alist.add(hm);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return alist;

}

public ArrayList pageQuery(int pageCount,int pageNum,String sql){//select *from employeelimit

String newSql = sql+" limit "+(pageNum-1)*pageCount+","+pageCount;

return arrQuery(newSql);

}

public void close(){

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(stmt!=null){

try {

stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(conn!=null){

try {

相关主题
文本预览
相关文档 最新文档