溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言怎么實現(xiàn)飛機訂票系統(tǒng)

發(fā)布時間:2021-08-11 14:47:23 來源:億速云 閱讀:142 作者:chen 欄目:編程語言

這篇文章主要講解了“C語言怎么實現(xiàn)飛機訂票系統(tǒng)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語言怎么實現(xiàn)飛機訂票系統(tǒng)”吧!

問題描述與題目要求

問題描述: 假定某民航有M個航次的班機,每個航次都只到達一個地方。試為該機場售票處設(shè)計一個自動訂票和退票系統(tǒng),要求系統(tǒng)具有以下功能:(1)訂票:若該航次余票大于等于乘客訂票數(shù),則在該航次的乘客表中,插入訂票乘客的信息項,并修改該航次有關(guān)數(shù)據(jù),否則給出相應(yīng)信息。(2)退票:若該航次當前退票數(shù)小于等于乘客原訂票數(shù),則在相應(yīng)的乘客表中找到該乘客項,修改該航次及乘客表中有關(guān)數(shù)據(jù);當某乘客由于退票使訂票數(shù)為零時,則從乘客表中撤消該數(shù)據(jù)項。

要求:

(1)描述對航次表和乘客表選用的數(shù)據(jù)結(jié)構(gòu)。(2)編程實現(xiàn)飛機票訂票和退票系統(tǒng)。

模型假設(shè)

1.假設(shè)所有輸入均為整數(shù)且在int類型的表示范圍內(nèi)2.假設(shè)航次是從1到n的連續(xù)整數(shù)3.假設(shè)每個乘客 ID 均唯一

數(shù)據(jù)結(jié)構(gòu)的選用

聯(lián)想到圖中的鄰接鏈表,采用相似的數(shù)據(jù)結(jié)構(gòu)描述該問題航次表: 用一個數(shù)組flight_info_list存儲每個航次的乘客表,該數(shù)組下標即為航班航次,對應(yīng)元素即為該航次相關(guān)信息(乘客表,航班編號及航班余票數(shù))乘客表: 用雙向鏈表存儲每個航次的乘客表passenger_info_list,每個結(jié)點存儲乘客的 ID,訂票數(shù)以及指向前、后結(jié)點的指針

編程實現(xiàn)(C語言實現(xiàn))

