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

yizhihongxing

源代码下载链接:

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

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

二、系统应该具备的功能

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

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

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

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

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

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

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

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

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

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

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

相关文章

  • Java实现的Windows资源管理器实例

    Java实现的Windows资源管理器实例攻略 简介 Windows资源管理器是微软操作系统中的一个重要工具,它提供了对文件和文件夹的管理、查看和操作功能。本文将讲解如何使用Java编写一个Windows资源管理器的实例程序,让使用者可以通过程序来管理和操作自己的文件夹和文件。 实现步骤 步骤一:创建文件夹和文件类 首先,我们需要创建两个类:Folder和F…

    Java 2023年5月19日
    00
  • 什么是应用程序类加载器?

    应用程序类加载器(Application Class Loader)是Java虚拟机(JVM)的一种类加载器,也是ClassLoader的子类,它负责从CLASSPATH环境变量中指定的路径或JAR文件加载类,通常也称为系统类加载器。 使用应用程序类加载器,需要遵循以下步骤: 获取应用程序类加载器 可以使用以下代码获取应用程序类加载器: ClassLoade…

    Java 2023年5月10日
    00
  • JDBC数据源连接池配置及应用

    JDBC数据源连接池配置及应用是Web应用程序中常用的技术之一,可以提高系统性能并避免资源浪费。下面我将详细讲解JDBC数据源连接池配置及应用的完整攻略。 什么是JDBC数据源连接池? JDBC数据源连接池就是将数据库连接以池的方式进行管理,连接请求首先从连接池中获取连接,而不是每次都重新建立连接,从而提高系统性能并避免资源浪费。 如何进行JDBC数据源连接…

    Java 2023年6月15日
    00
  • Java 和 Javascript 的 Date 与 .Net 的 DateTime 之间的相互转换

    Java 和 JavaScript 中的 Date 类型是指表示日期和时间的数据类型,而 .NET 中的 DateTime 类型也是类似的类型。由于这些日期时间类型在不同的语言或框架之间存在差异,因此需要了解如何将它们之间相互转换。 1. Java/JavaScript中的Date类型转.NET的DateTime 在Java/JavaScript中获取当前时…

    Java 2023年5月20日
    00
  • 浅析Spring4新特性概述

    下面是关于“浅析Spring4新特性概述”的完整攻略,包含两个示例说明。 浅析Spring4新特性概述 Spring是一个流行的Java开发框架,它提供了许多功能和特性来简化Java应用程序的开发。Spring4是Spring框架的一个重要版本,它引入了许多新特性和改进。本文将介绍一些Spring4的新特性。 Java 8支持 Spring4引入了对Java…

    Java 2023年5月17日
    00
  • Spring注解实现Bean自动装配示例详解

    让我详细为您讲解一下 “Spring注解实现Bean自动装配示例详解”: 什么是Bean自动装配 在Spring中,Bean自动装配是指Spring容器在启动时,自动将需要相互依赖的实例进行自动匹配,并完成相应的依赖注入,从而简化开发工作。 在日常开发中,关于Bean自动装配,Spring提供了三种实现方式: 基于XML配置文件的方式DI 基于Java配置类…

    Java 2023年5月31日
    00
  • 快速排序算法原理及java递归实现

    快速排序算法原理及java递归实现 快速排序是一种常用的排序算法,最好的情况下时间复杂度为 O(nlogn)。快速排序采用分治法的思想,具体过程如下: 1.选定一个基准元素,通常选择第一个或最后一个元素; 2.设置两个指针,一个指向起始位置,一个指向终止位置; 3.从后往前查找,找到第一个小于基准元素的位置并记录下来; 4.从前往后查找,找到第一个大于基准元…

    Java 2023年5月19日
    00
  • java判断两个时间是不是同一天的方法

    判断两个时间是否为同一天,即判断它们的年、月、日是否相同,可以利用Java中的日期类来实现。下面是两种方法。 方法一:使用Calendar类 /** * 判断两个时间是否为同一天 * @param date1 时间1 * @param date2 时间2 * @return 是否为同一天 */ public static boolean isSameDay1…

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