航空订票系统C++课程设计

article/2025/8/22 5:17:29

航空订票系统 项目实践完整源码

  • 前言
  • 一、功能演示
  • 二、代码
  • 总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

编写程序模拟航空订票系统,要求实现以下功能:
① 允许增、删、改航班信息,包括“航班号 / 机型 / 起降城市 / 起降时间 / 座位数 / 票价等”(所有航班信息存储在本地文本文件中,格式自定义)。
②允许以“航班号 / 起降城市” 等条件模糊查询航班信息。
③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在本地文本文件中,格式自定义)。
④退票:退票后应修改相关数据文件。


一、功能演示

主界面
用户登入
用户界面
管理员登入管理员界面
修改航班信息界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、代码

代码如下:

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <cstring>using namespace std;struct client
{//客户char name[20];			//姓名int ordering_number;	//订票量int grade;				//舱位等级client* next;
};class airline
{ //航班信息
private:char air_num[10];			//航班号char plane_num[10];			//机型char start_station[20];		//始发站char end_station[20];		//终点站char dayup[7];				//出发时间char daydown[7];			//到达时间int people_quota;			//乘员定额double price;				//票价int more_ticket;			//余票量char passenger_list[50];	//乘客名单char waiting_list[50];		//等候替补的客户名单static int number;			//航班总数public://打印航班信息void print(){cout << "*                                                                                                                  *\n";cout << "*  " << air_num << "\t  " << plane_num << "\t " << start_station << "\t     "<< end_station << "\t   " << dayup << "\t   " << daydown << "\t    " << people_quota<< "\t         " << price << "\t    " << more_ticket << "\t   *\n";cout << "*                                                                                                                  *\n";}friend client* get_passenger(airline);			 //读取某航班乘客信息friend client* get_wait(airline);				 //读取某航班等候替补名单friend airline* get_airline();                   //读取文件中的航班信息friend void put_passenger(airline, client*);	 //输出乘客信息到文件friend void put_wait(airline, client*);			 //输出等候替补名单friend void put_airline(airline*);				 //输出修改后的航班信息friend void search();							 //查询操作(用户操作)friend void booking();							 //订票操作(用户操作)friend void refund();							 //退票操作(用户操作)friend void print_airline();					 //打印所有航班信息(管理员操作)friend void client_list();						 //乘客链表名单(管理员操作)friend void add_airline();						 //添加航班    (管理员操作)friend int change_airline();					 //修改航班信息(管理员操作)/*八个航班修改操作*/friend void modify_air_num();					 //修改航班号(管理员操作)friend void modify_upstation();					 //修改起飞城市(管理员操作)friend void modify_downstation();				 //修改降落城市(管理员操作)friend void modify_plane_num();					 //修改机型(管理员操作)friend void modify_time();						 //修改起降时间(管理员操作)friend void re_price();							 //修改某航班的票价(管理员操作)friend void modify_more_ticket();				 //修改某航班余票量(管理员操作)friend void del_airline();						 //删除某航班(管理员操作)};int airline::number = 0;
char Name[20] = "";            //用于用户登录的姓名
airline* L;					   //全局变量,航线指针//增加乘客
void app_client(client* c, client* q)
{client* p = c;while (p->next) p = p->next;p->next = q;q->next = NULL;
}//登录
int login()
{int f;char password[20]; const char* p = "0000";const char* q = "1111";					//密码管理cout << "\t**********************************************************\n";cout << "\t* @       @    @@@@   @    @@@   @@@    @@@@@      @@@@  *\n";cout << "\t* @   @   @   @ @@@@  @   @     @   @  @  @  @    @ @@@@ *\n";cout << "\t*  @  @  @    @       @   @     @   @  @  @  @    @      *\n";cout << "\t*   @@ @@      @@@@   @@@  @@@   @@@   @  @  @     @@@@  *\n";cout << "\t*                                                        *\n";cout << "\t*           @@@@@@   @    @     @@@@@    @@@@@           *\n";cout << "\t*              @     @    @     @        @               *\n";cout << "\t*              @     @    @     @@@@@    @@@@@           *\n";cout << "\t*          @   @     @    @     @        @               *\n";cout << "\t*           @@@       @@@@      @        @@@@@           *\n";cout << "\t*                                                        *\n";cout << "\t*                  Air reservation ststem                *\n";cout << "\t*                                                        *\n";cout << "\t***************************登录***************************\n";cout << "\t*                                                        *\n";cout << "\t*                                                        *\n";cout << "\t*             1.乘客登录         2.管理员登录            *\n";cout << "\t*                                                        *\n";cout << "\t*           请选择用户身份:";fflush(stdin);		//刷新输入流缓冲区while (cin >> f){if (f == 1){cout << "\t*                                                        *\n";cout << "\t*                     姓名:";cin >> Name;cout << "\t*                                                        *\n";cout << "\t*   输入账户密码(提示4个1):";fflush(stdin);while (cin >> password){if (!strcmp(password, q)){cout << "\t*                                                        *\n";cout << "\t*                      登录成功!!                      *\n";cout << "\t*                                                        *\n";cout << "\t*                                                        *\n";cout << "\t**********************************************************\n\n\t";return 1;}else{cout << "\t*                                                        *\n";cout << "\t*             密码错误!! 请重新输入!                   *\n";cout << "\t*                                                        *\n";cout << "\t*   输入账户密码(提示4个1):";}}}else if (f == 2){cout << "\t*                                                        *\n";cout << "\t*        输入管理员密码(提示4个0):";fflush(stdin);while (cin >> password){if (!strcmp(password, p)){cout << "\t*                                                        *\n";cout << "\t*                      登录成功!!                      *\n";cout << "\t*                                                        *\n";cout << "\t*                                                        *\n";cout << "\t**********************************************************\n\n\t";return 2;}else{cout << "\t*                                                        *\n";cout << "\t*             密码错误!! 请重新输入!                   *\n";cout << "\t*                                                        *\n";cout << "\t* 输入管理员密码(提示4个0):";}}}else{cout << "\t*                                                        *\n";cout << "\t*           输入错误!! 请重新输入 !!                   *\n";cout << "\t*                                                        *\n";cout << "\t*           请选择用户身份:";}}
}//乘客用户界面
int form1()
{int s;cout << "\t*************************用户界面*************************\n";cout << "\t*                                                        *\n";cout << "\t*                                                        *\n";cout << "\t*   1.查询航班\t   2.退票       3.订票     0.退出登录    *\n";cout << "\t*                                                        *\n";cout << "\t*                  选择操作:";fflush(stdin);while (cin >> s){if (s >= 0 && s <= 3){cout << "\t*                                                        *\n";cout << "\t*                                                        *\n";cout << "\t**********************************************************\n";return s;}else{cout << "\t*                                                        *\n";cout << "\t*            输入错误!!!                               *\n";cout << "\t*                                                        *\n";cout << "\t*            请重新选择操作:";}}
}//管理员界面
int form2()
{int s;cout << "\t*******************************管理员界面*********************************\n";cout << "\t*                                                                        *\n";cout << "\t*  1.航班信息    2.乘客名单   3.添加航班   4.修改航班信息    0.退出登录  *\n";cout << "\t*                                                                        *\n";cout << "\t*                                                                        *\n";cout << "\t*                      选择操作:";fflush(stdin);while (cin >> s){if (s >= 0 && s <= 4){cout << "\t*                                                                        *\n";cout << "\t**************************************************************************\n\t";return s;}else{cout << "\t*                                                                        *\n";cout << "\t*                      输入错误!!!                                     *\n";cout << "\t*                                                                        *\n";cout << "\t*                      请重新选择操作:";}}
}//读取文件中的航班信息
airline* get_airline()
{fstream f;int i = 0;airline* line = new airline[100];f.open("航班信息.txt", ios::in);while (f >> line[i].air_num >> line[i].plane_num >> line[i].start_station >> line[i].end_station >>line[i].dayup >> line[i].daydown >> line[i].people_quota >> line[i].price >> line[i].more_ticket >>line[i].passenger_list >> line[i].waiting_list)i++;line->number = i;f.close();return line;
}//输出修改后的航班信息
void put_airline(airline* L)
{fstream f;int i;f.open("航班信息.txt", ios::out);for (i = 0;i < L->number;i++) f << L[i].air_num << " " << L[i].plane_num << " " << L[i].start_station << " " <<L[i].end_station << " " << L[i].dayup << " " << L[i].daydown << " " << L[i].people_quota << " " << L[i].price<< " " << L[i].more_ticket << " " << L[i].passenger_list << " " << L[i].waiting_list << '\n';f.close();
}//读取某航班乘客信息
client* get_passenger(airline L)
{fstream f;int i = 0;client* c = new client, * p = new client, * q = c;f.open(L.passenger_list, ios::in);while (f >> p->name >> p->ordering_number >> p->grade){q->next = p;p = new client;q = q->next;}q->next = NULL;f.close();return c;
}//输出乘客信息到文件
void put_passenger(airline l, client* c)
{fstream f;client* p = c->next;f.open(l.passenger_list, ios::out | ios::trunc);while (p){f << p->name << " " << p->ordering_number << " " << p->grade << '\n';p = p->next;}f.close();
}//输出等候替补名单
void put_wait(airline l, client* c)
{fstream f;client* p = c->next;f.open(l.waiting_list, ios::out | ios::trunc);while (p){f << p->name << " " << p->ordering_number << " " << p->grade << '\n';p = p->next;}f.close();
}//读取某航班等候替补名单
client* get_wait(airline l)
{fstream f;int i = 0;client* c = new client, * p = new client, * q = c;f.open(l.waiting_list, ios::in);while (f >> p->name >> p->ordering_number >> p->grade){q->next = p;p = new client;q = q->next;}q->next = NULL;f.close();return c;
}//查询操作			(用户操作)1
void search()
{char s[20];int i = 0, j = 0;cout << "*******************************************************查询*********************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                              模糊搜索(航班号 / 起降城市):";cin >> s;cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";for (i = 0;i < L->number;i++){while (i < L->number && strcmp(s, L[i].end_station) && strcmp(s, L[i].start_station) && strcmp(s, L[i].air_num)) i++;if (i < L->number){L[i].print();j = 1;}}if (j == 0){system("cls");cout << "*******************************************************查询*********************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}cout << "********************************************************************************************************************\n\n";
}//退票操作			(用户操作)2
void refund()
{char s[20];int i = 0, n;cout << "*******************************************************退票*********************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                                     航班号:";cin >> s;cout << "*                                                                                                                  *\n";while (i < L->number && strcmp(s, L[i].air_num)) i++;			//按航班号匹配if (i < L->number){//找到此航班client* c1 = get_passenger(L[i]), * c2 = get_wait(L[i]), * p = c1, * q, * r;//获得次航班的乘客和候补乘客链表while (p->next && strcmp(Name, p->next->name)) p = p->next;     //姓名查找if (p->next){//找到该用户姓名cout << "*                                        您在" << L[i].air_num << "航班(终点站:"<< L[i].end_station << ")订了" << p->next->ordering_number << "张票                                        *\n";cout << "*                                                                                                                  *\n";cout << "*                                             请输入退票数量:";do{//输入退票数cin >> n;if (n > 0 && n <= p->next->ordering_number) break;else{cout << "*                                                                                                                  *\n";cout << "*                                            输入错误!!请重新输入!!                                               *\n";cout << "*                                                                                                                  *\n";cout << "*                                                 请重新输入:";}} while (1);if (n == p->next->ordering_number){//全部退票r = p->next;q = r->next;p->next = q;delete r;cout << "*                                                                                                                  *\n";cout << "*                                                    退票完成!                                                    *\n";cout << "*                                                                                                                  *\n";}else if (n < p->next->ordering_number){//退部分票p->next->ordering_number -= n;cout << "*                                                                                                                  *\n";cout << "*                                                    退票完成!                                                    *\n";cout << "*                                                                                                                  *\n";}L[i].more_ticket += n;   //余票增加int f = 1;while (L[i].more_ticket && f){//有余票且未访问完所有候补乘客p = c2;while (p->next && L[i].more_ticket < p->next->ordering_number) p = p->next;if (p->next){//找到需求票数满足的L[i].more_ticket -= p->next->ordering_number;r = p->next;q = r->next;p->next = q;app_client(c1, r);}else f = 0;  //访问完								}put_passenger(L[i], c1);   //刷新乘客名单put_wait(L[i], c2);		   //刷新候选名单}else{cout << "*                                                                                                                  *\n";cout << "*                              退票错误!! 您没有在此航班订票!                                                    *\n";cout << "*                                                                                                                  *\n";}}else{cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}/*cout << "\n 退票操作完成!\n";*/cout << "********************************************************************************************************************\n\n";put_airline(L);
}//订票操作			(用户操作)3
void booking()
{char s[20], a[20];int i = 0, j = 0, n, x, g;cout << "*******************************************************订票*********************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                        (航班号/起降城市):";air_:cin >> s;cout << "*                                                                                                                  *\n";for (i = 0;i < L->number;i++){while (i < L->number && strcmp(s, L[i].end_station) && strcmp(s, L[i].start_station) && strcmp(s, L[i].air_num)) i++;if (i < L->number){j = 1;/*L[i].print();*/}}if (j == 1){cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";for (i = 0;i < L->number;i++){while (i < L->number && strcmp(s, L[i].end_station) && strcmp(s, L[i].start_station) && strcmp(s, L[i].air_num)) i++;if (i < L->number) L[i].print();}}if (j == 1){cout << "*                                                                                                                  *\n";cout << "*                                 请输入您所需要订购的航班号:";air_num:cin >> a;for (i = 0;i < L->number;i++){while (i < L->number && strcmp(a, L[i].air_num)) i++;if (i < L->number){cout << endl;for (i = 0;i < L->number;i++){while (i < L->number && strcmp(a, L[i].air_num)) i++;if (i < L->number){L[i].print();client* c1 = get_passenger(L[i]);client* c2 = get_wait(L[i]);g:cout << "*                                                                                                                  *\n";cout << "*               舱位等级(1:头等舱 ,2:普通舱,3:经济舱):";cin >> g;cout << "*                                                                                                                  *\n";if (0 < g && g <= 3) cout << "*                                                   购买票数:";else{cout << "*                                                                                                                  *\n";cout << "*                                        输入错误!!请重新输入舱位等级!                                            *\n";goto g;}do{cin >> n;if (n > 0 && n <= L[i].people_quota) break;elsecout << "*                                                                                                                  *\n";cout << "*   购票失败!!不能超过票数限制(" << "0" << "-" << L[i].people_quota << "),重新输入:";} while (1);if (L[i].more_ticket){/*有余票*/if (n <= L[i].more_ticket && L[i].more_ticket > 0){client* p = new client;strcpy_s(p->name, Name);p->ordering_number = n;L[i].more_ticket -= n;p->grade = g;app_client(c1, p);									/*!!!注意!!!*/cout << "*                                                                                                                  *\n";cout << "*                                                    购票完成!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";}else if (n > L[i].more_ticket && L[i].more_ticket > 0){//余票小于购买数int x;client* p1 = new client, * p2 = new client;//询问用户cout << "*                                                                                                                  *\n";cout << "*\t\t                      (1:只买" << L[i].more_ticket << "张  2:买" << L[i].more_ticket << "张,"<< n - L[i].more_ticket << "张等候  3:不买)" << "                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                    余票不足" << n << "张                                                   *\n";cout << "*                                                                                                                  *\n";cout << "*                                         选择是否继续购买?:";cin >> x;if (x >= 1 && x <= 3){switch (x){case 1:strcpy_s(p1->name, Name);p1->ordering_number = L[i].more_ticket;L[i].more_ticket = 0;p1->grade = g;app_client(c1, p1);cout << "*                                                                                                                  *\n";cout << "*                                                    购票完成!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";break;case 2:strcpy_s(p1->name, Name);p1->ordering_number = L[i].more_ticket;p1->grade = g;app_client(c1, p1);strcpy_s(p2->name, Name);p2->ordering_number = n - L[i].more_ticket;L[i].more_ticket = 0;p2->grade = g;app_client(c2, p2);cout << "*                                                                                                                  *\n";cout << "*                                                    购票完成!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";break;case 3:cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";break;}}else{cout << "*                                              输入错误!返回上一页!                                              *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";}}}else{//无余票cout << "*                                                                                                                  *\n";cout << "*                   无余票! 是否排队等候票?(1:是 0:否);";cin >> x;if (x){//进入等候名单client* p = new client;strcpy_s(p->name, Name);p->ordering_number = n;p->grade = g;app_client(c2, p);cout << "*                                                                                                                  *\n";cout << "*                                         购票操作完成! 正在排队等候票!                                          *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";}else{cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";}}put_passenger(L[i], c1);    //刷新乘客名单put_wait(L[i], c2);}put_airline(L);}}else{cout << "*                                 航班号输入错误!请重新输入:";goto air_num;}}}if (j == 0){cout << "*                                                                                                                  *\n";cout << "*                                               暂无相关航班信息!                                                  *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";}}//打印所有航班信息	(管理员操作)1
void print_airline()
{L = get_airline();int i = 0;cout << "*****************************************************航班信息*******************************************************\n";cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";for (int i = 0;i < L->number;i++)L[i].print();cout << "********************************************************************************************************************\n\n";
}//查看某航班乘客名单(管理员操作)2
void client_list()
{int i = 0;char s[20], * g = "";cout << "\t********************************乘客名单**********************************\n";cout << "\t*                                                                        *\n";cout << "\t*                                                                        *\n";cout << "\t*                        航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){client c;fstream f;f.open(L[i].passenger_list, ios::in);cout << "\t*                                                                        *\n";cout << "\t*                            已购票乘客名单                              *\n";cout << "\t*                                                                        *\n";while (f >> c.name >> c.ordering_number >> c.grade){switch (c.grade){case 1:g = "头等舱";break;case 2:g = "普通舱";break;case 3:g = "经济舱";}cout << "\t*                                                                        *\n";cout << "\t*\t姓名:" << c.name << "\t    舱位等级:" << g << "    \t购票数:" << c.ordering_number << "       *\n";}f.close();f.open(L[i].waiting_list, ios::in);cout << "\t*                                                                        *\n";cout << "\t*                           候补订票乘客名单                             *\n";cout << "\t*                                                                        *\n";while (f >> c.name >> c.ordering_number >> c.grade){switch (c.grade){case 1:g = "头等舱";break;case 2:g = "普通舱";break;case 3:g = "经济舱";}cout << "\t*                                                                        *\n";cout << "\t*\t姓名:" << c.name << "\t    舱位等级:" << g << "    \t预订票数:" << c.ordering_number << "      *\n";}f.close();}else{cout << "\t*                                                                        *\n";cout << "\t*                            无此航班信息!                               *\n";cout << "\t*                                                                        *\n";}cout << "\t*                                                                        *\n";cout << "\t**************************************************************************\n\n\t";}//添加航班			(管理员操作)3
void add_airline()
{int i = 0;airline air1;cout << "*****************************************************添加航班*******************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";
air1_air_num:cin >> air1.air_num;while (i < L->number && strcmp(air1.air_num, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "*                                              已存在此航班号                                                      *\n";cout << "*                                                                                                                  *\n";cout << "*                                           请重新输入航班号:";goto air1_air_num;}cout << "*                                                                                                                  *\n";cout << "*                                                 请输入机型:";cin >> air1.plane_num;cout << "*                                                                                                                  *\n";cout << "*                                             请输入起飞城市:";cin >> air1.start_station;cout << "*                                                                                                                  *\n";cout << "*                                             请输入降落城市:";cin >> air1.end_station;cout << "*                                                                                                                  *\n";cout << "*                                             请输入出发时间:";cin >> air1.dayup;cout << "*                                                                                                                  *\n";cout << "*                                             请输入到达时间:";cin >> air1.daydown;cout << "*                                                                                                                  *\n";cout << "*                                             请输入乘员定额:";
air1_people_quota:cin >> air1.people_quota;if (air1.people_quota <= 0){cout << "\n   乘员定额输入错误\t  请重新输入乘员定额:";goto air1_people_quota;}cout << "*                                                                                                                  *\n";cout << "*                                                 请输入票价:";
air1_price:cin >> air1.price;if (air1.price <= 0){cout << "\n   票价输入错误\t  请重新输入票价:";goto air1_price;}cout << "*                                                                                                                  *\n";cout << "*                                               请输入余票数:";
air1_more_ticket:cin >> air1.more_ticket;if (air1.more_ticket <= 0){cout << "\n   余票数输入错误\t  请重新输入余票数:";goto air1_more_ticket;}cout << "*                                                                                                                  *\n";cout << "*                          输入(建立乘员名单文档名_eg:007a):";cin >> air1.passenger_list;cout << "*                                                                                                                  *\n";cout << "*                              输入(等候名单文档名_eg:007b):";cin >> air1.waiting_list;cout << "*                                                                                                                  *\n";ofstream outfile("航班信息.txt", ios::app);outfile << air1.air_num << " " << air1.plane_num << " " << air1.start_station << " " << air1.end_station << " "<< air1.dayup << " " << air1.daydown << " " << air1.people_quota << " " << air1.price << " " << air1.more_ticket << " "<< air1.passenger_list << " " << air1.waiting_list << "\n";outfile.close();cout << "*                                                                                                                  *\n";cout << "*                                                  添加航班完成!                                                   *\n";cout << "*                                                                                                                  *\n";cout << "********************************************************************************************************************\n\n";
}//修改航班信息		(管理员操作)4
int change_airline()
{int s;cout << "\t****************************修改航班信息界面******************************\n";cout << "\t*                                                                        *\n";cout << "\t*  1.修改航班号   2.修改机型   3.修改航班起飞城市   4.修改航班降落城市   *\n";cout << "\t*                                                                        *\n";cout << "\t*  5.修改起降时间   6.修改机票价格    7.修改剩余座位   8.删除航班信息    *\n";cout << "\t*                                                                        *\n";cout << "\t*  0.返回上级菜单                                                        *\n";cout << "\t*                                                                        *\n";cout << "\t*                      选择操作:";fflush(stdin);while (cin >> s){if (s >= 0 && s <= 8){cout << "\t*                                                                        *\n";cout << "\t**************************************************************************\n\n\t";return s;}else{cout << "\t*                                                                        *\n";cout << "\t*                      输入错误!!!                                     *\n";cout << "\t*                                                                        *\n";cout << "\t*                      请重新选择操作:";}}
}//修改航班号		(管理员操作1)
void modify_air_num()
{int i = 0;char s[10];char* p = new char[10];cout << "****************************************************修改航班号******************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                   新航班号:";cin >> p;strcpy_s(L[i].air_num, p);	//将p中字符串复制到L[i].air_numcout << "*                                                                                                                  *\n";cout << "*                                                 修改航班号完成!                                                 *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";}//修改机型			(管理员操作2)
void modify_plane_num()
{int i = 0;char s[10];char* p = new char[10];cout << "*****************************************************修改机型*******************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                     新机型:";cin >> p;strcpy_s(L[i].plane_num, p);	//将p中字符串复制到L[i].plane_numcout << "*                                                                                                                  *\n";cout << "*                                                  修改机型完成!                                                  *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//修改起飞城市		(管理员操作3)
void modify_upstation()
{int i = 0;char s[10];char* p = new char[10];cout << "***************************************************修改起飞城市*****************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                 新起飞城市:";cin >> p;strcpy_s(L[i].start_station, p);	//将p中字符串复制到L[i].start_stationcout << "*                                                                                                                  *\n";cout << "*                                                修改起飞城市完成!                                                *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//修改降落城市		(管理员操作4)
void modify_downstation()
{int i = 0;char s[10];char* p = new char[10];cout << "***************************************************修改降落城市*****************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                 新降落城市:";cin >> p;strcpy_s(L[i].end_station, p);	//将p中字符串复制到L[i].end_stationcout << "*                                                                                                                  *\n";cout << "*                                                修改降落城市完成!                                                *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//修改起降时间		(管理员操作5)
void modify_time()
{int i = 0;char s[10];char* p = new char[10];char* q = new char[10];cout << "***************************************************修改起降时间*****************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                 新出发时间:";cin >> p;cout << "*                                                                                                                  *\n";cout << "*                                                 新到达时间:";cin >> q;strcpy_s(L[i].dayup, p);	//将p中字符串复制到L[i].dayupstrcpy_s(L[i].daydown, q);	//将q中字符串复制到L[i].daydowncout << "*                                                                                                                  *\n";cout << "*                                                修改起降时间完成!                                                *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//修改某航班票价	(管理员操作6)
void re_price()
{int i = 0, p;char s[20];cout << "****************************************************修改票价间******************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                     新票价:";cin >> p;L[i].price = p;cout << "*                                                                                                                  *\n";cout << "*                                                  修改票价完成!                                                  *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//修改某航班余票量	(管理员操作7)
void modify_more_ticket()
{int i = 0, p;char s[20];cout << "***************************************************修改余票数量*****************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();cout << "*                                                 新的余票数:";cin >> p;L[i].more_ticket = p;cout << "*                                                                                                                  *\n";cout << "*                                                 修改余票数完成!                                                 *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}//删除某航班		(管理员操作8)
void del_airline()
{int i = 0, j = 0;char s[20];char p[50] = "\0";cout << "*****************************************************删除航班*******************************************************\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";cout << "*                                               请输入航班号:";cin >> s;while (i < L->number && strcmp(s, L[i].air_num)) i++;if (i < L->number){cout << "*                                                                                                                  *\n";cout << "* 航班号" << "    机型" << "\t始发站" << "\t    终点站" << "\t 出发时间" << "\t 到达时间" << "\t 乘员定额" <<"\t票价" << "\t  余票量" << "   *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";L[i].print();for (i;i < L->number;i++){L[i] = L[i + 1];}L->number -= 1;cout << "*                                                                                                                  *\n";cout << "*                                                  删除航班完成!                                                  *\n";cout << "*                                                                                                                  *\n";}else{cout << "*                                                                                                                  *\n";cout << "*                                                 无此航班信息!                                                    *\n";cout << "*                                                                                                                  *\n";cout << "*                                                                                                                  *\n";}put_airline(L);cout << "********************************************************************************************************************\n\n";
}

总结

完整源码请进入GitHub查看。


http://chatgpt.dhexx.cn/article/aayD8GY9.shtml

相关文章

数据结构课设-航空客运订票系统(C语言实现)

航空客运订票系统&#xff08;C语言实现&#xff09; 系统框架已完成功能用户功能管理员功能其他 运行结果管理员添加航班客户订票添加候补客户退票 代码 系统框架 已完成功能 用户功能 查询航线&#xff1a;根据旅客提出的终点站名输出航班的信息。订票业务&#xff1a;根据…

C++课程设计:航空客运订票系统

航空客运订票系统 选题背景 方案论证 过程论述 运行结果 完整代码 选题背景 ①背景: 现在人们更多的使用飞机作为出行交通工具&#xff0c;因此机票票务市场也在快速发展。国内外航空事业在飞速发展&#xff0c;各航空公司对票务管理的要求也在不断的提高&#xff0c;对…

基于ssm的航空订票系统

基于ssm的航空订票系统 一、技术栈 ​ 前端 ​ vue全家桶、element-ui组件库、moment.js插件 ​ 后端 ​ springboot springmvc mybatis 二、功能描述 本系统是基于B/S架构的航空订票系统 系统分为三大用户–乘客、航空公司、后台管理员&#xff0c;本次课程设计主要实现…

课程设计之航空客运订票系统

/***************************************************** * 版权所有&#xff08;C&#xff09;2016&#xff0c;王力源 * *文件名称&#xff1a;A.C 航空售票系统 *文件标识&#xff1a;无 *内容摘要&#xff1a;航空售票系统 *其他说明&#xff1a;无 *当前版本&#xff1…

航空客运订票系统(数据结构课设)

前言&#xff1a; 广工数据结构课设&#xff0c;基本需求和选做内容以及一些小扩展均已实现&#xff0c;此博客仅展示一部分&#xff0c;实验报告文档、源代码和可运行程序&#xff08;.exe文件&#xff09;等可以去我的github或者码云上下载&#xff0c;如果对您有帮助&#…

python-数据结构-大学生-航空订票系统

python-数据结构-大学生-航空订票系统 1.问题描述及任务描述 1.1问题描述 航空订票系统&#xff1a;可以实现航空客运订票的主要业务活动 基本要求&#xff1a; &#xff08;1&#xff09;航线管理&#xff1a;每条航线所涉及的信息由&#xff1a;终点站名、航班号、飞机号、…

C语言航空订票系统课程设计

目录 1.设计目的&#xff1a; 2总体设计和功能&#xff1a; 3.菜单设计 4.各功能代码详解&#xff08;闲话少扯&#xff09;&#xff1a; 4.1.C语言文件的操作&#xff1a; 4.2.读取航班信息&#xff1a; C语言知识回顾 4.3.打印航班信息 5.根据要求查找航班&#xf…

C语言 数据结构课设 航空订票系统

目录 实现功能 部分功能测试截图 ​ 代码展示 实现功能 1.订票 2.退票 3.查询航班信息 4.修改航班信息 5.录入航班信息 6.打印订票信息 部分功能测试截图 功能选择界面 查询航班功能测试 订票功能测试 打印订票信息 代码展示 代码中需要的二个文件内容如下 第一个是代码中的…

【计算机毕业设计】41.航空订票系统

摘 要 网络的广泛应用给生活带来了十分的便利。所以把航空订票与现在网络相结合&#xff0c;利用JSP技术建设航空订票系统&#xff0c;实现航空订票的信息化。则对于进一步提高航班公司的发展&#xff0c;丰富航空订票经验能起到不少的促进作用。 航空订票系统能够通过互联网…

航空订票系统(javaweb项目)

航空订票系统课程设计 一、项目选题 航空订票系统 二、项目背景 当今社会知识经济高速发展&#xff0c;信息化在各个行业内正在被越来越广泛的应用。人们生活水平的不断提高&#xff0c;使得出行的交通工具也跟着发展起来。如今乘飞机出行的人越来越多&#xff0c;这方面的市…

数据结构课设——航空航天订票系统

文章目录 一、系统简介    1、业务活动    2、操作和功能二、系统功能模块图    1、系统功能模块图    2、函数功能模块三、详细描述    1、数据结构    2、设计思路四、运行结果    1、查询所有航班    2、根据起点终点搜索航班    3、订…

mysql导出表结构及数据的三种方法

navicat导出表一共有三中用法&#xff1a; 第一种&#xff1a;数据库上右键—>"转储SQL文件"&#xff0c;如图&#xff1a; "转储文件"是把整个数据库表全部导出&#xff0c;所有的表都是先drop然后create&#xff0c;insert。 第二种&#xff1a;部分表…

将mysql中的数据库表导出和导入

目录 导出数据库 导入数据库 导出数据库 如果你的mysql没有配置环境变量&#xff0c;首先需要进到你所安装的mysql目录下的bin目录 进入之后输入&#xff1a; mysqldump -uroot -p booksystem > booksystem.sql 其中booksystem是你要导出的数据库中的名字&#xff0c;book…

MySQL——表的导出和导入

有时会需要将MySQL数据4中的数据导出到外部存储文件中&#xff0c;MySQL数据库中的数据可以导出成qI文本文件、xml文件或者html文件&#xff0c;同样这些导出的文件也可以导入MySQL数据库中&#xff0c; 一. 表的导出 1. 用 SELECT…INTO OUTFILE 导出文本文件 在 MySQ…

C代码实现Mysql导出表数据,sql语句保存

概述 本人最近项目的要求&#xff0c;需要定时检查数据库变化&#xff0c;定时将变化的数据库数据导出来另外保存。 所以研究数据库数据导出功能&#xff0c;并记录下开发过程。因暂时没有需要&#xff0c;没有将数据库的结构保存。 软件环境 编译器&#xff1a;vs2022 数据…

MySQL导出表数据至excel表格

虽然很简单&#xff0c;但还是把步骤记下来&#xff0c;防止以后忘记 第一步&#xff1a;选中表名 点击导出向导 第二步&#xff1a;选择导出格式 第三步&#xff1a;选择导出.xlsx文件的名字以及存放路径 第四步&#xff1a;设置编码格式 第五步&#xff1a;设置导出数据是否…

mysql数据库导入导出sql文件

目录 1.导出sql文件2.导入sql文件 在使用MySQL数据库时&#xff0c;经常需要备份和恢复数据库&#xff0c;通过导出sql文件备份和直接执行sql文件恢复是非常便捷的方式。本篇博客主要介绍如何对MySQL数据库通过cmd命令导出和导入sql文件。 1.导出sql文件 导出sql文件可以使用m…

MySQL表的导出

MySQL表的导出有两种方式&#xff1a;1&#xff0c;select … into outfile … 2&#xff0c;mysqldump工具进行导出 1.select … into outfile … 方式导出&#xff1a; (1)默认导出地址查询&#xff1a;show variables like secure_file_priv&#xff0c;后续将该地址设为数据…

mysql数据库如何导出表和数据

1.选择需要导出的表 2.右击选择转储SQL文件 3.输入文件名选择sql脚本文件 4.完成

mysql导出表_mysql导出表的3种方式

文章转载自 &#xff1a; https://blog.csdn.net/jbb0403/article/details/26359573 navicat导出表一共有三中用法&#xff1a; 第一种&#xff1a;数据库上右键—>"转储SQL文件"&#xff0c;如图&#xff1a; "转储文件"是把整个数据库表全部导出&…