【C语言】C语言-宾馆客房管理系统(源码+论文)【独一无二】

news2024/11/17 0:49:09

请添加图片描述


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


C语言-宾馆客房管理系统(源码+论文)【独一无二】


目录

  • C语言-宾馆客房管理系统(源码+论文)【独一无二】
  • 一、设计要求
  • 二、设计思路
      • 功能描述
      • 操作流程
  • 三、结果分析


一、设计要求

5:宾馆客房管理
1)某宾馆有 301、302、303、304、305 五个标准间,每个标准间可住2人;
2)链表存储结构:姓名、性别、房号、后续指针,按房间号有序:
3)能实现入住(注意性别)和退房,能按给定姓名、房号查询;
4)采用链表结构。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈


二、设计思路

这个程序是一个宾馆客房管理系统,使用链表来管理客人的信息。程序提供了一个菜单驱动的界面,通过输入不同的选项来执行各种操作。以下是每个功能的详细描述:

功能描述

  1. 入住登记(Check In)
    • 当客人到达时,用户可以选择该选项为客人办理入住。
    • 系统会提示输入客人的姓名、性别以及房号(301-305)。
    • 输入房号时,系统会检查输入是否在有效范围内,并且检查该房间是否已经住满(每个房间最多2人)。
    • 如果房间未住满,系统会将客人的信息按房号有序地插入到链表中。
// 入住函数
void checkIn() {
    Guest *newGuest = (Guest *)malloc(sizeof(Guest));
        // 略去多行代码....
        // 略去多行代码....

    printf("请输入姓名: ");
    scanf("%s", newGuest->name);
    printf("请输入性别(M/F): ");
    scanf(" %c", &newGuest->gender);
    printf("请输入房号(301-305): ");
    scanf("%d", &newGuest->roomNumber);

        // 略去多行代码....
        // 略去多行代码....


    // 检查是否房间已满
    Guest *current = head;
    int count = 0;
    while (current != NULL) {
        // 略去多行代码....
        // 略去多行代码....

    }

    // 插入到链表中,按房号有序
    newGuest->next = NULL;
    if (head == NULL || head->roomNumber > newGuest->roomNumber) {
        newGuest->next = head;
        head = newGuest;
    } else {
        // 略去多行代码....
        // 略去多行代码....

    }
    printf("入住成功\n");
}

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

  1. 退房办理(Check Out)
    • 当客人离开时,用户可以选择该选项为客人办理退房。
    • 系统会提示输入退房客人的姓名。
    • 系统会遍历链表寻找对应的客人信息,如果找到则从链表中删除该客人的节点,并释放内存。
// 退房函数
void checkOut() {
    char name[50];
    printf("请输入退房客人的姓名: ");
        // 略去多行代码....
        // 略去多行代码....


    while (current != NULL && strcmp(current->name, name) != 0) {
        previous = current;
        current = current->next;
    }
        // 略去多行代码....

    free(current);
    printf("退房成功\n");
}

  1. 按姓名查询(Search by Name)
    • 用户可以选择该选项通过客人的姓名来查询客房信息。
    • 系统会提示输入要查询的客人姓名。
    • 系统会遍历链表寻找匹配的姓名并显示该客人的信息,包括姓名、性别和房号。
// 按姓名查询函数
void searchByName() {
    char name[50];
    printf("请输入要查询的姓名: ");
    scanf("%s", name);

    Guest *current = head;
    while (current != NULL) {
        // 略去多行代码....
        // 略去多行代码....

        }
        current = current->next;
    }
    printf("未找到该客人\n");
}

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

  1. 按房号查询(Search by Room Number)
    • 用户可以选择该选项通过房号来查询该房间的客人信息。
    • 系统会提示输入要查询的房号(301-305)。
    • 系统会遍历链表显示该房间内所有客人的信息,如果没有找到则提示该房间暂无客人。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

  1. 显示所有客人(Display All Guests)
    • 用户可以选择该选项来显示当前所有入住客人的信息。
    • 系统会遍历链表,按顺序显示每个客人的姓名、性别和房号。
    • 如果当前没有任何客人入住,系统会提示暂无客人。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

