宾馆客房管理系统(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日

相关文章

  • 深入理解Java8双冒号::的使用

    下面是“深入理解Java8双冒号::的使用”的完整攻略: 什么是双冒号:: 双冒号是Java 8中新增的一种语法,用于引用类的方法、构造函数或实例方法。它的形式类似于Lambda表达式,但又不完全一样。 双冒号的语法形式如下: ClassName::methodName 其中, ClassName 是类的名称,methodName 是类中的方法名。这种语法形…

    Java 2023年5月26日
    00
  • 关于spring data jpa 模糊查询like的坑点

    好的。首先让我们讨论一下”关于Spring Data JPA模糊查询Like的坑点”的具体情况。 什么是Spring Data JPA模糊查询Like的坑点? 如果我们想使用Spring Data JPA执行模糊查询(例如使用LIKE操作符),我们需要注意一些事项。这些主要涉及到通配符的使用和查询条件的拼接。 通配符的使用 在使用LIKE操作符时,我们需要使…

    Java 2023年5月20日
    00
  • 详解Java String类常用方法有哪些

    详解Java String类常用方法有哪些 在Java语言中,String类是一个非常重要的类,可以理解为字符串类型。在使用String类型时,我们通常需要对其进行一些常用的方法操作,以方便我们得到预期的结果。下面将会介绍一些常用的String类方法。 1. 字符串比较 在Java中,字符串的比较使用equals()方法完成。equals()方法会比较两个字…

    Java 2023年5月27日
    00
  • JavaScript6 let 新语法优势介绍

    JavaScript6 let 新语法优势介绍 ES6 新增了 let 声明变量的关键字,相较于传统的 var 声明变量方式,let 声明变量的方法具有以下优势。 1. 作用域更加清晰 JavaScript 变量的作用域与 var 关键字有关,var 声明变量会将变量提升至函数或全局作用域的顶端,因此在调用变量时可能会出现意料之外的问题,例如变量的作用域范围…

    Java 2023年6月15日
    00
  • 什么是 JIT 编译器?

    以下是关于JIT编译器的完整使用攻略: 什么是JIT编译器? JIT(Just-In-Time)编译器是一种在程序运行时将字节码编译成本地机器码的编译器。JIT编译器可以提高程序的执行速度,因为它可以将热点代码(即经常执行的代码)编译成本地机器码,从而避免了每次执行时都需要解释字节码的开销。 JIT编译器的优点 JIT编译器有以下优点: 提高程序的执行速度:…

    Java 2023年5月12日
    00
  • 在SpringBoot项目中整合拦截器的详细步骤

    在SpringBoot项目中整合拦截器的步骤如下: 1.编写拦截器类和配置类 首先,我们需要编写一个自定义的拦截器类,实现HandlerInterceptor接口并重写其三个方法。接着,需要编写一个配置类,将拦截器注册到Spring容器中,并指定对哪些URL进行拦截。 示例: public class MyInterceptor implements Han…

    Java 2023年5月19日
    00
  • 采集教程及采集分页设置问题

    下面是详细的采集教程及采集分页设置问题的完整攻略。 采集教程 什么是采集 采集是指从一个或多个网站上自动爬取(提取)数据的技术,是一种自动化的数据采集方法。 如何进行采集 进行采集需要用到一些工具,常用的工具有Python爬虫框架Scrapy、PHP采集工具PHP Simple HTML DOM Parser等。 其中,Scrapy是一款强大的Python爬…

    Java 2023年6月16日
    00
  • java Spring MVC4环境搭建实例详解(步骤)

    以下是关于“Java Spring MVC4环境搭建实例详解(步骤)”的完整攻略,其中包含两个示例。 Java Spring MVC4环境搭建实例详解(步骤) Spring MVC是一种基于Java的Web框架,它可以帮助我们快速地开发Web应用程序。在本文中,我们将讲解如何搭建Java Spring MVC4环境。 环境搭建步骤 搭建Java Spring…

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