版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目 航空客運(yùn)訂票系統(tǒng) 專業(yè)班級(jí) 學(xué)號(hào) 姓名 指導(dǎo)教師 成績 一、設(shè)計(jì)任務(wù)航空客運(yùn)訂票的業(yè)務(wù)包括查詢(航線和客票預(yù)訂的)信息、客票預(yù)訂和辦理退票等?;疽笥校海?) 系統(tǒng)必須存儲(chǔ)的數(shù)據(jù)信息i. 航班信息:飛機(jī)抵達(dá)城市、航班號(hào)、飛機(jī)號(hào)、起降時(shí)間、航班票價(jià)、票價(jià)折扣、總位置和剩余位置、已訂票的客戶名單。ii. 客戶信息:客戶姓名、證件號(hào)、座位號(hào)。(2) 系統(tǒng)能實(shí)現(xiàn)的功能i. 承辦訂票業(yè)務(wù):根據(jù)客戶提出的要求(飛機(jī)低達(dá)城市、起降時(shí)間、訂票數(shù)量)查詢該航班信息(包括票價(jià)、折扣和剩余位置),若滿足要求,則為客戶辦理訂票手續(xù),輸出座位號(hào)。ii. 承辦退票業(yè)務(wù):根據(jù)客戶提供的情況(航
2、班號(hào)、訂票數(shù)量),為客戶辦理退票手續(xù)。(3) 查詢功能i. 查詢航線信息:根據(jù)飛機(jī)降落地點(diǎn),輸出下列信息:航班號(hào)、飛機(jī)號(hào)、起降時(shí)間、航班票價(jià)、票價(jià)折扣和剩余位置。ii. 查詢客戶預(yù)訂信息:根據(jù)客戶證件號(hào),輸出下列信息:航班號(hào)、飛機(jī)號(hào)和座位號(hào)。提供的參考程序已經(jīng)基本實(shí)現(xiàn)以上功能,但有很多不足之處,要求進(jìn)行程序改進(jìn)和完善。具體任務(wù)有:(1) 分析參考程序?qū)崿F(xiàn)了哪些功能?指出存在的缺陷。(2) 從以下幾方面完善程序:i. 功能上的完善ii. 程序結(jié)構(gòu)上的完善iii. 程序控制上的完善二、設(shè)計(jì)要點(diǎn)1、改變了訂票系統(tǒng)主界面格式及背景顏色;2、增加了清屏功能,避免語句過多的結(jié)果;3、實(shí)現(xiàn)了訂票與否;4、實(shí)
3、現(xiàn)了只能輸入正確航班;5、實(shí)現(xiàn)了選擇性別只能選擇男女;6、訂票成功余票減少三、算法實(shí)現(xiàn)#include<stdio.h>#include <stdlib.h>#include<malloc.h>#include<string.h>#define OK 1#define ERROR 0typedef struct airline /* 飛機(jī)航班的結(jié)構(gòu)定義 */char air_num8; /航班號(hào) char plane_num8;/飛機(jī)號(hào) char end_place20;/抵達(dá)城市 int total; /總位置 int left; /剩余位置s
4、truct airline *next;airline;/*顧客信息的結(jié)構(gòu)定義 */typedef struct customer char name8; /姓名 char sex8; /性別 char id20; /身份證 char air_num8; /航班號(hào) int seat_num; /座位號(hào) struct customer *next; /指向下一個(gè)旅客customer; /*創(chuàng)建航班鏈表 */airline *start_air() airline *a; a=(airline*) malloc(sizeof(airline); if(a=NULL) printf("空間
5、不足"); return a;/*創(chuàng)建顧客鏈表 */customer *start_cus() customer *c; c=(customer*)malloc(sizeof(customer); if(c=NULL) printf("空間不足"); return c;/* 修改航班的空余座位信息 */airline *modefy_airline(airline *l,char *air_num) airline *p; p=l->next; for(;p!=NULL;p=p->next) if(strcmp(air_num,p->air_nu
6、m)=0) p->left+; return l; printf("NO the airline!"); return 0; /* 增加航班信息*/int insert_air(airline *p,char *air_num,char *plane_num,char *end_place,int total,int left) airline *q; q=(airline*)malloc(sizeof(airline); strcpy(q->air_num,air_num); strcpy(q->plane_num,plane_num); strcpy(
7、q->end_place,end_place); q->total=total; q->left=left; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; return OK; /*增加某航班的顧客信息*/int insert_cus(customer *p,char *name,char *sex,char *id,char *air_num,int seat_num) customer *q; q=(customer*)malloc(sizeof(customer); strcpy(q->name,nam
8、e);strcpy(q->sex,sex);strcpy(q->id,id); strcpy(q->air_num,air_num); q->seat_num=seat_num; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; return OK;/*訂票操作*/int book(airline *a,char *air_num,customer *c,char *name,char *sex,char *id) airline *p=a; customer *q=c->next; p=a->nex
9、t; for(;p->next!=NULL;p=p->next)if(strcmp(p->air_num,air_num)=0)break;while(q->next!=NULL)q=q->next; if(p->left>0) printf("您的座位號(hào)是 %d",(p->total-p->left+1);printf("n"); insert_cus(&q,name,sex,id,air_num,p->total-p->left+1); -p->left;p=p->
10、next; return OK; else printf("沒您的座啦!"); return 0; /*取消訂票信息操作*/int del_cus(customer *c,airline *l,char *name) customer *p,*pr; char air_num8; pr=c; p=pr->next; while(p!=NULL) if(strcmp(p->name,name)=0|strcmp(p->air_num,air_num)=0) strcpy(air_num,p->air_num); l=modefy_airline(l,a
11、ir_num); pr->next=p->next; p=pr->next; printf("取消訂票成功!n"); return OK; pr=pr->next; p=pr->next; printf("沒有這個(gè)人兒啊n"); return ERROR;/*查找航班信息操作*/int search_air(airline *head) airline *p=head->next; printf("air_num plane_num end_place total leftn"); for(;p!=
12、NULL;p=p->next) printf("%s %-10s %-8s %-8d%-8dn", p->air_num, p->plane_num,p->end_place,p->total,p->left); return OK; /*查找顧客信息操作*/int search_cus(customer *head) struct customer *q=head->next; printf(" name sex id air_num seat_numn"); for(;q!=NULL;q=q->next
13、) printf("%-8s%-8s%-8s%-12s%-dn",q->name,q->sex,q->id,q->air_num,q->seat_num); return OK;/*預(yù)先設(shè)置航班信息*/int creat_air(airline *l) airline *p=*l; int i=0; char *air_num3="007af","008af","009af" char *plane_num3="航班1","航班2","
14、航班3" char *end_place3="美國","德國","法國" int total3=100,100,100; int left3=52,54,76; for(i=0;i<3;i+) insert_air(&p,air_numi, plane_numi, end_placei,totali, lefti); return OK;/*預(yù)先設(shè)置已訂票的顧客信息 */int creat_cus(customer *l) customer *p=*l; int i=0; char *name3="張
15、三","李四","王五"char *sex8="nan","nan","nan"char *id20="123456","654321","741852" char *air_num3="007af","008af","009af" int seat_num3=2,5,7; for(i=0;i<3;i+) insert_cus(&p,namei,sexi
16、,idi,air_numi,seat_numi); return OK;void main() system("color 8E"); int t=1; customer *cus=start_cus(); airline *air=start_air(); char name8,air_num8,ch,m;char sex8,id20; creat_air(&air); creat_cus(&cus);search_air(air); while(t=1) printf("nnn"); printf(" *n");
17、printf(" * 歡迎來訂票哦,親! *n"); printf(" * 訂票-1 *n"); printf(" * 退票-2 *n"); printf(" * 查詢-3 *n"); printf(" * 退出-4 *n"); printf(" *n"); scanf("%s",&ch); if(ch='1') system("cls");search_air(air); printf("親,想乘坐哪
18、輛航班嘞:"); scanf("%s",air_num); if(strcmp(air_num,"007af")=0|strcmp(air_num,"008af")=0|strcmp(air_num,"009af")=0) printf("親叫啥嘞:"); scanf("%s",name);y1: printf("您的性別(nan or nv):");scanf("%s",sex); if(strcmp(sex,"n
19、an")=0|strcmp(sex,"nv")=0) printf("您的id:"); scanf("%s",id); else goto y1; printf("*確認(rèn)請輸入Y否則輸入N:");scanf("%s",&m); if(m='Y'|m='y') printf("訂票成功!");book(air,air_num,cus,name,sex,id); else if(m='n'|m='N') printf("取消航班成功!n"); elseprintf("您的輸入有誤n"); else printf("對(duì)不起,沒有你要找的航班:nn");system("pause"); else if(ch='2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生態(tài)環(huán)境治理保護(hù)合同
- 2024年版項(xiàng)目監(jiān)工聘用合同
- 特崗英語課程設(shè)計(jì)
- 現(xiàn)代詩課程設(shè)計(jì)分享
- 電子表課程設(shè)計(jì)c語言
- 測繪工程課程設(shè)計(jì)選題
- 社交軟件銷售工作總結(jié)
- 航空航天顧問工作總結(jié)
- 保健品行業(yè)營銷策略總結(jié)
- 餐飲團(tuán)購前臺(tái)工作總結(jié)
- 水泥行業(yè)數(shù)字化轉(zhuǎn)型服務(wù)方案
- 深圳市南山區(qū)2024-2025學(xué)年第一學(xué)期期末教學(xué)質(zhì)量檢測九年級(jí)物理 24-25上九年級(jí)物理
- 應(yīng)急設(shè)施設(shè)備和物資儲(chǔ)備管理制度(4篇)
- 團(tuán)委書記個(gè)人工作總結(jié)
- 高危多發(fā)性骨髓瘤診斷與治療中國專家共識(shí)(2024年版)解讀
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 江蘇省鎮(zhèn)江市實(shí)驗(yàn)學(xué)校2023-2024學(xué)年九年級(jí)上學(xué)期期末考試化學(xué)試卷
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊
- GB/T 32066-2024煤基費(fèi)托合成液體石蠟
- 安慶市農(nóng)業(yè)雪災(zāi)恢復(fù)重建和救災(zāi)資金使用情況總結(jié)
- 食品工程原理課程設(shè)計(jì)攪拌器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論