宾馆客房管理系统(Java+SQL Server)

源代码下载链接:

一、宾馆客房管理系统开发初衷

  随着互联网技术的迅速发展,计算机技术的普及以及信息化时代的推波助澜,宾馆客房需求的逐渐增大,这也是挑战了宾馆客房管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的宾馆客房管理系统,提高了宾馆的工作效率,为想要入住宾馆的人提供更好的服务。宾馆客房管理工作面对大量顾客的私人信息,引入信息化的管理方式可以事半功倍,极大的提高管理效率。我们开发宾馆客房管理系统就是采用现代化的信息管理方式代替手工管理方式,提高宾馆管理工作效率,做到信息的规范管理,科学统计和快速查询,让宾馆体验达到最佳,方便广大人民群众出行住宿。

二、系统应该具备的功能

①顾客基本信息的输入,包括顾客编号、顾客姓名、房号和联系方式等。

②顾客基本信息的查询、修改,包括顾客编号、顾客姓名、房号和联系方式等。

③客房类别标准的制定、类别信息的输入,包括房号、是否空置、房型和价格等。

④顾客类别信息的查询、修改,包括顾客编号、顾客姓名等。

⑤房源信息信息的更改,包括房号、是否空置、房型、房子归还日期和房价。

⑥房源库存信息的查询,修改,包括房号、是否空置、房型、房子归还日期和房价等。

⑦顾客入住信息的输入,包括顾客编号、房号、退房日期。

⑧顾客入住信息的查询、修改,包括顾客编号、顾客姓名、房号和联系方式等。

⑨退房信息的输入,包括顾客编号、顾客姓名、房号和退房日期。   

⑩退房信息的查询和修改,包括顾客编号、顾客姓名、房号和退房日期等。

宾馆客房管理系统(Java+SQL Server)

三、系统具体实现

首先映入眼帘的是程序登录系统,这里内部设置了两个账户,一个是管理员账户,权限是管理员权限(增删查改)。还有一个是来宾用户,只可以查看。采用Java Swing 的模板创建,用户界面还是十分友好的。登录界面如图6-1 所示。该部分伪代码如下:

public static void main(String[] args) {

        Login log = new Login();

log.setIconImage(Toolkit.getDefaultToolkit().createImage("img1.jpg"));// 登录界面标题logo图片

        log.setTitle("宾馆客房管理系统");

        log.setLocation(600, 300); // 方框出现在屏幕的位置

        log.setSize(750, 548); // 调整登录框大小

        log.setResizable(false);// 设置为不可调整窗口大小

        log.setVisible(true); // 是否可视化

    }

    class Enter implements ActionListener {

        @SuppressWarnings("deprecation")

        public void actionPerformed(ActionEvent e)// 重写事件反映

        {

             Login log = new Login();// 持有对象引用

             if ((f1.getText()).equals("nuist") && (f2.getText()).equals("123")) {

//               JOptionPane.showMessageDialog(null, "登录成功!用户权限是adimistrator");// 弹出要求用户提供值或向其发出通知的标准对话

                 power = "adminstrator";// 赋予管理员权限

                 Qframe frame = new Qframe();// 验证成功后就建对象调用构造方法连接数据库

    frame.setIconImage(Toolkit.getDefaultToolkit().createImage(

                         "img1.jpg"));// 进入管理系统的logo图片

                 frame.setLocation(400, 200);

                 frame.setSize(500, 285);

                 frame.setResizable(false);

                 frame.setVisible(true);

                 dispose();// 释放此图形的上文以及它使用的所有系统资源,即实现关闭弹出新窗口后关闭上个窗口

             } else if ((f1.getText()).equals("admin")

                     && (f2.getText()).equals("123")) {

                 JOptionPane.showMessageDialog(null, "登录成功!用户权限是user");// 弹出要求用户提供值或向其发出通知的标准对话框

                 power = "adminstrator";

                 Qframe frame = new Qframe();

                 frame.setIconImage(Toolkit.getDefaultToolkit().createImage(

                         "img1.jpg"));

                 frame.setLocation(400, 200);

                 frame.setSize(750, 543);// 500/285

                 frame.setResizable(false);

                 frame.setVisible(true);

                 dispose();

             } else

                 JOptionPane.showMessageDialog(null, "登录失败,请重新登录!");

        }

    }   }

