酒店管理系统程序设计[通俗易懂]

酒店管理系统程序设计[通俗易懂]酒店管理系统程序设计随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。市场经济的发展,消费者消费意识的提高,酒店行业的竞争越来越激烈。为了提高办事效率,增加、保证酒店的销售额,树立酒店的良好形象,运用科学的管理方法非常必要。客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。我力求开发一个界面友好,功能强大,使

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

酒店管理系统程序设计

随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。市场经济的发展,消费者消费意识的提高,酒店行业的竞争越来越激烈。为了提高办事效率,增加、保证酒店的销售额,树立酒店的良好形象,运用科学的管理方法非常必要。客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。

我力求开发一个界面友好,功能强大,使用简单的酒店客房管理系统。它可以完全适用于小型酒店宾馆的客房管理服务。希望通过使用酒店客房管理系统得到所需信息,达到提高客房管理水平的目的。

需求分析

  1. 有关客房信息的制定,房间号,所在楼层,价格,以及客房状态。是否有电话,电视,空调,网络和独立卫生间,以及所提供的服务等级。
  2. 客户信息的录入和存储,包括客户的基本信息和是否为贵宾等信息等。
  3. 客房的预定登记,主要是登记房客的信息,对房客的信息进行维护。入住实际,和预定的离店时间以及已付的押金,将客房的状态标注为预定状态。
  4. 客房的入住登记,对已预定的客房进行入住操作,更新客户的实际入住时间,将客房标注为已入住的状态。
  5. 客房的退房结算,更新客户的实际离店时间,对房客的实际住店的时间进行计算,输出实际产生的消费,与预订时所付的押金进行结算,多还少补。
  6. 客房状态查询,分为四个模块,1查询当前已预定的客房,输出所有已经预定的客房和预定的客户信息,包括预定的入住和离店时间已经预交的押金;2查询当前已入住的客房,输出所有已经入住的客房和客户的信息,包括客户实际入住的时间;3查询当前空置的客房,分类显示所有空置的房间;4排序显示所有非空置的房间,输出这些客户的信息和房间信息。
  7. 系统退出时,以二进制文件将当前系统的状态和所有的用户信息,客房信息存储到本地。在启动程序时,读取存储的二进制文件,将上一次的系统状态恢复。若第一次启动,则创建二进制文件。
  8. 系统的异常处理,对错误的输入进行处理,防止系统出现异常

系统功能结构

在这里插入图片描述

简要的流程图

在这里插入图片描述

类的定义和设计

  1. 定义一个存储房间信息和客户信息的基类,包扩这个房间的预定,入住,结算和显示信息的方法。
    其中预定,和显示的方法定义为虚函数,用于实现多态性。
class Room
{ 
    
 public:
  Room();
  ~Room(); 
  
  virtual void booking() =0; 	//预定登记 
  void checkin();    		//入住登记 
  void checkout();   		//退房结算 
  virtual void display() =0;  	//状态查询 
  int room_num;     		//房间编号
  int status;         		//房间状态:0.空房 1.预定 2.入住 
  
 protected: 
  char name[10];  		//房客姓名 
  char contact[11];   		//联系方式
  int start;   			//入住时间
  int dead;   			//离店时间 
  int deposit;  		//押 金 
  int price;          		//价 格 
};
  1. 用房间的基类派生出一个标准间的派生类,加上安装电话,和安装空调两个属性,并且重载预定登记和状态查询两个方法。

class TwinRoom : public Room    //标准间 
{ 
   
 public:
  TwinRoom(); 
  ~TwinRoom(); 
  
  void booking();  	//预定登记
  void display();  	//状态查询 
  
 private: 
  int  tel; 		// 安装电话 
  char air; 		// 安装空调
};
  1. 用房间的基类派生出一个高级标准间的派生类,加上VIP编号,安装电话,和安装空调,电视,和无线网络属性,并且重载预定登记和状态查询两个方法。
//#################################################
class HTwinRoom : public Room //高级标间 
{ 
   
 public:
  HTwinRoom();
  ~HTwinRoom(); 
  
  void booking();  //预定登记 
  void display();  //状态查询
  
 private:
  int VIPnum; // VIP编号 
  int  tel; // 安装电话 
  char air; // 安装空调 
  int  TV;  // 安装电视 
  int wifi;  // 无线网络 
}; 
  1. 用房间的基类派生出一个豪华套间的派生类,加上SVIP编号,安装电话,和安装空调,电视,无线网络和独立卫生间属性,并且重载预定登记和状态查询两个方法。
//##############################
class SuiteRoom : public Room   //豪华套间 
{ 
   
