面向对象技术基础及java语言课程设计宾馆客房管理系统的设计与实现.docx
《面向对象技术基础及java语言课程设计宾馆客房管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《面向对象技术基础及java语言课程设计宾馆客房管理系统的设计与实现.docx(24页珍藏版)》请在冰豆网上搜索。
面向对象技术基础及java语言课程设计宾馆客房管理系统的设计与实现
课程设计报告
课程名称:
_面向对象基础及java语言课程设计
设计题目:
宾馆客房管理系统的设计与实现
学院:
信息科学与工程学院
专业:
运算机科学与技术(软件外包)_
二零一五年七月二十四日
一、设计内容及要求
宾馆客房管理系统主要设计了管理员登岸,查询客房信息,修改、添加客房信息,通过java与数据库的连接,实现后台挪用数据。
通过挪用数据库中的ID和password登岸管理系统,做出相应的处置。
二、开发环境
1.Eclipse(java环境开发)
2.(进行java程序的编译和运行)
3.MySQL绿色版(数据库贮存)
三、设计思路
1.整体框架
客房管理系统
客房信息查询添加客房信息修改客房信息
2.数据库设计
本系统利用MySQL绿色版来存储数据,其中有一个数据库home,数据库中包括两张表:
xx表主要记录客房的信息(房间号,房间类型,单价,入住姓名,身份证号码,房间状态),如图表1-1;id表中记录管理员的信息(ID,password),如图1-2。
表1-1xx
房间号
房间类型
单价
入住姓名
身份证号码
房间状态
301
标准间
168
张树鹏
370782
入住
303
标准间
168
王栋
370782
入住
305
标准间
168
未入住
307
大床房
148
杨金石
370782
入住
309
家庭房
256
未入住
表1-2id
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.登岸界面源代码
packageKF;
importclassHoteLandextendsJFrameimplementsActionListener{
privateJPanelpanel1,panel2,panel3,panel4,panel5;
privateJLabellabel1,label2,label3;
privateJTextFieldtext1;
privateJTextFieldtext2;
privateJButtonbutton1,button2;
publicHoteLand()
{
super("客房系统登录");
(400,200);
(300,200);
etLayout(newBorderLayout());
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
panel4=newJPanel();
panel5=newJPanel();
(newlabel1=newJLabel("————客房管理系统————");
label2=newJLabel("账号");
label3=newJLabel("密码");
text1=newJTextField(10);
text2=newJPasswordField(10);
button1=newJButton("肯定");
(this);
button2=newJButton("退出");
(this);
(label2);
(text1);
(label3);
(text2);
(panel4);
(panel5);
(button1);
(button2);
(label1);
().add(panel3,"North");
().add(panel1,"Center");
().add(panel2,"South");
(true);
}
publicstaticvoidmain(String[]args){
newHoteLand();
}
@Override
publicvoidactionPerformed(ActionEventarg0){
quals())){
newJiemian();
();
}else{
dd(panel2,"South");
().add(panel1,"Center");
().add(panel3,"North");
(true);
}
publicstaticvoidmain(String[]args){
newJiemian();
}
@Override
publicvoidactionPerformed(ActionEventarg0){
etLayout(newFlowLayout
(1));
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
panel4=newJPanel();
panel5=newJPanel();
panel6=newJPanel();
panel7=newJPanel();
panel8=newJPanel();
panel9=newJPanel();
button1=newJButton("客房信息查询");
(this);
button2=newJButton("添加客房信息");
(this);
button3=newJButton("修改客房信息");
(this);
label1=newJLabel("添加客房信息");
label2=newJLabel("房间号:
");
a=newJTextField(25);
label3=newJLabel("房间类型:
");
dd(panel1,"Center");
().add(panel2,"Center");
().add(panel3,"Center");
().add(panel4,"Center");
().add(panel5,"Center");
().add(panel6,"Center");
().add(panel7,"Center");
().add(panel9,"Center");
().add(panel8,"Center");
(true);
}
@Override
publicvoidactionPerformed(ActionEventarg0){
etLayout(newFlowLayout
(1));
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
panel4=newJPanel();
panel5=newJPanel();
panel6=newJPanel();
panel7=newJPanel();
panel8=newJPanel();
button1=newJButton("客房信息查询");
(this);
button2=newJButton("添加客房信息");
(this);
button3=newJButton("修改客房信息");
(this);
label1=newJLabel("查询客房信息");
label2=newJLabel("房间号:
");
a=newJTextField(19);
button4=newJButton("查询");
(this);
label3=newJLabel("房间类型:
");
b=newJTextField(25);
label4=newJLabel("单价:
");
c=newJTextField(25);
label5=newJLabel("入住姓名:
");
d=newJTextField(25);
label6=newJLabel("身份证号:
");
e=newJTextField(25);
label7=newJLabel("房间状态:
");
f=newJTextField(25);
button5=newJButton("返回");
(this);
(button1);
(button2);
(button3);
(label2);
(a);
(button4);
(label3);
(b);
(label4);
(c);
(label5);
(d);
(label6);
(e);
(label7);
(f);
(button5);
().add(panel1,"Center");
().add(label1,"Center");
().add(panel2,"Center");
().add(panel3,"Center");
().add(panel4,"Center");
().add(panel5,"Center");
().add(panel6,"Center");
().add(panel8,"Center");
().add(panel7,"Center");
(true);
}
publicstaticvoidmain(String[]args){
newChaxu();
}
@Override
publicvoidactionPerformed(ActionEvente1){
etLayout(newFlowLayout
(1));
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
panel4=newJPanel();
panel5=newJPanel();
panel6=newJPanel();
panel7=newJPanel();
panel8=newJPanel();
panel9=newJPanel();
button1=newJButton("客房信息查询");
(this);
button2=newJButton("添加客房信息");
(this);
button3=newJButton("修改客房信息");
(this);
label1=newJLabel("修改客房信息");
label2=newJLabel("房间号:
");
a=newJTextField(25);
label3=newJLabel("房间类型:
");
b=newJTextField(25);
label4=newJLabel("单价:
");
c=newJTextField(25);
label5=newJLabel("入住姓名:
");
d=newJTextField(25);
label6=newJLabel("身份证号:
");
e=newJTextField(25);
label7=newJLabel("状态:
");
f=newJTextField(25);
button4=newJButton("修改");
(this);
button5=newJButton("重置");
(this);
(button1);
(button2);
(button3);
(label1);
(label2);
(a);
(label3);
(b);
(label4);
(c);
(label5);
(d);
(label6);
(e);
(label7);
(f);
(button4);
(button5);
().add(panel1,"Center");
().add(panel2,"Center");
().add(panel3,"Center");
().add(panel4,"Center");
().add(panel5,"Center");
().add(panel6,"Center");
().add(panel7,"Center");
().add(panel9,"Center");
().add(panel8,"Center");
(true);
}
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
if()==button1){
newChaxu();
();
}
if()==button2){
newAddRooms();
();
}
if()==button3){
newXgkfxx();
();
}
if()==button4){
if()==button4){
DBdb=newDB();//链接数据库
Stringsql="updatexxset房间类型='"+()+"',单价="+()+",入住姓名='"+()+"',身份证号码="+()+",房间状态='"+()+"'where房间号="+();
intn=(sql);
if(n>0)
{
(this,"修改成功!
");
("");
("");
("");
("");
("");
("");
}
}
if()==button5){
("");
("");
("");
("");
("");
("");
}
}
}
publicstaticvoidmain(String[]args){
newXgkfxx();
}
}
2.连接数据库
packageKF;
importclassDB{
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
publicvoidgetConnection(){
try{
("");//加载驱动
conn=("jdbc:
","root","mysql");//获取连接
stmt=();//创建语句对象
}catch(Exceptione){
//TODOAuto-generatedcatchblock
();
}
}
publicintupdate(Stringsql){
intnum=-1;
getConnection();
try{
num=(sql);
}catch(SQLExceptione){
();
}finally{
close();
}
returnnum;
}
publicstaticvoidmain(String[]args){
DBdb=newDB();
ArrayListarr=("select*fromemployee");
for(inti=0;i<();i++){
String[]temp=(i);
for(Stringt:
temp){
"");
}
}
}
publicArrayListarrQuery(Stringsql){
getConnection();
ArrayListrsList=newArrayList();
try{
rs=(sql);
ResultSetMetaDatarsmd=();
intnum=();
while()){
String[]arr=newString[num];
for(inti=1;i<=num;i++){
Stringtemp=(i);
arr[i-1]=temp;
}
(arr);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
();
}finally{
close();
}
returnrsList;
}
//编写程序:
//创建一个类DBTools,在DBTools中创建一个方法find,find方法用于对数据库进行查询操作,现在要求将结果集封装成数组线性表嵌套数组的形式:
//ArrayListrsList=newArrayList()形式
//其中:
String[]用于存储一行记录的所有字段(的值)
//rsList存储所有的数组(String[]),即记录的总数
publicArrayList>query(Stringsql){
getConnection();
ArrayList>alist=newArrayList>();
try{
rs=(sql);
ResultSetMetaDatarsmd=();//获取结果集结构对象
while()){
HashMaphm=newHashMap();
for(inti=1;i<=();i++){
Stringkey=(i);
Stringvalue=(i);
(key,value);
}
(hm);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
();
}finally{
close();
}
returnalist;
}
publicArrayListpageQuery(intpageCount,intpageNum,Stringsql){//select*fromemployeelimit
StringnewSql=sql+"limit"+(pageNum-1)*pageCount+","+pageCount;
returnarrQuery(newSql);
}
publicvoidclose(){
if(rs!
=null){
try{
();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
();
}
}
if(stmt!
=null){
try{
();