前言:
項目是使用java swing開發,可實現基礎數據維護用戶登錄、系統首頁酒店信息管理、主要模塊是開房管理、退房管理、房間信息管理、顧客信息管理等功能。界面設計比較簡介、適合作為java課設設計以及學習技術使用。
引言
在信息高度發達的今天, 酒店業務涉及的各個工作環節已不再僅僅是傳統 的住宿、 結算業務,而是更廣、更全面的服務性行業代表。酒店賓館作為一個服務性行業,從客 房的營銷即客人的預定開始, 到入住登記直到最后退房結賬, 整個過程應該能夠體現以 賓客為中心,提供快捷方便服務,給賓客感受一種顧客至上的享受,提高管理水平,簡 化各種復雜操作, 在最短時間內完成酒店業務規范操作, 這樣才能令旅客舒適難忘。 因 此,采用全新的計算機管理系統, 將成為提高酒店的管理效率, 改善服務水準的手段之 一。系統從滿足客戶的需求角度出發, 實現了酒店管理的基本流程。 系統的主要功能包 登錄、重置、查看 設置等等。用戶入住酒店的時候所要等待的時間就會大大的減少, 操作員能夠很方便的 對用戶信息的登記和對房間狀態的的管理, 從而實現了酒店管理系統高效、 準確的特點。
主要技術和工具:
eclipse+jdk1.8+navicat +swing +mysql
功能截圖:
登錄管理:
用戶輸入賬號密碼以及驗證碼進行登錄驗證
酒店管理信息:
開房:
用戶錄入開房相關信息、 提交的時候后臺會驗證數據的數據是否正確、房間是否被占用等情況
退房:
輸入身份證信息和房間號進行驗證正確后完成退房
房間信息:
房間信息管理管理頁面可以查看所有的房間信息、房間標準以及狀態等、也可以更具房間類型來查詢房間信息。
顧客信息:
關鍵代碼:
主入口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
public class loginframe extends jframe { private jpanel contentpane; private jtextfield textfield; private jpasswordfield passwordfield; private jtextfield textfield_1; private captchautils cpt; private bufferedimage image1; private string code; private jlabel label_6; //創建deskservice對象 private deskservice deskservice= new deskserviceimpl(); public static void main(string[] args) { eventqueue.invokelater( new runnable() { public void run() { try { loginframe frame = new loginframe(); frame.setvisible( true ); } catch (exception e) { e.printstacktrace(); } } }); } public loginframe() { setbackground(color.green); settitle( "king's landing" ); setdefaultcloseoperation(jframe.dispose_on_close); setbounds( 500 , 250 , 624 , 524 ); contentpane = new jpanel(){ protected void paintcomponent(graphics g){ super .paintcomponent(g); imageicon images= new imageicon( "images/624524.jpg" ); g.drawimage(images.getimage(), 0 , 0 , null ); } }; contentpane.setborder( new emptyborder( 5 , 5 , 5 , 5 )); setcontentpane(contentpane); jlabel label_1 = new jlabel( "\u7528\u6237\u540d" ); label_1.setbackground(color.white); label_1.setforeground(color.white); label_1.setfont( new font( "微軟雅黑" , font.plain, 15 )); label_1.seticon( new imageicon(loginframe. class .getresource( "/images/yonghu.png" ))); textfield = new jtextfield(); textfield.setbackground(color.white); textfield.setcolumns( 10 ); label_6= new jlabel(); label_6.addmouselistener( new mouseadapter() { @override public void mouseclicked(mouseevent e) { cpt= new captchautils(); //獲取畫布 image1=cpt.getbuffimg(); //獲取隨機數 code=cpt.getcode(); imageicon icon= new imageicon(image1, "jpeg" ); label_6.seticon(icon); } }); /** * 驗證碼 */ cpt= new captchautils(); //獲取畫布 image1=cpt.getbuffimg(); //獲取隨機數 code=cpt.getcode(); imageicon icon= new imageicon(image1, "jpeg" ); label_6.seticon(icon); jlabel label_2 = new jlabel( "\u5bc6\u7801" ); label_2.setforeground(color.white); label_2.setfont( new font( "微軟雅黑" , font.plain, 15 )); label_2.seticon( new imageicon(loginframe. class .getresource( "/images/mima.png" ))); jbutton button = new jbutton( "\u767b\u5f55" ); //設置按鈕的透明 button.setcontentareafilled( false ); //給按鈕上的字設置顏色 button.setforeground(color.white); button.setbackground(color.white); button.setfont( new font( "微軟雅黑" , font.plain, 20 )); button.addmouselistener( new mouseadapter() { @override public void mouseclicked(mouseevent e) { //獲取輸入的用戶名和密碼 string name=textfield.gettext(); char []array=passwordfield.getpassword(); string password= new string(array); system.out.println( "name:" +name); system.out.println( "password:" +password); //用戶輸入的驗證碼 string codeframe=textfield_1.gettext(); if (!(code.equalsignorecase((codeframe)))){ joptionpane.showmessagedialog( null , "驗證碼錯誤,請重新輸入!" ); return ; } deskdaoimpl deskdao= new deskdaoimpl(); desk desk= new desk(name,password); int code=deskdao.logindesk(desk); //判斷是否是管理員登錄 if (code== 1 ){ //登錄成功 new homeframe().setvisible( true ); //符合 則跳轉到管理員的后臺管理界面 dispose(); return ; } else { boolean bool=deskservice.logindeskservice(desk); if (!bool){ joptionpane.showmessagedialog( null , "賬號或密碼錯誤,請重新輸入!" ); return ; } //登錄成功 new homeframe().setvisible( true ); dispose(); } }); } |
開房入住:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
@override //開房監聽事件 public void mouseclicked(mouseevent e) { //獲取輸入的房間號 int houseid=integer.parseint(textfield.gettext()); //獲取輸入的姓名 string name=p_name.gettext(); //獲取輸入的年齡 int age=integer.parseint(p_age.gettext()); //獲取輸入的入住天數 int day=integer.parseint(p_day.gettext()); //獲取輸入的身份證號 string id=p_id.gettext(); //獲取輸入的性別 string sex=p_sex.gettext(); //獲取房間類型 string type=p_type.gettext(); //封裝到guest實體中 guest guest= new guest(); guest.setg_roomid(houseid); guest.setg_name(name); guest.setg_age(age); guest.setg_days(day); guest.setg_id(id); guest.setg_sex(sex); //封裝到room實體中 room room= new room(); room.setr_id(houseid); //判斷年齡是否合理 if (!(age> 0 &&age< 100 )){ joptionpane.showmessagedialog( null , "年齡輸入不合理,請重新輸入!" ); return ; } //判斷性別是否合理 if (!(sex.equals( "男" )||sex.equals( "女" ))){ joptionpane.showmessagedialog( null , "性別只能是男或女,請重新輸入!" ); return ; } //入住天數不能小于1 if (!(day> 0 )){ joptionpane.showmessagedialog( null , "入住天數不能小于1天,請重新輸入!" ); return ; } boolean bool=rs.openroom(room); if (!bool){ //房間已滿則開房失敗 joptionpane.showmessagedialog( null , "該房間已滿,請更換房間!" ); return ; } if (!(type.equals( "標準房" )||type.equals( "套房" )||type.equals( "雙人房" )||type.equals( "豪華套房" ))){ joptionpane.showmessagedialog( null , "輸入的信息有誤,開房失敗!" ); return ; } boolean bool1=gsi.addguest(guest); if (bool1){ //身份證不符合格式也失敗 joptionpane.showmessagedialog( null , "身份證不符合格式,開房失敗!" ); return ; } } }); |
數據庫設計:
用戶表:
1
2
3
4
5
6
7
8
9
10
11
|
create table `newtable` ( `d_id` int ( 11 ) not null auto_increment comment '前臺id' , `d_name` varchar( 10 ) character set latin1 collate latin1_swedish_ci null default null comment '姓名' , `d_password` varchar( 10 ) character set latin1 collate latin1_swedish_ci null default null comment '密碼' , index `d_id` (`d_id`) using btree ) engine=innodb default character set=latin1 collate=latin1_swedish_ci auto_increment= 112 row_format=compact ; |
入住信息表:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
create table `newtable` ( `g_roomid` int ( 11 ) null default null comment '房間id' , `g_id` varchar( 10 ) character set latin1 collate latin1_swedish_ci null default null comment '顧客編號' , `g_name` varchar( 100 ) character set latin1 collate latin1_swedish_ci null default null comment '姓名' , `g_sex` varchar( 10 ) character set latin1 collate latin1_swedish_ci null default null comment '性別' , `g_age` int ( 11 ) null default null comment '年齡' , `g_days` int ( 11 ) null default null comment '入住天數' , `g_time` datetime null default null comment '入住日期' ) engine=innodb default character set=latin1 collate=latin1_swedish_ci row_format=compact ; |
房間信息表 :
1
2
3
4
5
6
7
8
9
10
11
12
13
|
create table `newtable` ( `r_id` int ( 11 ) not null auto_increment comment 'roo id' , `r_type` varchar( 100 ) character set latin1 collate latin1_swedish_ci null default null comment 'room 類型' , `r_price` double null default null comment 'room價格' , `r_local` varchar( 100 ) character set latin1 collate latin1_swedish_ci null default null comment 'room位置' , `r_state` varchar( 10 ) character set latin1 collate latin1_swedish_ci null default null comment 'room狀態' , index `r_id` (`r_id`) using btree ) engine=innodb default character set=latin1 collate=latin1_swedish_ci auto_increment= 106 row_format=compact ; |
ps:項目來于網絡、作者整理優化測試、若有侵權聯系作者刪除
總結:
通過這次課程設計。我學到了許多令我受益匪淺的知識。感覺java的界面設計和 mfc差不多。只是java沒有可視化的界面做起來太累了。其他主要是類和對象的問題。實現起來還是挺簡單的。綜合了根據中小型星級酒店的實際情況的特點, 雖然用戶界面比較一般,但操作使用還是方便。符合酒店管理的基本流程。但由于時間倉促,一些不足之處還很多、比如美化和部分功能設計的都比較簡單、但作為學生學習參考以及課程設計還是不錯的選擇。
到此這篇關于基于javaswing設計和實現的酒店管理系統的文章就介紹到這了,更多相關javaswing管理系統內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_45692705/article/details/119736784