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

相关文章

  • 七个Spring核心模块详解

    下面是关于“七个Spring核心模块详解”的完整攻略,包含两个示例说明。 七个Spring核心模块详解 Spring框架是一个开源的JavaEE应用程序框架,它提供了一系列的核心模块,用于简化企业级应用程序的开发。下面我们将详细介绍Spring框架的七个核心模块。 1. Spring Core Spring Core是Spring框架的核心模块,它提供了Io…

    Java 2023年5月17日
    00
  • Java中URL传中文时乱码的解决方法

    一、问题描述在Java中进行URL传参时,可能会遇到中文乱码的问题。这里提供一种解决方法。 二、解决方法1.使用URLEncoder和URLDecoder实现编码和解码在请求参数中传入中文时,需要使用URLEncoder对中文进行编码。例如:我们需要向http://www.example.com/Servlet?name=”张三” 这个地址中传入中文参数,可…

    Java 2023年5月20日
    00
  • 详解Html a标签中href和onclick用法、区别、优先级别

    下面是详解Html a标签中href和onclick用法、区别、优先级别的攻略。 href和onclick用法简介 在HTML中,a标签用于创建超链接,它允许在文档之间或页面内的不同部分之间创建链接。a标签有两个最重要的属性:href和onclick。 href属性:规定链接的目标URL地址,点击链接会跳转到指定的URL地址。 onclick属性:定义元素被…

    Java 2023年6月15日
    00
  • JSP之表单提交get和post的区别详解及实例

    JSP之表单提交get和post的区别详解及实例 在JSP中,表单可以使用get和post两种方法提交。本攻略将详细讲述两种方法的区别以及使用实例。 GET和POST的区别 GET方法将数据追加在URL末尾,而POST方法将数据放在HTTP请求的正文中。因此,使用GET方法提交的数据将被显示在URL中,而POST方法提交的数据不会在URL中显示。 由于数据被…

    Java 2023年6月15日
    00
  • 浅谈java中对集合对象list的几种循环访问

    下面是详细讲解“浅谈java中对集合对象list的几种循环访问”的完整攻略。 一、背景 在Java中,集合是程序开发中经常用到的一种数据结构。而list则是最常用的集合之一。在对list进行操作时,最常见的操作之一便是循环访问其中的元素。Java中有多种循环遍历list的方式,我们来逐一了解。 二、for循环 for循环是最基本的循环方法。代码如下: Lis…

    Java 2023年5月26日
    00
  • Jsp+Servlet实现购物车功能

    一、Jsp+Servlet实现购物车功能简介 Jsp和Servlet结合使用,可以完美地实现购物车功能。购物车功能是电商网站中的重要部分之一,它允许购物者把想要购买的物品添加到购物车中,可以随时查看、删除和购买。 二、实现购物车功能的具体步骤 确定购物车存储的数据结构 购物车应该存储哪些信息?一般来说,购物车需要存储商品的数量、单价、总价、商品名称、图片等信…

    Java 2023年6月15日
    00
  • Spring Boot如何配置内置Tomcat的maxPostSize值

    在Spring Boot中,我们可以通过配置内置Tomcat的maxPostSize值来控制POST请求的最大允许大小。下面我将详细讲解如何实现此功能。 方法一:通过配置application.properties文件 我们可以在Spring Boot项目的application.properties文件中添加以下配置: # 设置内置Tomcat的maxPo…

    Java 2023年5月20日
    00
  • Spring Boot整合持久层之JdbcTemplate多数据源

    下面我将详细讲解Spring Boot整合持久层之JdbcTemplate多数据源的完整攻略。 1. 前置条件 在运行本教程的示例之前,需要确保以下条件已被满足: 已经安装了Java和Maven 已经安装了MySQL数据库,并且创建了至少两个数据库,命名为db1和db2,用户为root,密码为123456。 2. 引入依赖 首先需要在maven的pom.xm…

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