返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++怎么实现值机系统
  • 561
分享到

c++怎么实现值机系统

2023-06-29 12:06:10 561人浏览 薄情痞子
摘要

今天小编给大家分享一下c++怎么实现值机系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。需求分析,编程思路结构体、类对象,

今天小编给大家分享一下c++怎么实现值机系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

需求分析,编程思路

结构体、类对象,座位

按照题目的描述,我们对于一个座位类,其至少有4个属性,所以我们实现的思路有:
1、根据菜单中的c)按字母顺序(编号)来显示座位表,所以我们可以使用字符形式来存储编号;
2、使用一个bool值来判断座位是否被预定;
3、使用两个字符串分别表示预定人的性和名。
然后由于题目中,一共有12个座位,我们不妨使用一个座位数组,作者在代码使用了类嵌套的手法,当时是想通过座位表类对象指针去访问节省传入空间,同时,由于后边的统计座位数量的时候的会比较好用。

初始化

创建座位表对象时,不妨对其初始化,用一个循环按A—L赋值给座位表的对应对象座位编号属性赋值。

功能实行,菜单

菜单显示,和之前做过的通讯录差不多,只需要在外部封装一个函数,循环调用即可,同时为了一定的视觉效果,每次循环做一次按任意键继续 + 清屏 操作。
2、调用结构,首先如上面提到的,循环,然后使用另一个判别分支结构——switch,每个选项对应一个函数调用。
3、删除座位和预定座位的功能实现逻辑:
对于删除,需要注意判断是否座位匹配(即此时座位是否空,和客户姓名是否匹配)
对于预定,则需要判断输入是否合乎要求(是否座位编号是空座)

代码

#include<iOStream>#include<string>using namespace std;#define Max_size 12// 座位类class Seat{public:    char number;        // 座位编号 A - L    bool is_empty;        // 判断是否空    false-满,true-空    string name;        // 预定人的名    string lastname;    // 预定人的姓 };// 座位表——座位数组class seats_table{public:    // 座位表    Seat Seats[Max_size];    // 座位表中实际座位被坐的数量    int m_size;};// 菜单显示void show_menu(){    cout << "To choose a functions, enter its letter label:" << endl        << "a) Show number of empty seats" << endl        << "b) Show list of empty seats" << endl        << "c) Show alphabetical list of seats" << endl        << "d) Assign a customer to seat assignment" << endl        << "e) Delete a seat assignment" << endl        << "f) Quit" << endl;}// 显示空座的数量void show_num_of_empty(seats_table* Seats){    cout << "Numer of empty seats: " << Max_size - Seats->m_size << endl;    system("pause");    // 任意键继续    system("cls");        // 清屏操作}// 显示空座列表即显示座位编号void show_Listofempty(seats_table* S){    cout << "List of empty seats:" << endl;    for (int i = 0; i < Max_size; ++i)    {        if (S->Seats[i].is_empty)        {            cout << S->Seats[i].number << "\t";        }    }    cout << endl;    }// 按字母顺序输出座位列表(即输出所有(12个)座位的信息)void show_ListofSeats(seats_table* St){    cout << "List of Seats:" << endl;    for (int i = 0; i < Max_size; ++i)    {        cout << St->Seats[i].number << "\t";        if (St->Seats[i].is_empty)        {            cout << "Empty" << endl;        }        else        {            cout << "Not empty" << "\t"                << St->Seats[i].name << "\t"                << St->Seats[i].lastname << endl;        }    }    system("pause");    system("cls");}// Assign a customer to a seat assignment(就是订座)void assign_seats(seats_table* St){    // 调用一下显示空座列表函数    show_Listofempty(St);    char judge;    do    {        // 输出提示信息        cout << "Please choose the num of seat you want choose:" << endl;        char sel;        cin >> sel;        // 先判断是否是正确输入        if (sel < 'A' || sel > 'L')        {            cout << "Input Error!" << endl;        }        else        {            // 再判断该座位是否为空座            if (!St->Seats[sel - 'A'].is_empty)            {                // 非空                cout << "The seat is not empty!" << endl;            }            else            {                // 按照字母编号将对应座位置人(即非空,置否),并将实际座位(非空座)总数+1                St->Seats[(int)(sel - 'A')].is_empty = false;                St->m_size++;                // 输出提示信息(提醒用户输入名字)                cout << "Please input your name:" << endl;                string na;                cin >> na;                St->Seats[(int)(sel - 'A')].name = na;                cout << "Please input your lastname:" << endl;                string ln;                cin >> ln;                St->Seats[(int)(sel - 'A')].lastname = ln;                // 输出订票成功的提示                cout << "Successful reservation!" << endl;            }        }        cout << "Continue? (Y/N)" << endl;        cin >> judge;    } while (judge == 'Y');    system("pause");    system("cls");}// delete a seat assignment(删除一个座位的合约)// 说实话,这个机制有点问题,应该不是给客户操作, 应该是工作人员操作void d_seat(seats_table* St){        char num;    char judge;    do    {        // 输出提示信息(要删除的座位编号)        cout << "Please input the number(A-L) of seat you want delete:" << endl;        cin >> num;        // 先判断是否是正确输入        if (num < 'A' || num > 'L')        {            cout << "Input Error!" << endl;        }        else        {            // 判断是否是空座            // 空座            if (St->Seats[num - 'A'].is_empty)            {                                cout << "The seat is empty." << endl;            }            else            {                cout << "Please input your name and lastname:" << endl;                string na, lna;                cin >> na >> lna;                // 判断座位的名字和姓是否匹配                if (St->Seats[num - 'A'].name == na && St->Seats[num - 'A'].lastname == lna)                {                    St->Seats[num - 'A'].is_empty = true;                    St->m_size--;                    St->Seats[num - 'A'].name = "";                    St->Seats[num - 'A'].lastname = "";                    cout << "Seat withdrawal succeeded!" << endl;                }                else                {                    cout << "The name or lastname is not matchied!" << endl;                }            }        }        cout << "Continue? (Y/N)" << endl;        cin >> judge;    } while (judge == 'Y');    system("pause");    system("cls");}int main(){    seats_table S;    // 初始化,实际被坐的座位为0    S.m_size = 0;    // 循环,初始化座位的编号(A - L),并全部置空    for (int i = 0; i < Max_size; i++)    {        // 97--'A'        S.Seats[i].number = (char)(i + 65);        S.Seats[i].is_empty = true;    }    // 声明选择变量    char select = 'a';    // 循环显示菜单进行操作    while (1)    {        // 菜单调用        show_menu();        bool b = false;        cin >> select;        switch (select)        {        case 'a':            show_num_of_empty(&S);            break;        case 'b':            show_Listofempty(&S);            system("pause");            system("cls");            break;        case 'c':            show_ListofSeats(&S);            break;        case 'd':            assign_seats(&S);            break;        case 'e':            d_seat(&S);            break;                // 放弃操作,退出循环(while循环)        case 'f':            b = true;            break;        // 其他情况        default:            cout << "Input error!" << endl;            system("pause");            system("cls");        }        if (b)        {            break;        }    }    system("pause");    return 0;}

以上就是“c++怎么实现值机系统”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。

--结束END--

本文标题: c++怎么实现值机系统

本文链接: https://lsjlt.com/news/324719.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • c++怎么实现值机系统
    今天小编给大家分享一下c++怎么实现值机系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。需求分析,编程思路结构体、类对象,...
    99+
    2023-06-29
  • c++实现值机系统
    本项目为大家分享了c++实现值机系统的具体代码,供大家参考,具体内容如下 前言 上周帮同学做了一个项目作业,具体要求见下图,实现语言为c++。今天决定在此复盘这个程序编写的思路,具体...
    99+
    2024-04-02
  • C++实现飞机订票系统
    本文实例为大家分享了C++实现飞机订票系统的具体代码,供大家参考,具体内容如下 // 飞机订票系统.cpp : 定义控制台应用程序的入口点。 // #include "stdafx...
    99+
    2024-04-02
  • C语言实现飞机售票系统
    本文实例为大家分享了C语言实现飞机售票系统的具体代码,供大家参考,具体内容如下 一、项目简介 通过“航空售票系统”C语言课程设计的实践,掌握函数、数据的读取和...
    99+
    2024-04-02
  • C++怎么实现车票管理系统
    这篇文章主要介绍“C++怎么实现车票管理系统”,在日常操作中,相信很多人在C++怎么实现车票管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现车票管理系统”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-29
  • C++机房预约系统实现流程实例
    目录1.机房预约系统分析1.1身份简介1.2机房简介1.3申请简介1.4系统具体需求2.系统实现2.1建立身份类2.2建立管理者类2.3建立老师类2.4建立学生类3.文件处理3.1管...
    99+
    2022-11-13
    C++机房预约系统 C++预约系统 C++预约程序
  • Python随机值怎么实现
    本文小编为大家详细介绍“Python随机值怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python随机值怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。介绍生成...
    99+
    2024-04-02
  • XP系统怎么实现远程关机
    这篇文章主要介绍“XP系统怎么实现远程关机”,在日常操作中,相信很多人在XP系统怎么实现远程关机问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”XP系统怎么实现远程关机”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-14
  • python随机抽奖系统怎么实现
    要实现一个Python随机抽奖系统,可以按照以下步骤进行:1. 导入random模块,用于生成随机数。```pythonimport...
    99+
    2023-08-16
    python
  • 基于C#实现电脑系统挂机锁
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-19
    C#电脑系统挂机锁 C#电脑挂机锁 C#电脑 挂机
  • C语言实现ATM机存取款系统
    本文实例为大家分享了C语言实现ATM机存取款系统的具体代码,供大家参考,具体内容如下 利用结构体和构造函数并且采用输入输出文件实现ATM机系统。 主要功能有: 利用三种方法查询、开户...
    99+
    2024-04-02
  • 怎么用C++实现酒店管理系统
    这篇文章主要介绍“怎么用C++实现酒店管理系统”,在日常操作中,相信很多人在怎么用C++实现酒店管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C++实现酒店管理系统”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • 如何使用C++实现飞机订票系统
    小编给大家分享一下如何使用C++实现飞机订票系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下// 飞机订票系统.cpp :&nb...
    99+
    2023-06-29
  • C语言如何实现飞机售票系统
    本文小编为大家详细介绍“C语言如何实现飞机售票系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现飞机售票系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、项目简介通过“航空售票系统”C语言课程...
    99+
    2023-06-30
  • C++怎么实现寝室卫生管理系统
    这篇文章主要介绍“C++怎么实现寝室卫生管理系统”,在日常操作中,相信很多人在C++怎么实现寝室卫生管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现寝室卫生管理系统”的疑惑有所帮助!接下来...
    99+
    2023-06-29
  • C语言怎么实现图书管理系统
    要实现一个图书管理系统,可以按照以下步骤进行:1. 定义图书结构体:首先要定义一个图书的结构体,包括图书的编号、名称、作者等信息。`...
    99+
    2023-08-09
    C语言
  • 怎么用C++实现通讯录管理系统
    这篇“怎么用C++实现通讯录管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C++实现通讯录管理系统”文章吧。系...
    99+
    2023-07-02
  • c语言成绩查询系统怎么实现
    要实现一个C语言成绩查询系统,你可以按照以下步骤进行:1. 定义学生结构体:首先,你需要定义一个学生的结构体,其中包括学生的学号、姓名和成绩等信息。```ctypedef struct {int studentID;char name[...
    99+
    2023-08-09
    c语言
  • C++实现图书馆系统
    本文实例为大家分享了C++实现图书馆系统的具体代码,供大家参考,具体内容如下 1.目的 用c++语言实现图书馆系统 2.分析    图书馆系统中要实现的功能有:图...
    99+
    2024-04-02
  • 基于Python怎么实现随机点名系统
    效果展示创建一个这样的文件夹,然后把要随机点名的名字写在里面导入后,这里就显示你导入了多少人员信息点击开始点名后,会随机从导入名字里挑选一位幸运儿~效果大概就是这样,下面我们来看看代码吧代码展示导入模块里面有第三方模块,需要大家自己安装一下...
    99+
    2023-05-24
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作