基于JavaSwing设计和实现的酒店管理系统

目录
  • 前言:
  • 引言
  • 主要技术和工具:
  • 功能截图:
    • 登录管理:
    • 酒店管理信息:
      • 开房:
      • 退房:
    • 房间信息:
  • 顾客信息:
  • 关键代码:
    • 主入口:
    • 开房入住:
    • 数据库设计:
      • 用户表:
      • 入住信息表:
      • 房间信息表 :
  • 总结:

前言:

项目是使用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管理系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • [项目布局配置]Nosql与PythonWeb-Flask框架组合

    目录 项目整体布局 应用设置 应用工厂 运行应用 项目整体布局 创建并进入项目文件夹: $ mkdir flask-tutorial $ cd flask-tutorial 接下来按照 安装简介 设置一个 Python 虚拟环境,然后 为项目安装 Flask . 本教程假定项目文件夹名称为 flask-tutorial ,本教程中代码块的顶端的文件 名是基于该文件夹的相对名称. 一个最简单的 Flask 应用可以是单个文件. hello.py from flask import Flask ap

  • 解决mysql数据库数据迁移达梦数据乱码问题

    受到领导的嘱托,接手了一个java项目,要进行重构,同时了项目的整体建设要满足信创的要求. 那么首先就要满足两点: 1,使用国产数据库达梦8替换mysql数据库 2,使用金蝶中间件替换tomcat进行容器部署 在不懈的努力下,我已在本地的搭建和安装完成达梦8(dm8)数据库,也完成了代码框架更改数据库源,替换达梦数据库的demo验证工作. driverClassName: dm.jdbc.driver.DmDriver url: jdbc:dm://10.0.3.132:5236/XC-SERV

  • SQL IDENTITY_INSERT作用案例详解

    一般情况下,当数据表中,莫一列被设置成了标识列之后,是无法向标识列中手动的去插入标识列的显示值.但是,可以通过设置SET IDENTITY_INSERT属性来实现对标识列中显示值的手动插入. 写法: SET IDENTITY_INSERT 表名 ON :表示开启对标识列显示值插入模式,允许对标识列显示值进行手动插入数据. SET IDENTITY_INSERT 表名 OFF:表示关闭对标识列显示值的插入操作,标识列不允许手动插入显示值. 注意:IDENTITY_INSERT的开启ON和关闭OFF

  • mac安装mysql数据库及配置环境变量的图文教程

    目录 安装mysql 配置环境变量 安装mysql 下载mysql.我下载的是:mysql-8.0.11-macos10.13-x86_64.dmg 双击打开mysql-8.0.11-macos10.13-x86_64.dmg,然后双击mysql-8.0.11-macos10.13-x86_64.pkg 一路点击继续,傻瓜式安装,没什么好说的 此处选择"Use Legacy Password Encryption",否则使用navicat连接mysql的时候,会报无法加载身份验证的错误

  • SQL写法--行行比较

    目录 环境准备 需求背景 循环查询 混查过滤 行行比较 总结 环境准备 数据库版本:MySQL 5.7.20-log 建表 SQL DROP TABLE IF EXISTS `t_ware_sale_statistics`; CREATE TABLE `t_ware_sale_statistics` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `business_id` bigint(20) NOT NULL COMMENT

  • 解决SpringBoot application.yaml文件配置schema 无法执行sql问题

    目录 SpringBoot application.yaml文件配置schema 无法执行sql pom.xml配置文件 根路径下放了2个sql文件 springboot2.0之schema.sql问题 重点:配置init-ALWAYS (大写!) SpringBoot application.yaml文件配置schema 无法执行sql 据说1.0版本的SpringBoot没有这样的问题,我用的2.1.3版本的,出现了这样的问题. pom.xml配置文件 根路径下放了2个sql文件 启动的时候

  • MySQL连接异常报10061错误问题解决

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统(RDBMS)之一.         在尝试启动mysql 的服务器时出现Can't connect to MySQL server on '127.0.0.1' (10061) (2003)的错误信息,mysql服务器启动失败.         解决方案:开始-->services.msc(打开服务)-->在服务列表找到MySQL-->右击My

  • MySQL 1130异常,无法远程登录解决方案详解

    目录 问题: 一.开启远程登录权限: 二.刷新MySQL权限: 三.测试: 问题: mysql:1130 is not allowed to connect to this MariaDB server(没有远程登录权限,注:这里的MariaDB 是MySQL的延伸版) 一.开启远程登录权限: 将localhost用户数据复制一份,并将localhost更名为%(即,所有的链接都可以登录服务器),修改成服务器对应IP地址亦可,步骤如图: 二.刷新MySQL权限: 具体sql如下: mysql>

  • 基于JavaSwing设计和实现的酒店管理系统

    目录 前言: 引言 主要技术和工具: 功能截图: 登录管理: 酒店管理信息: 开房: 退房: 房间信息: 顾客信息: 关键代码: 主入口: 开房入住: 数据库设计: 用户表: 入住信息表: 房间信息表 : 总结: 前言: 项目是使用Java swing开发,可实现基础数据维护用户登录.系统首页酒店信息管理.主要模块是开房管理.退房管理.房间信息管理.顾客信息管理等功能.界面设计比较简介.适合作为Java课设设计以及学习技术使用.获取源码 引言 在信息高度发达的今天, 酒店业务涉及的各个工作环节已

  • 基于C++实现酒店管理系统

    现今大多数宾馆所提供的服务样式都各式各样,规模大小也是各有不同,但是归总下来,不可或缺的两类模块还是顾客和工作人员.由于对宾馆行业内部没有很深刻的理解,此次系统设计包括数据库和功能模块都是根据网上收集到的材料和个人认知上,简单模仿和具体实现的. 为满宾馆管理的实际需求,本系统主要实现以下功能: 1.入住登记:登记所入住房间号码,登记顾客入住时间,退房时间,个人信息(身份证号,手机号,姓名)2.退房办理:输入已经入住的房间号,确认完毕即可退房.3.房间查询:管理员输入正确的密码后即可对房间状态查询

  • 基于JavaSwing+mysql开发一个学生社团管理系统设计和实现

    前言: 项目是使用Java swing+mysql开发,可实现基础数据维护.用户登录注册.社团信息列表查看.社团信息添加.社团信息修改.社团信息删除以及退出注销等功能.界面设计比较简单易学.适合作为Java课设设计以及学习技术使用. 引言 随着全球信息化的迅猛发展,高效规模不断壮大,协会人数急剧增加,有必要开发一个学生社团管理系统来提高社联对社团的管理效率,学生社团管理系统将逐渐取代传统的人工管理模式.本文采用Java+swing+mysql作为开发技术,以Java为编程语言,开发一个基java

  • 基于python制作简易版学生信息管理系统

    一.前言 本篇博客对于文件操作.字典.列表.匿名函数以及sort()等内置函数进行了系统的整理操作,以设计一个学生信息管理系统的形式展示,具体概念方法等会在代码后进行分析讲述,请读者仔细分析每一处解析,对于基础巩固将会有很大的帮助,其中还有每一块代码的设计思路图,逻辑分析会有一定的提升. 二.需求分析 本程序需要用到os模板首先导入,并命名要存储信息的文件 import os File_Object_Name = 'Student_Inforation.txt' 三.主函数 def Main()

  • 基于javaweb+jsp实现企业财务记账管理系统

    目录 前言 部分代码实现JSP  效果图 前言 运行环境 Java≥6.Tomcat≥7.0.MySQL≥5.5 开发工具 idea/eclipse/MyEclipse 技术框架 JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript 基础JSP+Servlet或JSP+SSM(Spring.SpringMVC.MyBatis)框架或JSP+SSM+Maven(pom.xml)框架-均可 开发工具:idea或eclipse或myeclipse 适用 课程

  • C++实现简单酒店管理系统

    本文实例为大家分享了C++实现简单酒店管理系统的具体代码,供大家参考,具体内容如下 酒店管理系统设计报告 一. 需求分析 题目要求如下: 某酒店有客房若干间,其中客房分为不同等级,如豪华.标准.普通等,客房床位数也不同.例如,豪华套房有4个床位,400元/晚:标准客房2个床位,200元/晚:普通客房1个床位,100元/晚. 顾客分金卡会员.银卡会员.普通会员及非会员,其享受的折扣不同.例如,金卡会员可享受8折优惠,银卡会员可享受9折优惠,普通会员享受95折优惠,非会员不享受优惠. 当顾客连续入住

  • 基于C++语言实现机动车违章处罚管理系统

    关键代码如下所示: #include <iostream> #include <iomanip> #include <fstream> #include <string> #include <list> using namespace std; class Violation{ public: Violation(){points=fine=0; number=carNumber=tel=location=isSpot =police=camer

  • java基于ConcurrentHashMap设计细粒度实现代码

    细粒度锁: java中的几种锁:synchronized,ReentrantLock,ReentrantReadWriteLock已基本可以满足编程需求,但其粒度都太大,同一时刻只有一个线程能进入同步块,这对于某些高并发的场景并不适用.比如银行客户a向b转账,c向d转账,假如这两个线程并发,代码其实不需要同步.但是同时有线程3,e向b转账,那么对b而言必须加入同步.这时需要考虑锁的粒度问题,即细粒度锁. 网上搜寻了一些关于java细粒度锁的介绍文章,大部分是提供思路,比如乐观锁,String.i

  • Java swing实现酒店管理系统

    今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: package 主框架窗口; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEven

  • java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 编写环境:MyEclipse2014+sql server2014 系统功能: 1.登录验证 2.房态统计显示 3.预定登记并入库 4.入住登记并入库 5.换房登记并入库 6.客人信息查询 7.退房并入库 运行界面如下: =====登录界面====== =====主界面===== =====为每个房间设置弹出菜单====== =====登记界面====== =====换房界面===== =====退房界面=====

随机推荐