【C++】C++旅游管理系统(源码+论文)【独一无二】

news2024/12/26 13:50:52

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【C++】C++旅游管理系统(源码+论文)【独一无二】


目录

  • 【C++】C++旅游管理系统(源码+论文)【独一无二】
  • 一、设计要求
  • 二、设计思路
      • 日期类 `Data`
      • 房间类 `Room`
      • 顾客类 `Guest`
      • 管理类 `Manage`
      • 功能实现
        • 查询菜单
        • 增加房间
        • 入住登记
        • 退房结账
        • 显示信息
        • 数据读写
        • 查询功能
      • 主程序入口
  • 三、可视化分析


一、设计要求

某旅馆有n个等级的房间,第I等级有a个房间,每个等级的房间有b个床位(1<i<n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。
旅客登记,即为旅客分配床位。输入旅客姓名、年龄、性别、到达日期和所需房间等级。分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床。位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束;
旅客离开时,即进行床位回收。输入房间等级、房间号和床位号。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈


二、设计思路

这段代码实现了一个宾馆房间管理系统,包含房间和顾客的信息管理,提供房间录入、入住登记、退房结账、信息显示和查询等功能。以下是对各个代码块的实现思路分析:

日期类 Data

class Data {
public:
    Data() {}
    ~Data() {}
    void SetDate(int year, int month, int day) {
        this->year = year;
        this->month = month;
        this->day = day;
    }
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
};
  • 这是一个日期类,用于记录交易时间。包含年、月、日属性和相应的设置和获取函数。

房间类 Room

class Room {
public:
    Room* r[Max];
    int Room_count;

    	// 略....(至少10行代码)
        // 略....(至少10行代码)
protected:
    int Number;
    string Type;
    string Whether;
    double Price;
};
  • 这个类用于存储房间信息,包含房间号、类型、状态(是否有客人)和价格等属性。提供了信息输入、状态设置和显示函数。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈

顾客类 Guest

class Guest {
public:
    Guest* g[Max];
    int Guest_count;

    Guest(int number, string Name, int Id, string sex, string Intime, int days) {
        this->Name = Name;
        this->Id = Id;
        this->sex = sex;
        this->number = number;
        this->Intime = Intime;
        this->days = days;
    }

    	// 略....(至少10行代码)
        // 略....(至少10行代码)

protected:
    int number;
    string Name;
    int Id;
    string sex;
    string Intime;
    int days;
};
  • 这个类用于存储顾客信息,包含房号、姓名、身份证号、性别、入住时间和天数等属性。提供了信息输入和显示函数。

管理类 Manage

class Manage {
public:
    Guest* g[Max];
    int Guest_count;
    Room* r[Max];
    int Room_count;

    	// 略....(至少10行代码)
        // 略....(至少10行代码)
    void SearchType();
    void SearchNumber();
};
  • 这个类负责管理所有的房间和顾客信息,包含增删改查等功能。它使用房间和顾客的指针数组来存储对象,并提供相关操作函数。

功能实现

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈

查询菜单
void Manage::SearchMenu() {
    int n;
    system("cls");
    cout << "====================================" << endl;
    cout << "=         查   询   菜   单        =" << endl;
    cout << "====================================" << endl;
    cout << "=========  1、查 询 空 房    =======" << endl;
    cout << "=========  2、按房间号查询   =======" << endl;
    cout << "====================================" << endl;
    cout << endl << "请选择: ";
    cin >> n;
    switch (n) {
        case 1: SearchType(); break;
        case 2: SearchNumber(); break;
    }
}
  • 查询菜单提供了查询空房和按房间号查询的选项。
增加房间
void Manage::IncreaseRoom() {
    string type, Whether;
    double price;
    int number;
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}
  • 该函数用于增加房间信息,输入房号、类型、价格和状态,并将其写入文件。
入住登记
void Manage::Check_In() {
    ReadData();
    SearchType();
    string name, intime, sex, type;
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}
  • 入住登记功能,输入顾客信息并将其写入文件,同时更新房间状态。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈

退房结账
int Manage::Payment() {
    ReadData();
    Display(2);
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}

void Manage::Check_Out() {
    int x = Payment();
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}
  • 退房结账功能,计算顾客消费金额并更新房间状态。
显示信息
void Manage::Display(int n) {
    ReadData();
    switch (n) {
        case 1:
            for (i = 0; i < Room_count - 1; i++) {
                cout << "房号:" << r[i]->InputNumber() << "\t房间类型: " << r[i]->InputType() << "\t房间价格: " << r[i]->InputPrice() << "\t房间状态: " << r[i]->InputWhether() << endl << endl;
            }
            break;
        case 2:
            for (i = 0; i < Guest_count - 1; i++) {
                cout << "房间号: " << g[i]->InputNumber() << "\t顾客姓名: " << g[i]->InputName() << "\t身份证号: " << g[i]->InputId() << "\t顾客性别:" << g[i]->InputSex() << "\t入住时间: " << g[i]->InputIntime() << "\t入住天数: " << g[i]->InputDays() << endl << endl;
            }
            break;
    }
}
  • 显示所有房间或顾客信息。
数据读写
void Manage::ReadData() {
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
    Rin.close();

    Gin.open("guest.txt", ios::in);
    if (!Gin

) {
        cout << "未找到guest文件,请先建立文件!" << endl;
        return;
    }
    Guest_count = 0;
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
    Gin.close();
}

void Manage::WriteData(int n) {
    switch (n) {
        case 1: {
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
        }
        case 2: {
            ofstream Gout("guest.txt", ios::trunc);
            for (i = 0; i < Guest_count - 1; i++) {
                if (g[i] != NULL) {
                    WriteGuest(g[i]);
                }
            }
            Gout.close();
            break;
        }
    }
}

void Manage::WriteRoom(Room* r) {
    ofstream Rout("room.txt", ios::app);
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}

void Manage::WriteGuest(Guest* g) {
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}
  • 从文件中读取房间和顾客信息,写入房间和顾客信息到文件。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈

查询功能
void Manage::SearchType() {
    ReadData();
    for (i = 0; i < Room_count; i++) {
        if (r[i]->InputWhether() == "无") {
            r[i]->show();
        }
    }
}

void Manage::SearchNumber() {
    ReadData();
    int number;
    cout << "请输出要查询的房间号: "; cin >> number;
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
}
  • 查询所有空房间和按房间号查询,显示对应的房间和顾客信息。

主程序入口

int main() {
    Manage M;
    int n;
    while (1) {
        system("cls");
        cout << endl << endl << endl << "\t\t\t宾 馆 房 间 管 理 系 统     " << endl << endl;
        cout << "\t\t\t1、房 间 信 息 的 录 入" << endl << endl;
        cout << "\t\t\t2、顾 客 入 住 房 间 登 记" << endl << endl;
        cout << "\t\t\t3、顾 客 退 房 结 账" << endl << endl;
        cout << "\t\t\t4、所 有 房 间 信 息 显 示" << endl << endl;
        cout << "\t\t\t5、所 有 顧 客 的 显 示" << endl << endl;
        cout << "\t\t\t6、查 询 所 有 空 房 间" << endl << endl;
        cout << "\t\t\t7、查 询 指 定 的 房 间 号" << endl << endl;
        cout << "\t\t\t8、退 出 系 统" << endl << endl;
        cout << endl << "请选择:  ";
        cin >> n;
        cout << endl << endl;
        switch (n) {
        
    	// 略....(至少10行代码)
        // 略....(至少10行代码)
    }
    return 0;
}
  • 主程序提供一个菜单系统,用户可以选择不同的功能来管理房间和顾客信息。根据用户选择,调用相应的管理函数。

三、可视化分析

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 旅游 ” 获取,拿来即用。👈👈👈


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1935233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM架构(二)—— arm v7/v8/v9寄存器介绍

1、ARM v7寄存器 1.1 通用寄存器 V7 V8开始 FIQ个IRQ优先级一样&#xff0c; 通用寄存器&#xff1a;31个 1.2 程序状态寄存器 CPSR是程序状态毒存器&#xff0c;保存条件标志位&#xff0c;中断禁止位&#xff0c;当前处理器模式等控制和状态位。每种异常模式下还存在SPSR&…

前端JS特效第46集:js-实现响应式节庆活动砸金蛋效果

js-实现响应式节庆活动砸金蛋效果&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>响应式节庆活动砸金蛋…

万界星空科技MES系统生产计划管理的功能

MES系统&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;的生产计划管理功能是其核心功能之一&#xff0c;旨在将企业的生产计划转化为实际的生产操作&#xff0c;并通过实时监控和调整来确保生产活动的顺利进行。以下是MES系统生产计划管理功…

阿里布达插画:成都亚恒丰创教育科技有限公司

阿里布达插画&#xff1a;梦幻与现实交织的绮丽画卷 在浩瀚的艺术长河中&#xff0c;总有一些作品以其独特的魅力&#xff0c;跨越时空的界限&#xff0c;触动着每一个观者的心灵。阿里布达插画&#xff0c;便是这样一股不可忽视的艺术清流&#xff0c;它以细腻的情感描绘、奇…

气膜篮球馆:理想的运动空间选择—轻空间

快速建造 气膜篮球馆的建造速度快&#xff0c;通常只需几周即可完成。这与传统建筑需要数月甚至数年的时间相比&#xff0c;显著缩短了工期。快速建造不仅能迅速投入使用&#xff0c;还减少了因工期延长而产生的额外费用。 成本效益 气膜结构相比传统建筑成本更低&#xff0c;特…

继电器模块的使用与代码示例

目录 前言 继电器简介 模块接线 工作原理 驱动代码 relay.h relay.c main.c 参考手册 继电器&#xff08;英文名称&#xff1a;relay&#xff09;是一种电控制器件&#xff0c;是当输入量&#xff08;激励量&#xff09;的变化达到规定要求时&#xff0c;在电气输出电…

Day16_集合与迭代器

Day16-集合 Day16 集合与迭代器1.1 集合的概念 集合继承图1.2 Collection接口1、添加元素2、删除元素3、查询与获取元素不过当我们实际使用都是使用的他的子类Arraylist&#xff01;&#xff01;&#xff01; 1.3 API演示1、演示添加2、演示删除3、演示查询与获取元素 2 Iterat…

排序系列 之 快速排序

&#xff01;&#xff01;&#xff01;排序仅针对于数组哦本次排序是按照升序来的哦代码后边有图解哦 介绍 快速排序英文名为Quick Sort 基本思路 快速排序采用的是分治思想&#xff0c;即在一个无序的序列中选取一个任意的基准元素base&#xff0c;利用base将待排序的序列分…

硬件开发——UART/I2C/SPI协议

硬件开发——UART/I2C/SPI协议 小狼http://blog.csdn.net/xiaolangyangyang 1、UART 电压&#xff1a; TTL电平&#xff1a;1&#xff1a;&#xff08;3.3V~5V&#xff09;&#xff0c;0&#xff1a;&#xff08;0V&#xff09;RS232电平&#xff1a;1&#xff1a;&#xff0…

idea双击没有反应,打不开

问题描述 Error opening zip file or JAR manifest missing : /home/IntelliJ-IDEA/bin/jetbrains-agent.jar解决方案

CH552的bootload程序IAP直接对ROM-flash修改数据(未尝试)

手动写bootload程序的可能 1&#xff0c;根据ch552g的使用手册内容查看到 2&#xff0c;在下面的参考文件的IAP文件夹中看到IAP文件 参考 下面程序中并没有跳转到厂家bootload的过程&#xff0c;这是直接通过控制有关的寄存器对FLSH进行直接写入和修改&#xff0c;这样可以认…

「Vue组件化」封装i18n国际化

前言 在Vue应用中实现国际化(i18n),通常需要使用一些专门的库,比如vue-i18n。本文主要介绍自定义封装i18n,支持Vue、uniapp等版本。 设计思路 一、预期效果 二、核心代码 2.1 i18n.xlsx文件准备 2.2 脚本执行 根目录main.js根目录locali18n.xlsxnode main.jsmain.js 文件…

AI Native时代:重塑人机交互与创作流程

随着2024年上海世界人工智能大会的圆满落幕&#xff0c;业界领袖们纷纷就AI应用的新机遇展开深入讨论。结合a16z播客中的观点&#xff0c;本文将探讨AI原生&#xff08;AI Native&#xff09;应用的几个关键特征&#xff0c;这些特征正在重新定义我们的工作方式和创作过程。 一…

electron项目中实现视频下载保存到本地

第一种方式&#xff1a;用户自定义选择下载地址位置 渲染进程 // 渲染进程// 引入 import { ipcRenderer } from "electron";// 列表行数据下载视频操作&#xff0c;diffVideoUrl 是视频请求地址 handleDownloadClick(row) {if (!row.diffVideoUrl) {this.$message…

揭秘郭采洁浪漫升级

【揭秘&#xff01;郭采洁浪漫升级&#xff0c;与“莫拉怪乐”共谱爱情新篇章】在这个春意盎然的季节里&#xff0c;娱乐圈迎来了一则既意外又甜蜜的爆炸新闻——郭采洁&#xff0c;这位以独特气质与精湛演技著称的才女&#xff0c;悄然间迈入了人生的新阶段&#xff0c;而她的…

C#知识|账号管理系统-账号信息管理界面[2]:提交查询按钮事件的编写

哈喽,你好啊,我是雷工! 接下来继续学习账号管理系统的账号信息管理界面【提交查询】的方法的编写, 以下为学习笔记。 01 实现功能 ①:【修改账号】和【删除账号】按钮当下方表格无数据时不可点击,当下方表格有数据时按钮可点击; ②:当账号分类未选择,账号名称未填…

ffmpeg ffplay.c 源码分析

1 ffplay.c的意义 ffplay.c是FFmpeg源码⾃带的播放器&#xff0c;调⽤FFmpeg和SDL API实现⼀个⾮常有⽤的播放器。 例如哔哩哔哩著名开源项⽬ijkplayer也是基于ffplay.c进⾏⼆次开发。 ffplay实现了播放器的主体功能&#xff0c;掌握其原理对于我们独⽴开发播放器⾮常有帮助…

【linux】服务器安装NVIDIA驱动

【linux】服务器安装NVIDIA驱动 【创作不易&#xff0c;求点赞关注收藏】&#x1f600; 文章目录 【linux】服务器安装NVIDIA驱动一、关闭系统自带驱动nouveau二、下载英伟达驱动三、安装英伟达驱动1、禁用X服务器和相关进程2、在TTY终端安装驱动3、验证是否安装成功4、重新启…

GPT-3.5退出历史舞台,GPT-4o mini震撼来袭,百万tokens只需要1块钱!

&#x1f3c6; GPT-3.5 完成了历史使命&#xff0c;退出了历史舞台&#xff0c;3.5 这两年&#xff0c;你辛苦了~ ⚡️GPT-4o mini⚡️更强的性能&#xff0c;更低的价格&#xff0c;百万tokens只需要1块钱&#xff01; 大家好&#xff0c;今天给大家带来一个激动人心的消息&a…

PHP基础语法(一)

一、初步语法 1、PHP代码标记&#xff1a;以 <?php 开始&#xff0c;以 ?> 结束&#xff1b; 2、PHP注释&#xff1a;行注释&#xff1a;//&#xff08;双斜杠&#xff09;或# 块注释&#xff1a;/* */ 3、PHP语句分隔符&#xff1a; 1&#xff09;在PHP中&#…