/* * @Description: 模擬航班的訂票系統(tǒng) * 模型假設(shè): *   1. 飛機最大載客量為300人 *   2. 共10個航次 * 用雙向鏈表存儲乘客信息 * 用array存儲航班信息 * @Author: Fishermanykx * @Date: 2019-09-29 10:32:56 * @LastEditors: Fishermanykx * @LastEditTime: 2019-09-30 12:29:16 */#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#define MAX_CAPACITY 300 // 假定飛機最大載客量為300#define TOTAL_AIRLINE 10 // 假定不同航線最大數(shù)目為10#define BOOK_TICKET 1#define REFUND -1#define EXIT_SYSTEM 0#define PRINT_INFO 11#define ROOT 123456// 某航次航班struct SingleFlight { int flight_id;    // 航班編號,從1開始,到TOTAL_AIRLINE為止 int remain_tickets; // 該航班余票數(shù) struct SinglePassenger* passenger_info_list; // 該航班乘客表};// 某航次航班的某個乘客的信息struct PassengerInfo { int passenger_id;  // 乘客id int ticket_number; // 該乘客購買票數(shù)};// 乘客表中的一個結(jié)點struct SinglePassenger { struct PassengerInfo passenger_info;   // 乘客信息 struct SinglePassenger* prev_passenger; // 指向前一個乘客的指針 struct SinglePassenger* next_passenger; // 指向后一個乘客的指針};typedef struct SingleFlight SingleFlight;typedef struct SinglePassenger SinglePassenger;// 訂票操作SingleFlight* BookTicket(SingleFlight flight_info_list[]);SinglePassenger* GetNewPassenger(const int new_passenger_id,                 const int book_ticket_number);SinglePassenger* AddNewPassenger(SinglePassenger* head,                 const int new_passenger_id,                 const int book_ticket_number);// 退票操作SingleFlight* Refund(SingleFlight flight_info_list[]);SinglePassenger* RemovePassenger(SinglePassenger* head, const int passenger_id);// 判斷操作bool IsPassengerExist(SinglePassenger* head, const int passenger_id);// 打印操作void PrintCurrentAirlineInfo(SingleFlight flight_info_list[]);void PrintPassengerList(SinglePassenger* head, SingleFlight* flight_info_list,            int airline_id);int main(void) { int order, exit_loop = 1; // 初始化航班信息 SingleFlight* flight_info_list; flight_info_list =   (SingleFlight*)malloc(TOTAL_AIRLINE * sizeof(SingleFlight)); for (int i = 0; i < TOTAL_AIRLINE; ++i) {  flight_info_list[i].flight_id = i + 1;  flight_info_list[i].remain_tickets = MAX_CAPACITY;  flight_info_list[i].passenger_info_list = NULL; } /* 登錄界面 */ printf("您好,歡迎使用此系統(tǒng)!\n\n"); printf("使用說明:\n"); printf("1. 本程序所有輸入均為整數(shù)\n"); printf("2. 可供選擇的航次編號為1-%d, 每架次最大載客量為%d\n", TOTAL_AIRLINE,     MAX_CAPACITY); printf(   "3. 若訂票,請輸入1;若退票,請輸入-1;若退出系統(tǒng),請輸入0; "   "若要以root用戶登錄,請輸入root密碼\n"); printf("使用說明到此結(jié)束,祝您使用愉快!\n"); // 判斷是否以root登錄 int log_in_as_root, root_key; bool is_root = false; printf("-------------------------------------------------------------\n\n"); printf("是否以root用戶登錄?若是,請輸入1,否則請輸入0:"); scanf("%d", &log_in_as_root); if (log_in_as_root) printf("請輸入root密碼(按0退出root登錄程序):"); while (log_in_as_root) {  scanf("%d", &root_key);  if (!root_key) {   break;  } else if (root_key != ROOT) {   printf("輸入密碼錯誤!請重新輸入或按0退出root登錄程序:");  } else {   is_root = true;   break;  } } // 歡迎界面 if (is_root)  printf("歡迎,root用戶!輸入11可查看當前航次表\n"); else  printf("歡迎,普通用戶!\n"); printf("-------------------------------------------------------------\n"); // 主循環(huán) while (true) {  if (is_root)   printf("請輸入1, 0, -1或11中的一個數(shù)字: ");  else   printf("請輸入1, 0, -1中的一個數(shù)字: ");  scanf("%d", &order);  switch (order) {   case BOOK_TICKET:    flight_info_list = BookTicket(flight_info_list);    break;   case REFUND:    flight_info_list = Refund(flight_info_list);    break;   case EXIT_SYSTEM:    exit_loop = 0;    break;   case PRINT_INFO:    printf(      "-------------------------------------------------------------\n");    PrintCurrentAirlineInfo(flight_info_list);    break;   default:    printf("非法輸入!\n");    break;  }  if (!exit_loop) break; } return 0;}/** * @description: 一次訂票操作的模擬 * @param {type} * flight_info_list {SingleFlight *}: 航班信息表(航次表) * @return: */SingleFlight* BookTicket(SingleFlight flight_info_list[]) { /* 獲取乘客預(yù)定航次 */ int target_airline; printf("可供選擇的航次對應(yīng)的編號為: 1 - %d\n", TOTAL_AIRLINE); printf("請輸入您想預(yù)定的航次(輸入0時退出訂票程序): "); // 判斷輸入合法性 while (true) {  scanf("%d", &target_airline);  if (target_airline < 0 || target_airline > TOTAL_AIRLINE) {   printf("您要預(yù)定的航次不存在!\n");   printf("請重新輸入一個正確的航次,或按0退出訂票程序:");  } else if (target_airline == 0) {   printf("-------------------------------------------------------------\n");   return flight_info_list;  } else   break; } /* 獲取乘客id */ int passenger_id; int modify_tickets; printf("若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: "); // 判斷輸入合法性 while (true) {  scanf("%d", &modify_tickets);  if (modify_tickets != 1 && modify_tickets != 0) {   printf("您輸入的是非法命令,請重新輸入0(原先未訂票)或1(原先已經(jīng)訂票):");  } else   break; } printf("請輸入您的ID: "); // 若原先未訂票 while (!modify_tickets) {  scanf("%d", &passenger_id);  if (IsPassengerExist(      flight_info_list[target_airline - 1].passenger_info_list,      passenger_id)) {   printf("該ID已存在,請輸入一個新的ID: ");  } else   break; } // 若原先已經(jīng)訂票 if (modify_tickets) {  scanf("%d", &passenger_id);  if (!IsPassengerExist(      flight_info_list[target_airline - 1].passenger_info_list,      passenger_id)) {   printf("您原先并未預(yù)訂該航次的票!\n");   printf("-------------------------------------------------------------\n");   return flight_info_list;  } } /* 獲取乘客預(yù)定票數(shù) */ // 獲取當前航次余票數(shù) int remain_tickets; remain_tickets = flight_info_list[target_airline - 1].remain_tickets; printf("當前航次余票數(shù)為: %d\n", remain_tickets); // 若該乘客想修改票數(shù),顯示此乘客此前預(yù)訂的票數(shù) if (modify_tickets) {  SinglePassenger* head =    flight_info_list[target_airline - 1].passenger_info_list;  while (head->passenger_info.passenger_id != passenger_id) {   head = head->next_passenger;  }  printf("您此前預(yù)訂的票數(shù)為%d張\n", head->passenger_info.ticket_number); } // 獲取乘客想預(yù)定的票數(shù) int target_ticket_num; printf("請輸入您想預(yù)定(或增訂)的票數(shù): "); // 判斷輸入合法性 while (true) {  scanf("%d", &target_ticket_num);  if (target_ticket_num > remain_tickets) {   printf("您想預(yù)定的票數(shù)為%d, 但當前航次余票數(shù)僅為%d, 余票不足!\n",       target_ticket_num, remain_tickets);   printf("請輸入您想預(yù)定的票數(shù),或按0退出訂票程序: ");  } else if (target_ticket_num == 0) {   printf("-------------------------------------------------------------\n");   return flight_info_list;  } else {   break;  } } /* 修改航次余票數(shù) */ flight_info_list[target_airline - 1].remain_tickets -= target_ticket_num; /* 修改乘客表中對應(yīng)的項 */ // 判斷該乘客原先是否存在 if (modify_tickets) {  // 若存在,找到該乘客并修改他的訂票項  SinglePassenger* tmp =    flight_info_list[target_airline - 1].passenger_info_list;  while (tmp->passenger_info.passenger_id != passenger_id) {   tmp = tmp->next_passenger;  }  tmp->passenger_info.ticket_number += target_ticket_num;  printf("增訂成功!您現(xiàn)在共預(yù)訂%d張航次%d的票\n",      tmp->passenger_info.ticket_number, target_airline); } else {  // 若不存在,則在該航次的乘客列表中增加該乘客及其對應(yīng)信息  flight_info_list[target_airline - 1].passenger_info_list = AddNewPassenger(    flight_info_list[target_airline - 1].passenger_info_list, passenger_id,    target_ticket_num);  printf("預(yù)訂成功!您現(xiàn)在共預(yù)訂%d張航次%d的票\n", target_ticket_num,      target_airline); } printf("-------------------------------------------------------------\n"); return flight_info_list;}/** * @description: 查找乘客表(雙向鏈表)中某乘客是否存在 * @param {type} * head {SinglePassenger*}: 雙向鏈表頭結(jié)點 * passenger_id {const int}: 待查找的鍵值 * @return: 若存在,返回true;否則返回false */bool IsPassengerExist(SinglePassenger* head, const int passenger_id) { SinglePassenger* tmp = head; bool exist = false; if (!head) {  return false; } while (tmp) {  if (tmp->passenger_info.passenger_id == passenger_id) {   exist = true;   break;  }  tmp = tmp->next_passenger; } return exist;}/** * @description: 初始化一個新結(jié)點 * @param {type} * new_passenger_id {const int}: 新增加的乘客的id * book_ticket_number {const int}: 新增加乘客的訂票數(shù) * @return: 初始化后的結(jié)點(前驅(qū),后繼均為空指針) */SinglePassenger* GetNewPassenger(const int new_passenger_id,                 const int book_ticket_number) { SinglePassenger* new_passenger =   (SinglePassenger*)malloc(sizeof(SinglePassenger)); new_passenger->passenger_info.passenger_id = new_passenger_id; new_passenger->passenger_info.ticket_number = book_ticket_number; new_passenger->next_passenger = NULL; new_passenger->prev_passenger = NULL; return new_passenger;}SinglePassenger* AddNewPassenger(SinglePassenger* head,                 const int new_passenger_id,                 const int book_ticket_number) { SinglePassenger* new_passenger =   GetNewPassenger(new_passenger_id, book_ticket_number); if (!head) {  head = new_passenger; } else {  // 直接從頭部插入  new_passenger->next_passenger = head->next_passenger;  if (head->next_passenger) {   head->next_passenger->prev_passenger = new_passenger;  }  new_passenger->prev_passenger = head;  head->next_passenger = new_passenger; } return head;}/** * @description: 一次退票操作的模擬 * @param {type} * flight_info_list {SingleFlight *}: 航次表 * @return: 修改后的航次表 */SingleFlight* Refund(SingleFlight flight_info_list[]) { /* 獲取乘客預(yù)定航次 */ int target_airline; printf("可供選擇的航次對應(yīng)的編號為: 1 - %d\n", TOTAL_AIRLINE); printf("請輸入您想退訂的航次(輸入0時退出訂票程序): "); // 判斷輸入合法性 while (true) {  scanf("%d", &target_airline);  if (target_airline < 0 || target_airline > TOTAL_AIRLINE) {   printf("您要退訂的航次不存在!\n");   printf("請重新輸入一個正確的航次,或按0退出退票程序:");  } else if (target_airline == 0) {   printf("-------------------------------------------------------------\n");   return flight_info_list;  } else   break; } /* 獲取乘客ID并判斷其合法性 */ int passenger_id; printf("請輸入您的ID: "); scanf("%d", &passenger_id); SinglePassenger* head =   flight_info_list[target_airline - 1].passenger_info_list; if (!IsPassengerExist(head, passenger_id)) {  printf("您并未預(yù)訂此次航班!\n");  printf("-------------------------------------------------------------\n");  return flight_info_list; } /* 獲取乘客退票數(shù) */ // 打印此乘客的預(yù)訂票數(shù) SinglePassenger* tmp = head; while (tmp->passenger_info.passenger_id != passenger_id) {  tmp = tmp->next_passenger; } printf("您當前預(yù)訂的票數(shù)為: %d張\n", tmp->passenger_info.ticket_number); // 讀入退票數(shù) int refund_ticket_num; printf("請輸入您的退票數(shù)(輸入0退出退票程序): "); scanf("%d", &refund_ticket_num); // 輸入合法性檢查 int cur_ticket = tmp->passenger_info.ticket_number; // 當前該乘客預(yù)訂的票數(shù) while (cur_ticket < refund_ticket_num) {  if (!refund_ticket_num) {   printf("-------------------------------------------------------------\n");   return flight_info_list;  }  printf("您輸入的退票數(shù)大于您當前預(yù)訂的票數(shù)!");  printf("請重新輸入退票數(shù)(輸入0退出退票程序): ");  scanf("%d", &refund_ticket_num); } /* 退票 */ // 更新航次表 flight_info_list[target_airline - 1].remain_tickets += refund_ticket_num; // 更新乘客表 if (cur_ticket > refund_ticket_num) {  tmp->passenger_info.ticket_number -= refund_ticket_num;  printf("您已成功退票,現(xiàn)在您%d航次的余票為%d張\n", target_airline,      tmp->passenger_info.ticket_number); } else {  flight_info_list[target_airline - 1].passenger_info_list =    RemovePassenger(head, passenger_id);  printf("您已成功退票,現(xiàn)在您%d航次的余票為%d張\n", target_airline, 0); } printf("-------------------------------------------------------------\n"); return flight_info_list;}/** * @description: 從乘客表中刪除某個結(jié)點 * @param {type} * head {SinglePassenger *}: 乘客表 * passenger_id {const int}: 待刪除乘客的id * @return: 修改后的航次表 */SinglePassenger* RemovePassenger(SinglePassenger* head,                 const int passenger_id) { SinglePassenger* tmp = head; while (tmp->passenger_info.passenger_id != passenger_id) {  tmp = tmp->next_passenger; } // 若為頭結(jié)點 if (!tmp->prev_passenger) {  head = head->next_passenger; } // 若為尾結(jié)點 else if (!tmp->next_passenger) {  tmp->prev_passenger->next_passenger = NULL; } // 若為中間某個結(jié)點 else {  tmp->prev_passenger->next_passenger = tmp->next_passenger;  tmp->next_passenger->prev_passenger = tmp->prev_passenger; } return head;}/** * @description: 輸出當前航次表 * @param {type} * flight_info_list {SingleFlight *}: 航班信息表(航次表) * @return: void */void PrintCurrentAirlineInfo(SingleFlight flight_info_list[]) { for (int current_airline_index = 1; current_airline_index <= TOTAL_AIRLINE;    ++current_airline_index) {  int remain_ticket_num =    flight_info_list[current_airline_index - 1].remain_tickets;  SinglePassenger* head =    flight_info_list[current_airline_index - 1].passenger_info_list;  // 輸出  PrintPassengerList(head, flight_info_list, current_airline_index);  printf("-------------------------------------------------------------\n"); }}/** * @description: 打印某航次的乘客表 * @param {type} * head {SinglePassenger*}: 乘客表的頭結(jié)點 * flight_info_list {SingleFlight *}: 航次表 * @return: */void PrintPassengerList(SinglePassenger* head, SingleFlight* flight_info_list,            int airline_id) { if (!head) {  printf("%d航次無乘客訂票!\n", airline_id); } else {  printf("%d航次余票數(shù)為: %d, 其中:\n", airline_id,      flight_info_list[airline_id - 1].remain_tickets); } while (head) {  printf("ID為%d的乘客訂票數(shù)為%d張\n", head->passenger_info.passenger_id,      head->passenger_info.ticket_number);  head = head->next_passenger; } printf("\n");}

