目录

            前言:

            项目是使用java swing开发,可实现基础数据维护用户登录、系统首页酒店信息管理、主要模块是开房管理、退房管理、房间信息管理、顾客信息管理等功能。界面设计比较简介、适合作为java课设设计以及学习技术使用。

            引言

            在信息高度发达的今天, 酒店业务涉及的各个工作环节已不再仅仅是传统 的住宿、 结算业务,而是更广、更全面的服务性行业代表。酒店宾馆作为一个服务性行业,从客 房的营销即客人的预定开始, 到入住登记直到最后退房结账, 整个过程应该能够体现以 宾客为中心,提供快捷方便服务,给宾客感受一种顾客至上的享受,提高管理水平,简 化各种复杂操作, 在最短时间内完成酒店业务规范操作, 这样才能令旅客舒适难忘。 因 此,采用全新的计算机管理系统, 将成为提高酒店的管理效率, 改善服务水准的手段之 一。系统从满足客户的需求角度出发, 实现了酒店管理的基本流程。 系统的主要功能包 登录、重置、查看 设置等等。用户入住酒店的时候所要等待的时间就会大大的减少, 操作员能够很方便的 对用户信息的登记和对房间状态的的管理, 从而实现了酒店管理系统高效、 准确的特点。

            主要技术和工具:

            eclipse+jdk1.8+navicat +swing +mysql

            功能截图:

            登录管理:

            用户输入账号密码以及验证码进行登录验证

            酒店管理信息:

            开房:

            用户录入开房相关信息、 提交的时候后台会验证数据的数据是否正确、房间是否被占用等情况

            退房:

            输入身份证信息和房间号进行验证正确后完成退房

            房间信息:

            房间信息管理管理页面可以查看所有的房间信息、房间标准以及状态等、也可以更具房间类型来查询房间信息。

            顾客信息:

            关键代码:

            主入口:

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

            开房入住:

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

            数据库设计:

            用户表:

            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
            ;
             

            入住信息表:

            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
            ;
             

            房间信息表 :

            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管理系统内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!