宾馆客房管理系统(Java+SQL Server)

然后,就是登录后的主界面,有五大板块,分别是:增加、删除、修改、查询和显示订房表。最后还有一个退出程序的按钮。如图6-2所示主界面。该部分伪代码如下:

JPanel contentPane;

    BorderLayout borderLayout1 = new BorderLayout(5, 10);// 构造边框布局,水平间距5,垂直间距10

 

    public static final TextArea result = new TextArea();//注意此result不是结果集,是展示表的文本区

 

    public Qframe() {

        contentPane = (JPanel) this.getContentPane();// 返回此窗体的 contentPane 对象

        contentPane.setLayout(borderLayout1);

        this.setTitle("宾馆客房管理系统");// 设置窗口标题

 

        addWindowListener(new WindowAdapter() {// 监听窗口处理事件 按X就结束程序

             public void windowClosing(WindowEvent e) {

                 System.exit(0);

             }

        });

 

        result.setEditable(false);// 设置信息显示文本框区域为不可编辑

        result.setBackground(Color.WHITE);// 设置文本背景为白色

        JPanel option = new JPanel();// 选择功能按钮容器

 

        final Button zenjia = new Button("增加");// 增加按钮

        option.add(zenjia, BorderLayout.NORTH);// 将组件置于其显示区域的顶部,并在水平方向上居中。

        zenjia.addActionListener(new ActionListener() {// 监听增加按钮事件

             @Override

             public void actionPerformed(ActionEvent e) {

 

                 if (e.getSource() == zenjia) {

                     Adddialog add1 = new Adddialog();// 调用增加窗口类

                     add1.setVisible(true);// 显示窗口

                 }

 

             }

        });

 宾馆客房管理系统(Java+SQL Server)

下方的空白是文本区,可以显示订单表中的信息,只需要点击一下显示订单表按钮即可显示。如图6-3所示。该部分伪代码如下:

    try {

                     stmt = sin.prepareStatement("select * from 订房表 where 客户编号=?");

                     stmt.setObject(1, sno);

                     rs = stmt.executeQuery();

                     int count = 0;//查询不到记为0,查询得到记为1

                     while (rs.next()) {

                         String msg = rs.getString("客户编号") + "\t"

                                  + rs.getString("房号") + "\t"

                                  + rs.getString("退房日期") + "\n";

                         JOptionPane.showMessageDialog(null, msg, "查询结果:",

                                  JOptionPane.NO_OPTION);

                         dispose();

                         count = 1;//查询得到就记count为1,

                     }

                     if (count == 0)//查询不到就显示无该商品号

                         JOptionPane.showMessageDialog(null, "无该客户", "查询结果:",

                                  JOptionPane.NO_OPTION);

                     // stmt.close();

                     // con.close();

                 } catch (SQLException h) {

                     // TODO Auto-generated catch block

                     h.printStackTrace();

             }

 

宾馆客房管理系统(Java+SQL Server)

最后,演示一下添加顾客功能,对应的顾客表、房源表和订单表在后端数据库都会发生相应改变。如图6-4和6-5所示。该部分伪代码如下:

public final static void insert(Connection con, Object obj[]) {

        PreparedStatement stmt = null;

        PreparedStatement stmt2 = null;

        PreparedStatement stmt3 = null;

        try {

             stmt = con.prepareStatement("insert into 订房表(客户编号,房号,退房日期) values(?,?,?)"

                     + "insert into 客户表(客户编号,房号,退房日期,购房日期,客户姓名,性别,所购房型,联系方式) values(?,?,?,?,?,?,?,?)"

                     + "update 房源表 set 是否空置 ='否',退房日期 =? where 房号 =?");

             // SQL 语句被预编译并存储在 PreparedStatement 对象中,包含多个 '?' IN 参数占位符的 SQL 语句

             stmt.setString(1, obj[0].toString());// 将指定参数设置为传入的字符串

             stmt.setString(2, obj[1].toString());

             stmt.setString(3, obj[2].toString());

             ........

             stmt.execute(); // 执行sql语句

 

        } catch (SQLException e) {

             JOptionPane.showMessageDialog(null, "失败", "操作提示!",

                     JOptionPane.NO_OPTION);          

        }

      }

宾馆客房管理系统(Java+SQL Server)

宾馆客房管理系统(Java+SQL Server)

源代码下载链接:


原文链接:https://www.cnblogs.com/nuist7bloger/p/17326492.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:宾馆客房管理系统(Java+SQL Server) - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 图文详解Maven工程打jar包的N种方式

    图文详解Maven工程打jar包的N种方式 在Maven工程开发中,打jar包是必不可少的步骤之一。本文将介绍多种方式打jar包的方法并逐一详细讲解。下面为大家列出打jar包的多种方法: 通过Maven命令打jar包 通过Maven插件打可执行的jar包 通过Maven插件打普通jar包 通过Maven配置pom.xml文件打jar包 利用Maven打jar…

    Java 2023年5月20日
    00
  • Java 实战项目锤炼之在线购书商城系统的实现流程

    Java 实战项目锤炼之在线购书商城系统的实现流程 项目概述 在这个项目中,您将使用Java技术构建一个在线购书商城,允许用户搜索、购买和评论图书。在开发过程中,您将学习并锤炼软件开发的实践技巧,包括需求分析、设计、实现和测试等流程。同时,您还将学到使用Java框架和技术实现Web应用程序的方法。 开发环境 该项目使用以下开发环境: JDK 1.8 Ecli…

    Java 2023年5月31日
    00
  • SpringBoot集成内存数据库Sqlite的实践

    下面我将为您详细讲解“SpringBoot集成内存数据库Sqlite的实践”的完整攻略。 1. 关于Sqlite Sqlite是一种轻量级的关系型数据库,最主要的特点是没有独立的进程,所有的数据库操作都直接在应用程序内部完成,这使得Sqlite非常适合一些较小的场景,例如移动应用或单机桌面应用等。由于Sqlite的持久化方式是基于文件的,所以它也被称为嵌入式…

    Java 2023年5月20日
    00
  • java实现验证码小程序

    我将为你讲解“Java实现验证码小程序”的完整攻略。 目录 什么是验证码 验证码实现的基本思路 Java实现验证码小程序详解 第一步:生成验证码字符 第二步:绘制验证码图片 第三步:输出图片到页面 示例说明 示例1:生成随机字符串 示例2:绘制验证码图片 什么是验证码 验证码是指一种用于区分用户是计算机还是真实用户的图形或文字信息。常用于防止恶意的程序自动提…

    Java 2023年5月23日
    00
  • Spring 自动代理创建器详细介绍及简单实例

    Spring 自动代理创建器详细介绍及简单实例 什么是自动代理创建器 自动代理创建器(Automatic Proxy Creator)是 Spring 框架提供的一种自动创建代理对象的机制。自动代理创建器可以根据配置和规则自动地生成代理对象并加入 Spring 容器,简化了程序员手动创建代理对象的工作。 自动代理的配置方式 Spring 提供了多种方式来配置…

    Java 2023年6月15日
    00
  • SpringBoot框架搭建教程分享

    SpringBoot框架搭建教程分享 SpringBoot是基于Spring框架的一种快速构建Java应用程序的开源框架。它为Java开发者提供了一种简单快速的方式来构建强大的Java应用程序。在本篇文章中,我们将会详细讲解如何使用SpringBoot搭建一个Java应用程序,并提供两个示例说明帮助大家更加深入的学习和理解。 第一部分:基础框架搭建 在进行S…

    Java 2023年6月3日
    00
  • Java中的ClassCastException是什么?

    Java中的ClassCastException是一种运行时异常,当程序试图将一个ParentClass类型的对象转换为ChildClass类型的对象时,如果该ParentClass对象的实际类型不是ChildClass或其子类,则会出现ClassCastException。这通常会发生在Java中进行类型转换(即强制类型转换)时。 例如: ParentCl…

    Java 2023年4月27日
    00
  • Java spring单点登录系统

    Java Spring 单点登录系统攻略 简介 Java Spring单点登录系统是基于Spring框架实现的一种用户认证方式,它允许一个用户在多个应用系统中使用同一个身份验证凭证(例如用户名和密码)进行登录认证,从而实现了多个应用系统中的用户身份认证问题。 系统架构 该系统由三个部分组成:认证中心、客户端和数据库 认证中心:负责接收客户端发送的登录请求,验…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部