資源簡介
問題描述:航空客運訂票的業務活動包括:查詢航線、客票預訂和辦理退票等。試設計一個航空客運訂票系統,以使上述業務可以借助計算機來完成。
(1) 每條航線所設計的信息有:終點站名、航班、航班號、飛機號、飛行周日(星期幾)、成員定額、余票量。已訂票的客戶名單(包括姓名、訂票量、艙位等級1.2.3)以及等候替補的客戶名單(包括姓名,所需票量);
(2) 作為示意系統,全部數據可以只放在內存中;
(3) 系統能實現的操作和功能如下:
① 查詢航線:根據旅客提出的終點站名輸出下列信息:航班號、飛機號、星期幾飛行,最近一天航班的日期和余票額。
② 承辦訂票業務:根據客戶提出的要求(航班號、訂票數額)查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續,輸出座位號;若已滿員或余票額少于訂票額,則需要重新詢問客戶要求,若需要,可登記排隊候補
③ 承辦退票業務:根據客戶提供的情況(日期。航班)為客戶辦理退票手續,然后查詢該航班是否有人排隊候補,首先詢問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續,否則,依次詢問其他排隊候補的客戶。
(4) 測試數據
(5) 選做內容,當客戶所要訂的航班票額不足的時候,系統會根據目的地,輸出目的地相同的航線,詢問客戶是否要訂票。
完美代碼+完美課設報告+可執行文件(編譯軟件wintc)

代碼片段和文件信息
#include?
#include?
#include?
#include?
#define?MAXSIZE?4?//定義航線量的最大值
typedef?struct?wat_ros
{??char?name[10];//姓名
???int?req_amt;//訂票量
???struct?wat_ros?*next;
}qnode*qptr;
typedef?struct?pqueue
{??qptr?front;//等候替補客戶名單域的頭指針
???qptr?rear;//等候替補客戶名單域的屬指針
}linkqueue;
typedef?struct?ord_ros
{??char?name[10];//客戶姓名
???int?ord_amt;//訂票量
???int?grade;//艙位等級
???struct?ord_ros?*next;
}linklist;
struct?airline
{???char?end_place[10];//終點站名
????char?line_num[10];//航班號
????char?plane_num[10];//飛機號/
????char?date[7];//飛行日期(星期幾)
????int?total;//乘員定額
????int?left;//余票量
????linklist?*order;//乘員名單域,指向乘員名單鏈表的頭指針
????linkqueue?wait;//等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針
}lineinfo;
struct?airline?*start;
struct?airline?air[MAXSIZE]={{“beijing““1““B8571““SUN“31}
????{“shanghai““2““S1991““TUE“55}
????{“guangzhou““3““L7447““FRI“33}{“beijing““4““K8761““MON“52}};;
void?display(struct?airline?*info);
void?search();
void?prtlink();
void?order();
void?return_tkt();
void?Search();
void?Bookticket();
void?Refund();
void?goodbye();
void?list();
int?menu_select();
void?search();
void?Suggest();
void?line_info();
int?main()
{
??menu_select();
}
int?menu_select()//菜單界面
{??int?n;
???start=air;
???flag:
????{
????system(“cls“);
?? printf(“\n“);
?? printf(“\n“);
?? printf(“??????????????????????09計算機科學與技術\n“);
?? printf(“????????????????????????????????指導老師:李楊????????????“);
????printf(“\n“);
????printf(“\n“);
?? printf(“??????????????????????????????歡迎來到航空訂票系統\n“);
?? printf(“??????????????????????************************************\n“);
?? printf(“??????????????????????*??????????1.??航班信息????????????*\n“);
?? printf(“??????????????????????*??????????2.??查詢功能????????????*\n“);
?? printf(“??????????????????????*??????????3.??航班訂票????????????*\n“);
?? printf(“??????????????????????*??????????4.??退票功能????????????*\n“);
?? printf(“??????????????????????*??????????5.??離開系統????????????*\n“);
?? printf(“??????????????????????************************************\n“);
?? printf(“????????????????????請輸入(1-5)否則無效!?請輸入您的選擇:“);
?? scanf(“%d“&n);
????}
?????switch(n)
????{
??????case?1:?list();system(“PAUSE“);menu_select();break;
??????case?2:?Search();system(“PAUSE“);menu_select();break;
??????case?3:?Bookticket();system(“PAUSE“);menu_select();break;
??????case?4:?Refund();system(“PAUSE“);menu_select();break;
??????case?5:?goodbye();break;
??????default:goto?flag;
????}
}
void?display(struct?airline?*info)//打印每條航線的基本信息
{printf(“%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n“info->end_placeinfo->line_numinfo->plane_numinfo->dateinfo->totalinfo->left);
}
void?list()//打印全部航線信息
{??struct?airline?*info;
???int?i=0;
???info=start;
???system(“cls“);
???printf(“終點站名\t航班號\t飛機號\t飛行日期\t乘員定額\t余票量\n“);
???while(i ???{
?????display(info);
?????info++;
?????i++;
???}
???printf(“\n\n“);
}
void?search()//根據客
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12635??2012-01-06?13:36??航空航班訂票系統\航空航班訂票系統.c
?????文件?????184370??2012-01-06?13:36??航空航班訂票系統\航空航班訂票系統.exe
?????文件??????34182??2012-01-06?13:36??航空航班訂票系統\航空航班訂票系統.obj
?????文件?????682496??2012-01-06?13:24??航空航班訂票系統\課程設計報告(最終版).doc
?????目錄??????????0??2012-01-06?13:38??航空航班訂票系統
-----------?---------??----------?-----??----
???????????????913683????????????????????5
- 上一篇:人人都是產品經理視頻教程 百度云
- 下一篇:基于UDP協議網上聊天程序
評論
共有 條評論