實現(xiàn)亮點

1.每一步操作均有對非法輸入的處理,最大限度上確保了程序運行的穩(wěn)定性2.區(qū)分root用戶和普通用戶,且只有root用戶能夠查看所有人的訂票情況,從而保護了客戶的隱私3.使用雙向鏈表存儲乘客信息,一方面便于存取乘客的信息(定長數(shù)組分配的是棧內(nèi)存,而棧內(nèi)存小于堆內(nèi)存,所以用鏈表進行存儲更不容易造成內(nèi)存溢出),另一方面降低了編程難度(既不需要實現(xiàn)對數(shù)組進行動態(tài)內(nèi)存分配的一系列操作,又最大限度地降低了刪除結(jié)點操作的復(fù)雜度)

實現(xiàn)缺點

1.只考慮了數(shù)字輸入的情況,沒有考慮字符及其他數(shù)據(jù)類型的輸入2.用鏈表存儲導(dǎo)致不能隨機訪問,使查找操作復(fù)雜度始終為O(n) O(n)O(n)

運行結(jié)果

您好,歡迎使用此系統(tǒng)!使用說明:1. 本程序所有輸入均為整數(shù)2. 可供選擇的航次編號為1-10, 每架次最大載客量為3003. 若訂票,請輸入1;若退票,請輸入-1;若退出系統(tǒng),請輸入0; 若要以root用戶登錄,請輸入root密碼使用說明到此結(jié)束,祝您使用愉快!-------------------------------------------------------------是否以root用戶登錄?若是,請輸入1,否則請輸入0:1請輸入root密碼(按0退出root登錄程序):123456歡迎,root用戶!輸入11可查看當前航次表-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 1若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0 請輸入您的ID: 1當前航次余票數(shù)為: 300請輸入您想預(yù)定(或增訂)的票數(shù): 12預(yù)訂成功!您現(xiàn)在共預(yù)訂12張航次1的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 1若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0請輸入您的ID: 2當前航次余票數(shù)為: 288請輸入您想預(yù)定(或增訂)的票數(shù): 21預(yù)訂成功!您現(xiàn)在共預(yù)訂21張航次1的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 1若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0請輸入您的ID: 3當前航次余票數(shù)為: 267請輸入您想預(yù)定(或增訂)的票數(shù): 32預(yù)訂成功!您現(xiàn)在共預(yù)訂32張航次1的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 2若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0請輸入您的ID: 32當前航次余票數(shù)為: 300請輸入您想預(yù)定(或增訂)的票數(shù): 2預(yù)訂成功!您現(xiàn)在共預(yù)訂2張航次2的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 10若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0請輸入您的ID: 212當前航次余票數(shù)為: 300請輸入您想預(yù)定(或增訂)的票數(shù): 123預(yù)訂成功!您現(xiàn)在共預(yù)訂123張航次10的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 1若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 1請輸入您的ID: 1當前航次余票數(shù)為: 235您此前預(yù)訂的票數(shù)為12張請輸入您想預(yù)定(或增訂)的票數(shù): -1增訂成功!您現(xiàn)在共預(yù)訂11張航次1的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: -1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想退訂的航次(輸入0時退出訂票程序): 1請輸入您的ID: 2您當前預(yù)訂的票數(shù)為: 21張請輸入您的退票數(shù)(輸入0退出退票程序): 222您輸入的退票數(shù)大于您當前預(yù)訂的票數(shù)!請重新輸入退票數(shù)(輸入0退出退票程序): 2您已成功退票,現(xiàn)在您1航次的余票為19張-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想預(yù)定的航次(輸入0時退出訂票程序): 10若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 32您輸入的是非法命令,請重新輸入0(原先未訂票)或1(原先已經(jīng)訂票):0請輸入您的ID: 322當前航次余票數(shù)為: 177請輸入您想預(yù)定(或增訂)的票數(shù): 12預(yù)訂成功!您現(xiàn)在共預(yù)訂12張航次10的票-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: -1可供選擇的航次對應(yīng)的編號為: 1 - 10請輸入您想退訂的航次(輸入0時退出訂票程序): 10請輸入您的ID: 212您當前預(yù)訂的票數(shù)為: 123張請輸入您的退票數(shù)(輸入0退出退票程序): 123您已成功退票,現(xiàn)在您10航次的余票為0張-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 11-------------------------------------------------------------1航次余票數(shù)為: 238, 其中:ID為1的乘客訂票數(shù)為11張ID為3的乘客訂票數(shù)為32張ID為2的乘客訂票數(shù)為19張-------------------------------------------------------------2航次余票數(shù)為: 298, 其中:ID為32的乘客訂票數(shù)為2張-------------------------------------------------------------3航次無乘客訂票!-------------------------------------------------------------4航次無乘客訂票!-------------------------------------------------------------5航次無乘客訂票!-------------------------------------------------------------6航次無乘客訂票!-------------------------------------------------------------7航次無乘客訂票!-------------------------------------------------------------8航次無乘客訂票!-------------------------------------------------------------9航次無乘客訂票!-------------------------------------------------------------10航次余票數(shù)為: 288, 其中:ID為322的乘客訂票數(shù)為12張-------------------------------------------------------------請輸入1, 0, -1或11中的一個數(shù)字: 0

注:普通用戶不能執(zhí)行查看所有乘客信息的操作,只能查看自己的購票信息

感謝各位的閱讀,以上就是“C語言怎么實現(xiàn)飛機訂票系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C語言怎么實現(xiàn)飛機訂票系統(tǒng)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI