前言:
项目是使用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/.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 ATM取款机系统的设计和实现
JavaSwing的经典坦克大战游戏设计实现
JavaSwing+mysql的图书管理系统设计实现
JavaSwing+Mysql的酒店管理系统设计实现
JavaSwing+Mysql的餐厅点餐系统设计实现
JavaSwing+Mysql的仓库管理系统设计实现
JavaSwing+Mysql超市商品管理系统设计实现
javaSwing+TXT学生信息管理系统设计实现
JavaSwing+mysql学生社团管理系统设计实现
打卡JavaSwing项目更新 9 / 100篇
大家可以点赞、收藏、关注、评论我啦