// 显示所有客人函数
void displayGuests() {
    Guest *current = head;
            // 略去多行代码....

        return;
    }
    while (current != NULL) {
        // 略去多行代码....
    }
}

  1. 退出系统(Exit)
    • 用户可以选择该选项退出系统,结束程序的运行。

操作流程

  1. 程序启动后,会显示主菜单,用户可以根据菜单提示输入选项执行相应的操作。
  2. 在每次操作完成后,程序会返回主菜单等待用户的下一步指令。
  3. 用户可以反复进行入住、退房、查询等操作,直到选择退出系统。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈


三、结果分析

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈

在这里插入图片描述

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 客房 ” 获取。👈👈👈


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

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

相关文章

20240711编译友善之臂的NanoPC-T6开发板的Buildroot

20240711编译友善之臂的NanoPC-T6开发板的Buildroot 2024/7/11 21:02 百度:nanopc t6 wiki https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6/zh NanoPC-T6/zh 4.4 安装系统 4.4.1 下载固件 4.4.1.1 官方固件 访问此处的下载地址下载固件文件 (位于网盘的&q…

可道云teamOS,用个人标签和公共标签,文件分类更多样

在信息爆炸的时代,我们每天都在与海量的数据和信息打交道。如何在这些纷繁复杂的信息中快速找到我们需要的,成为了摆在我们面前的一大难题。 为大家介绍一下可道云teamOS个人标签和公共标签功能,让信息的整理与搜索变得简单高效。 一、个人…

YOLOv10训练自己的数据集(交通标志检测)

YOLOv10训练自己的数据集(交通标志检测) 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用YOLOv10训练自己的数据集进行交通标志检测准备数据进行训练进行预测进行验证 参考文献 前言 由于本人水平有限,难免出现错漏&#xff…

【益起童行】我与孩子一起挺过的日子

今天不谈技术,只想讲讲我的故事,但并不是想寻求同情,目前过得很幸福,但并不是所有人的情况都是这么乐观! 我就只是想呼吁大家能和我【‘益’起‘童’行】,帮助更多家庭的点亮希望之光。而我也一定也会坚持尽…

LangChain框架详解

LangChain框架详解 LangChain是一个基于语言模型开发应用程序的强大框架,旨在帮助开发人员简化与大模型交互、数据检索以及将不同功能模块串联起来以完成复杂任务的过程。它提供了一套丰富的工具、组件和接口,使开发人员能够轻松构建上下文感知和具备逻…

Fast DDS library windows 下源码编译(cmake)

目录 编译环境: 编译需要的源码文件: Fast DDS编译: 注意事项: 参考文档: 基于Fast DDS 的源码来编译相关的库,然后可以通过python 来调用库文件实现dds 数据通信,本文就详细的介绍编译过程…

评估指标:精确率(Precision)、召回率(Recall)、F1分数(F1 Score)

评估指标:精确率(Precision)、召回率(Recall)、F1分数(F1 Score) 前言相关介绍1. 准确率(Accuracy)2. 精确率(Precision)3. 召回率(Re…

react学习——26react-redux实现求和案例(完整版)

1、目录结构 2、components/count/index.js import React, {Component} from "react"; export default class Count extends Component {//加法increment()>{const {value} this.selectNumthis.props.jia(Number(value))}//减法decrement()>{const {value} …

发行自己的ERC20代币

发行自己的代币 步骤1 从https://etherscan.io/tokens 查找一个代币 步骤2 复制其合约代码 步骤3 在remix中编译合约代码 步骤4 部署合约(需要提前安装Metamask, 并获取一些测试币), 这里Rinkeby测试为例 可以在 https://faucet.rinkeby.io/ 获取 Rinkeby的测试币 其中的…

关于delete和delete[ ]混用的未定义问题解释

我们知道delete用于释放一个动态空间,而delete[ ]用于释放多个动态空间,但是如果我们混用的话会导致什么问题?我在博客上看了许多文章,但不尽人意,因此写下这篇文章让你知其然知其所以然(浅薄的解释&#x…

招采全流程电子化优势及重要功能环节(数智化招采系统)

招投标全流程电子化,是加速招标采购领域数字化转型、创新招标采购交易机制的重要举措。它在构建高效规范、公平竞争、充分开放的大市场环境中起着至关重要的作用。 招采电子化历史沿革 2013年2月,国家发展改革委等八部门发布了《电子招标投标办法》&am…

基于React 实现井字棋

一、简介 这篇文章会基于React 实现井字棋小游戏功能。 二、效果演示 三、技术实现 import {useEffect, useState} from "react";export default (props) > {return <Board/> }const Board () > {let initialState [[, , ], [, , ], [, , ]];const [s…

Linux C embed development (personal rveiew)

1. 如何快速去bring up bcm 的wifi chipset a. 首先的确认 编译的BSP profile b. 其次要先用 default 的kernel config 去编译 c. 现在我们的一些 PCIE/GPIO/driver 总线的设置 都在dts 中&#xff0c;有错就去改dts 2. BCM 的板子bring up 注意事项 a. fw: bcm…

网络基础:Vlan原理与配置

VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种将一个物理网络划分为多个逻辑子网的技术。它通过在网络交换机上配置&#xff0c;使得不同VLAN中的设备即使连接在同一个物理交换机上&#xff0c;也不能直接进行通信&#xff0c;从而实现…

无头单向非循环链表实现 and leetcode刷题

无头单向非循环链表实现 1. 单链表的模拟实现IList.java接口&#xff1a;MySingleList.java文件&#xff1a; 2. leetcode刷题2.1 获取链表的中间节点2.2 删除链表中所有值为value的元素2.3 单链表的逆置2.4 获取链表倒数第k个节点2.5 给定 x, 把一个链表整理成前半部分小于 x,…

Docker存储目录问题,如何修改Docker默认存储位置?(Docker存储路径、Docker存储空间)etc/docker/daemon.json

文章目录 如何更改docker默认存储路径&#xff1f;版本1&#xff08;没测试&#xff09;版本2&#xff08;可行&#xff09;1. 停止 Docker 服务&#xff1a;2. 创建新的存储目录&#xff1a;3. 修改 Docker 配置文件&#xff1a;4. 移动现有的 Docker 数据&#xff1a;5. 重新…

盲人出行体验攻略:蝙蝠避障,点亮前行的明灯

在繁华喧嚣的都市中&#xff0c;每一步都充满了未知与挑战&#xff0c;而对于盲人朋友们来说&#xff0c;出行更是一场无声的冒险。他们凭借着内心的勇气和坚韧的意志&#xff0c;在黑暗中摸索前行&#xff0c;每一步都承载着对生活的热爱与追求。今天&#xff0c;我们要深入探…

YOLOv8改进 | 注意力机制| 利用并行子网络构建深度较浅但性能卓越的网络【全网独家】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

jdevelope安装

准备 1.jdk1.8&#xff08;已经安装不做记录&#xff09; 2.下载jdevelope安装包 3.安装包安装jdevelope开发工具 4.创建或导入项目 下载jdevelope安装包 官网下载地址&#xff1a;https://edelivery.oracle.com 安装包安装jdevelope开发工具 cmd管理员权限运行安装脚本…

新质生产力赛道核心解读,机械制造何以“向智向新”

机械行业&#xff0c;国民经济的坚实基石与核心驱动力&#xff0c;为各行各业提供高效生产工具。立于产业链的中游&#xff0c;向上游紧密连接着高精尖的核心零部件制造商与基础原材料供应商&#xff1b;向下游&#xff0c;则广泛渗透并深刻影响着基础设施建设、交通运输&#…