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

网友投稿 236 2022-12-16

基于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(Lohttp://ginFrame.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.getCodYwwKmiOwMe();

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.shYwwKmiOwMowMessageDialog(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 DEFAUhttp://LT 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

;

总结:

通过这次课程设计。我学到了许多令我受益匪浅的知识。感觉java的界面设计和 mfc差不多。只是java没有可视化的界面做起来太累了。其他主要是类和对象的问题。实现起来还是挺简单的。综合了根据中小型星级酒店的实际情况的特点, 虽然用户界面比较一般,但操作使用还是方便。符合酒店管理的基本流程。但由于时间仓促,一些不足之处还很多、比如美化和部分功能设计的都比较简单、但作为学生学习参考以及课程设计还是不错的选择。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java通过SSLEngine与NIO实现HTTPS访问的操作方法
下一篇:java线程池详解及代码介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~