c++实现航空订票程序

  

这是帮我同学写的一个c++作业,说实话好久没写过c++都有些生疏了。但他们好像还没学面向对象编程,所以只能是简单的结构体和输入输出的逻辑。
  题目要求:

  

编写一个航空订票程序:

  

假设一等5个舱座位,编号为1 ~ 5,经济舱20个座位,编号为1 ~ 20

  

具体要求如下:

  

当程序开始时,提示输入乘客姓名,一个名字只能订一个座位,如果该名字已经订过座位了,则提示该乘客座位已定及座位号,否则提示输入舱位类型;

  

当输入舱位类型后,如果该舱位已全部订出,则提示此舱全部订完,重新选择舱位类型,否则显示可以选择的座位号,注意已经被订出的座位号不能出现,提示输入座位号;

  

舱位类型:只能输入“F”或“E”,一等舱为F,经济舱为E,如果输入其它字符则提示输入无效。

  

座位号:只能输入前面列出可以选择的座位号,若输入其它则提示输入无效。

  

程序可以为多个乘客订的票,直到输入名字为“。”;

  

最后程序按照舱位类型与座位号排序打印出所有订票信息(座位号及对应乘客姓名)

  

最终实现效果:

  

 C + +实现航空订票程序

  

1,变量

  

不过既然提到了结构体用来存储票的信息(其实这就是面向对象思想的早期)。联系实际,一个结构体代表一个事物,结构体中的字段代表这个事物的属性;这样的话,我们可以提取出两个结构体:座位和座位票机票,由于题目给定总共25个座位,意味着25张票,则将它们声明成全局变量。

     //座位,那么座位有3个基本属性:座位类型(F/E),座位编号,座位预定状态(是否已经被预定)   {struct座位   char类型;   int数;   bool isReservation;   [25]}席位;//票,票有两个属性,即票需要表明:谁预定了哪个座位,第一个座位就是我们前面定义的那个结构体。   struct票{   座椅座位;   字符串passenger_name;   [25]}门票;      之前      

2,函数

  

我们需要将一些输出输入的操作提取成函数,简化我们的代码,这里之所以将输入提取成输入()函数,是因为我们需要不断输入,即使出错,所以为了便于递归调用就封装成函数;

        bool检查(字符串名称);//检测是否已购的票   无效输入();//用于执行输入   空白printSeat (char seatType);//显示剩余座位   无效预订(字符串名称、int seatNumber char seatType);//购票   空白printticket(字符串名称);//显示已购票信息   空白printError();//显示输入不合法   之前      

3,主体逻辑

  

主要函数非常简单,首先需要将座位和票信息初始化,即将它们编的号,预定状态全为“未预定”,然后执行输入,一个虽然循环,如果不符合条件就直接跳出,执行printticket()打印出所有的订票信息;

  

        int main ()   {//初始化舱位和票   (int i=0; i<25;我+ +){   如果(i<5) {   座位[我].type=' F ';   座位[我].number=i + 1;   其他}{   座位[我].type=癊”;   座位[我].number=i + 1 - 5;   }   座位[我].isReservation=false;   票[我][我].seat=席位;   票[我]。passenger_name=" ";   }      cout<& lt;“=================================================" & lt; & lt; endl;   cout<& lt;“欢迎使用CT票务系统”& lt; & lt; endl;   cout<& lt;“=================================================" & lt; & lt; endl;   cout<& lt;“乘客姓名:”;   ,而(cin>的在名字){   如果(name==啊!?;   如果(surplusF + surplusE==0) {   cout<& lt;“\ n很遗憾所有票已购完! \ n”;   打破;   }   如果(检查(名字)){   cout<& lt;“\ n您已购的票,购票信息:\ n”& lt; & lt; endl;   printticket(名称);   其他}{   cout<& lt;“\ n舱位类型F:一等舱E:经济舱\ n”;   输入();   }   cout<& lt;“\ n乘客姓名:”;   }   printticket (" ");   返回0;      }      之前      

4,具体函数实现

  

具体的函数实现逻辑我就不讲了,就看代码吧~

  

5,完整代码:

  

main.cpp   

        # include   使用名称空间性病;//定义全局变量,舱位,票,各类型舱位剩余数,便于其它函数全局访问   int surplusF=5;   int surplusE=20;      int国旗=0;   char seat_type;   int seatNumber;   字符串名称;//座位   {struct座位   char类型;   int数;   bool isReservation;   [25]}席位;//票   struct票{   座椅座位;   字符串passenger_name;   [25]}门票;      bool检查(字符串名称);//检测是否已购的票   无效输入();//用于执行输入   空白printSeat (char seatType);//显示剩余座位   无效预订(字符串名称、int seatNumber char seatType);//购票   空白printticket(字符串名称);//显示已购票信息   空白printError();//显示输入不合法      int main ()   {//初始化舱位和票   (int i=0; i

c++实现航空订票程序