資源簡介
通過此系統可以實現如下功能:
錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)
查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);
可以輸入起飛抵達城市,查詢飛機航班情況;
訂票:(訂票情況可以存在一個數據文件中,結構自己設定)
可以訂票,如果該航班已經無票,可以提供相關可選擇航班;
退票: 可退票,退票后修改相關數據文件;
客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。
修改航班信息:當航班信息改變可以修改航班數據文件
根據以上功能要求,設計航班信息,訂票信息的存儲結構,設計程序完成功能。
代碼片段和文件信息
#include?
#include?
#include?
#include?
using?namespace?std;
struct?flight_information?/*航班信息結構體*/?
{
char?number[10];???????????????//航班號?
char?time_go[7];?????????????//起飛時間?
char?time_to[7];????????????//降落時間??
char?starting[10];??????????//始發站?
char?terminus[10];?????????//終到站?
int?price;????????????????//票價?
float?discount;??????????//折扣?
int?total;??????????????//總票數?
int?odd;???????????????//余票數?
struct?flight_information?*?next;?
};/*航班信息*/?
struct?customer_information?/*乘客信息結構體*/?
{
char?name[10];????????????????//客戶姓名?
char?numb_id[10];????????????//證件號?
int?amount;?????????????????//購票數??
char?number[10];???????????//訂票航班號
char?date[12];????????????//出發日期?
char?numb_ord[6];?????????????//訂單號?
struct?customer_information?*?next;?
};/*顧客信息*/?
typedef?struct?flight_information?f_info;?//結構體起別名名?
typedef?struct?customer_information?c_info;?//同上?
void?insert();?//添加航班函數聲明?
void?update();?//更新航班函數聲明?
void?query();?//查詢航班聲明?
void?query_num();//按航班號查詢聲明?
void?query_start();?//按始發地查詢的函數聲名?
void?cus_query();//顧客訂單查詢?
void?disinfo(f_info?*);//顯示航班信息?
void?book();???//訂票?
void?refund();?//退票?
f_info?*?read_p();?//從文件讀取航班信息鏈表?
c_info?*?read_c();?//從文件讀取顧客信息鏈表?
void?write_p(f_info?*);?//將航班信息鏈表寫入文件?
void?write_c(c_info?*);//將顧客信息鏈表寫入文件?
void?free_p(f_info?*);?//釋放航班信息鏈表?
void?free_c(c_info?*);//釋放顧客信息鏈表?
char*?getodd(char[]);//獲得訂單號?
void?disinfo(c_info?*c);//打印訂單?
int?main()??//主函數,程序入口?
?{
?
? int?choice;?
do?
{???
????system(“cls“);
cout<<“歡迎來到訂票系統“< cout<<“[1]?錄入航班信息“< cout<<“[2]?修改航班信息“< cout<<“[3]?查詢航班信息“< cout<<“[4]?顧客訂票“< cout<<“[5]?顧客退票“< cout<<“[6]?顧客訂單查詢“< cout<<“[0]?退出訂票系統“< cout<<“****************************************\n“;?
cout<<“請選擇:“;?
cin>>choice;?
system(“cls“);?
switch(choice)?
{
case?0:?exit(0);?
case?1:?insert();?break;?
case?2:?update();?break;?
case?3:?query();?break;?
case?4:?book();?break;?
case?5:?refund();?break;
case?6:?cus_query();break;
default:?cout<<“您的輸入有誤,請重新選擇:“< }?
}while(1);
?}
void?insert()?//插入航班信息?
{?
char?choice;?
FILE?*?fp;??
if((fp=fopen(“d:\\plane.txt““ab“))==NULL)?//打卡文件?
{?
fp=fopen(“d:\\plane.txt““wb“);?
}
f_info?*p=read_p()*f;//航班信息結構體指針
do?
{?
f=(f_info?*)malloc(sizeof(f_info));?//申請一個結構體大小的空間??
f->next=NULL;
fflush(stdin);
cout<<“航班號(char):“;?//輸入一個航班號,以備查詢?
cin>>f->number;
while(p!=NULL)//從頭指針開始,往下遍歷查找?
{
while(strcmp(f->numberp->number)==0)?//如果,當前航班號已存在,則不能添加?
{
cout<<“該航班已存在,請重新輸入!“< cin>>f->number;
}
p=p->next;
}
/*輸入添加航班的信息*/?
cout<<“起飛時間(hh:mm):“;
cin>>f->time_go;????
cout<<“抵達時間(hh:mm):“;
cin>>f->time_to;
cout<<“始發地(char):“;
cin>>f->starting;
cout<<“目的地(char):“;
cin>>f->terminus;
評論
共有 條評論