真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

這篇文章將為大家詳細講解有關(guān)C語言如何實現(xiàn)飛機訂票系統(tǒng),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司長期為上1000+客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為大安企業(yè)提供專業(yè)的成都網(wǎng)站建設、做網(wǎng)站,大安網(wǎng)站改版等技術(shù)服務。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

問題描述與題目要求

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

要求:

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

模型假設

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

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

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

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

/*
 * @Description: 模擬航班的訂票系統(tǒng)
 * 模型假設:
 *   1. 飛機最大載客量為300人
 *   2. 共10個航次
 * 用雙向鏈表存儲乘客信息
 * 用array存儲航班信息
 * @Author: Fishermanykx
 * @Date: 2019-09-29 10:32:56
 * @LastEditors: Fishermanykx
 * @LastEditTime: 2019-09-30 12:29:16
 */

#include 
#include 
#include 
#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[]) {
 /* 獲取乘客預定航次 */
 int target_airline;
 printf("可供選擇的航次對應的編號為: 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;
 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("您原先并未預訂該航次的票!\n");
   printf("-------------------------------------------------------------\n");
   return flight_info_list;
  }
 }

 /* 獲取乘客預定票數(shù) */
 // 獲取當前航次余票數(shù)
 int remain_tickets;

 remain_tickets = flight_info_list[target_airline - 1].remain_tickets;
 printf("當前航次余票數(shù)為: %d\n", remain_tickets);
 // 若該乘客想修改票數(shù),顯示此乘客此前預訂的票數(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("您此前預訂的票數(shù)為%d張\n", head->passenger_info.ticket_number);
 }
 // 獲取乘客想預定的票數(shù)
 int target_ticket_num;

 printf("請輸入您想預定(或增訂)的票數(shù): ");
 // 判斷輸入合法性
 while (true) {
  scanf("%d", &target_ticket_num);
  if (target_ticket_num > remain_tickets) {
   printf("您想預定的票數(shù)為%d, 但當前航次余票數(shù)僅為%d, 余票不足!\n",
       target_ticket_num, remain_tickets);
   printf("請輸入您想預定的票數(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;

 /* 修改乘客表中對應的項 */
 // 判斷該乘客原先是否存在
 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)在共預訂%d張航次%d的票\n",
      tmp->passenger_info.ticket_number, target_airline);

 } else {
  // 若不存在,則在該航次的乘客列表中增加該乘客及其對應信息
  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("預訂成功!您現(xiàn)在共預訂%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[]) {
 /* 獲取乘客預定航次 */
 int target_airline;

 printf("可供選擇的航次對應的編號為: 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("您并未預訂此次航班!\n");
  printf("-------------------------------------------------------------\n");
  return flight_info_list;
 }

 /* 獲取乘客退票數(shù) */
 // 打印此乘客的預訂票數(shù)
 SinglePassenger* tmp = head;

 while (tmp->passenger_info.passenger_id != passenger_id) {
  tmp = tmp->next_passenger;
 }
 printf("您當前預訂的票數(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; // 當前該乘客預訂的票數(shù)
 while (cur_ticket < refund_ticket_num) {
  if (!refund_ticket_num) {
   printf("-------------------------------------------------------------\n");
   return flight_info_list;
  }
  printf("您輸入的退票數(shù)大于您當前預訂的票數(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é)點操作的復雜度)

實現(xiàn)缺點

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

運行結(jié)果

您好,歡迎使用此系統(tǒng)!

使用說明:
1. 本程序所有輸入均為整數(shù)
2. 可供選擇的航次編號為1-10, 每架次最大載客量為300
3. 若訂票,請輸入1;若退票,請輸入-1;若退出系統(tǒng),請輸入0; 若要以root用戶登錄,請輸入root密碼
使用說明到此結(jié)束,祝您使用愉快!
-------------------------------------------------------------

是否以root用戶登錄?若是,請輸入1,否則請輸入0:1
請輸入root密碼(按0退出root登錄程序):123456
歡迎,root用戶!輸入11可查看當前航次表
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 1
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0 
請輸入您的ID: 1
當前航次余票數(shù)為: 300
請輸入您想預定(或增訂)的票數(shù): 12
預訂成功!您現(xiàn)在共預訂12張航次1的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 1
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0
請輸入您的ID: 2
當前航次余票數(shù)為: 288
請輸入您想預定(或增訂)的票數(shù): 21
預訂成功!您現(xiàn)在共預訂21張航次1的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 1
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0
請輸入您的ID: 3
當前航次余票數(shù)為: 267
請輸入您想預定(或增訂)的票數(shù): 32
預訂成功!您現(xiàn)在共預訂32張航次1的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 2
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0
請輸入您的ID: 32
當前航次余票數(shù)為: 300
請輸入您想預定(或增訂)的票數(shù): 2
預訂成功!您現(xiàn)在共預訂2張航次2的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 10
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 0
請輸入您的ID: 212
當前航次余票數(shù)為: 300
請輸入您想預定(或增訂)的票數(shù): 123
預訂成功!您現(xiàn)在共預訂123張航次10的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 1
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 1
請輸入您的ID: 1
當前航次余票數(shù)為: 235
您此前預訂的票數(shù)為12張
請輸入您想預定(或增訂)的票數(shù): -1
增訂成功!您現(xiàn)在共預訂11張航次1的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: -1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想退訂的航次(輸入0時退出訂票程序): 1
請輸入您的ID: 2
您當前預訂的票數(shù)為: 21張
請輸入您的退票數(shù)(輸入0退出退票程序): 222
您輸入的退票數(shù)大于您當前預訂的票數(shù)!請重新輸入退票數(shù)(輸入0退出退票程序): 2
您已成功退票,現(xiàn)在您1航次的余票為19張
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: 1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想預定的航次(輸入0時退出訂票程序): 10
若您原先已經(jīng)訂票,且想增加您的訂票數(shù),請輸入1,否則請輸入0: 32
您輸入的是非法命令,請重新輸入0(原先未訂票)或1(原先已經(jīng)訂票):0
請輸入您的ID: 322
當前航次余票數(shù)為: 177
請輸入您想預定(或增訂)的票數(shù): 12
預訂成功!您現(xiàn)在共預訂12張航次10的票
-------------------------------------------------------------
請輸入1, 0, -1或11中的一個數(shù)字: -1
可供選擇的航次對應的編號為: 1 - 10
請輸入您想退訂的航次(輸入0時退出訂票程序): 10
請輸入您的ID: 212
您當前預訂的票數(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í)行查看所有乘客信息的操作,只能查看自己的購票信息

關(guān)于“C語言如何實現(xiàn)飛機訂票系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


網(wǎng)頁標題:C語言如何實現(xiàn)飛機訂票系統(tǒng)
文章鏈接:http://weahome.cn/article/jsejhc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部