c++怎么实现值机系统
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下c++怎么实现值机系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一
千家信息网最后更新 2026年11月01日c++怎么实现值机系统
今天小编给大家分享一下c++怎么实现值机系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
需求分析,编程思路
结构体、类对象,座位
按照题目的描述,我们对于一个座位类,其至少有4个属性,所以我们实现的思路有:
1、根据菜单中的c)按字母顺序(编号)来显示座位表,所以我们可以使用字符形式来存储编号;
2、使用一个bool值来判断座位是否被预定;
3、使用两个字符串分别表示预定人的性和名。
然后由于题目中,一共有12个座位,我们不妨使用一个座位数组,作者在代码使用了类嵌套的手法,当时是想通过座位表类对象指针去访问节省传入空间,同时,由于后边的统计座位数量的时候的会比较好用。
初始化
创建座位表对象时,不妨对其初始化,用一个循环按A—L赋值给座位表的对应对象座位编号属性赋值。
功能实行,菜单
1、菜单显示,和之前做过的通讯录差不多,只需要在外部封装一个函数,循环调用即可,同时为了一定的视觉效果,每次循环做一次按任意键继续 + 清屏 操作。
2、调用结构,首先如上面提到的,循环,然后使用另一个判别分支结构——switch,每个选项对应一个函数调用。
3、删除座位和预定座位的功能实现逻辑:
对于删除,需要注意判断是否座位匹配(即此时座位是否空,和客户姓名是否匹配)
对于预定,则需要判断输入是否合乎要求(是否座位编号是空座)
代码
#include#include 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; /*system("pause"); system("cls");*/}// 按字母顺序输出座位列表(即输出所有(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++怎么实现值机系统"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
座位
座位表
循环
输出
信息
对象
知识
篇文章
菜单
提示
输入
函数
数量
结构
值机
系统
c++
代码
内容
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州紫鲸互联网科技有限公司
互联网科技卖菜
互联网公司 科技公司
喔噻互联网科技
互联网科技媒体
互联网科技大会案例
互联网科技热点资讯
互联网企业和科技型企业
互联网软件和科技
开一家科技互联网公司需要多少钱
互联网公司黑科技创始人
滨湖区互联网智能科技产品有哪些
互联网科技圈年度人物
科技互联网的核心竞争力
黑云互联网科技有限公司
卡尔迅互联网科技有限公司
陕西云淼互联网科技公司
互联网领先科技活动
银川新华互联网科技学校招聘
株洲百竞科技的互联网营销顾问
互联网科技官网
狮子座互联网科技有限公司
人人互联网科技是培训
蓝色互联网科技
互联网科技公司招聘
央行互联网金融科技公司
互联网科技人工智能实验室
华夏恒生科技与互联网科技
互联网公司高科技产品
北京互联网科技类企业分布