 public:
  SuiteRoom(); 
  ~SuiteRoom(); 
  
  void booking();  //预定登记
  void display();  //状态查询 
  
 private:
  int SVIPnum;// SVIP编号 
  int  tel; // 安装电话 
  char air; // 安装空调 
  char TV;  // 安装电视 
  char wifi;  // 无线网络
  char bath; // 独立卫生间 
};

其他模块设计

  1. 查询预定客房信息:用一个函数,遍历所有的的对象,把房间状态为预定的用对象的display()方法显示出来。
    在这里插入图片描述

  2. 查询入住客房信息:用一个函数,遍历所有类型的的对象,把房间状态为入住的用对象的display()方法显示出来。
    在这里插入图片描述

  3. 查询空置的房间:用一个函数,遍历所有类型的的对象,把房间状态为空置的,另一个函数分类显示各种类型的房间的编号。
    在这里插入图片描述

  4. 排序显示客房信息:用冒泡排序,以房间的编号为关键字,按递增输出所有不少空置的房间。

在这里插入图片描述

文件存储模块中,用三个二进制的文件分别存储三种类型的客房信息,读取文件时,把文件的指针指到文件的末尾,计算出需要读取的对象的个数,用一个循环将文件中的数据读取到内存中。 存储文件时,用函数确定对象数组中的对象个数,用一个for循环将对象以二进制的方法保存到文件中。

在这里插入图片描述
存储文件时,用函数确定对象数组中的对象个数,用一个for循环将对象以二进制的方法保存到文件中。

测试结果

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193270.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php://input allow_url_include,php allow_url_include的应用和解释_PHP教程

    php://input allow_url_include,php allow_url_include的应用和解释_PHP教程因为这个原因,许多安全研究人员建议在php.ini配置中禁用指向allow_url_fopen。不幸的是,许多推荐这种方法的人,并没有意识到,这样会破坏很多的应用并且并不能保证100%的解决remoteURLincludes以及他带来的不安全性。通常,用户要求在他们使用其他的文件系统函数的时候,php允许禁止URL包含和请求声明支持。因为这个原因,计划在PHP6中提供allow_url_inc…

    2022年7月21日
    19
  • bzero函数C语言_zeros函数

    bzero函数C语言_zeros函数原型:externvoidbzero(void*s,intn);  用法:#include  功能:置字节字符串s的前n个字节为零且包括‘\0’。  说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在POSIX.

    2022年10月12日
    4
  • 特殊多位数乘法口算算法

    特殊多位数乘法口算算法本文转自:我爱口算网,但是本人有一定更正,因此转载请注明出处一、关于9的数学口算技巧(两位数乘法)关于9的口诀:1×9=9  2×9=18  3×9=27    4×9=365×9=45  6×9=54  7×9=63    8×9=729×9=81上面的口诀小朋友们已经会了吗?小学

    2022年5月26日
    52
  • C# Winform界面美化(借助IrisSkin实现)

    C# Winform界面美化(借助IrisSkin实现)一.添加控件IrisSkin4.dll。方法:先把IrisSkin4.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件…..).IrisSkin4.dll文件最好放在当前项目bin\Debug文件中.1.右键“工具箱”→“添加选项卡”改名为→“我的皮肤”。2.右键“皮肤”→“选择项”弹出对话框3.点击“浏览“→找到IrisSkin…

    2022年5月8日
    174
  • Pychram引入conda环境[通俗易懂]

    Pychram引入conda环境[通俗易懂]Pychram引入conda环境一、前言考虑到:①pycharm比Spyder功能全面,②anaconda的环境配置方便,这两个因素,所以想要在pycharm上引入condaenvironment,充分利用Anaconda的库函数。二、导入步骤1.创建一个project,并在File栏中,点击settings…,进入设置界面2.在setting界面下,找到当前工程,并选中其中的PythonInterpreter3.点击右上角的齿轮图表4.在弹出的会话框中,选中Add…5.在Ad

    2022年8月26日
    5
  • set集合使用详解

    set集合使用详解set集合使用详解“曾经年少爱追梦,一心只想往前飞。”那会高二,刚刚接触c语言,一发不可收拾,还记得当时为了一个想法和朋友一起想到半夜。现在我还是那个少年,那个又菜又爱玩的少年。咳咳,set集合容器,非常好哈!内部是用二叉搜索树实现的,重点是什么呢,容器内每一个元素呀,它只会出现一次,并且是排好序的,你爱了吗?复杂度更是只有O(log2n),非常高效呢。set算是竞赛里面用的比较多的了,因为,很多题目都爱考一些集合什么的。咳咳,来看看使用方式吧。上表:写法说明set

    2022年6月10日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号