數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)飛機(jī)訂票系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、河南城建學(xué)院 數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì) 軟件工程目錄一. 設(shè)計(jì)目的3二. 設(shè)計(jì)內(nèi)容3三概要設(shè)計(jì)31功能模塊圖32各個(gè)模塊詳細(xì)的功能描述4四詳細(xì)設(shè)計(jì)51各功能函數(shù)的數(shù)據(jù)流程圖52重點(diǎn)設(shè)計(jì)及編碼8五使用說明101主界面102機(jī)票信息管理(保存)103訂票系統(tǒng)使用124退票系統(tǒng)13六調(diào)試情況,設(shè)計(jì)技巧及體會(huì)131、調(diào)試情況132.對(duì)設(shè)計(jì)及調(diào)試過程的心得體會(huì):14七參考文獻(xiàn)14八附錄:源代碼15一. 設(shè)計(jì)目的課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是專為學(xué)習(xí)了第一門計(jì)算機(jī)高

2、級(jí)語言的學(xué)生設(shè)立的,安排該課程設(shè)計(jì)的目的,就是要通過一次集中的強(qiáng)化訓(xùn)練,使學(xué)生能及時(shí)地鞏固已學(xué)的知識(shí),補(bǔ)充未學(xué)的但又是必需的內(nèi)容,進(jìn)一步提高程序設(shè)計(jì)的能力。進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程數(shù)據(jù)結(jié)構(gòu)的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。本課程設(shè)計(jì)將以學(xué)生上機(jī)進(jìn)行程序設(shè)計(jì)為主,教師的適當(dāng)講授為輔。利用學(xué)到的編程知識(shí)和編程技巧,通過布置具有一定難度的程序設(shè)計(jì)題目,幫助學(xué)生熟悉程序編寫,及時(shí)查究錯(cuò)誤,獨(dú)立完成。二. 設(shè)計(jì)內(nèi)容飛機(jī)訂票系統(tǒng)通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:(1)錄入:可以錄入航

3、班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)(2)查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng));可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;(3)訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;(4)退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;根據(jù)以上功能說明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能。三概要設(shè)計(jì)1功能模塊圖 訂票輸入航班號(hào)查詢所有航班輸入旅客信息 全部顯示 航班號(hào) 出發(fā)地飛機(jī)訂票系統(tǒng) 目的地姓名 退票查詢所有航班退證件號(hào)航班信息和

4、旅客信息輸入航班號(hào)密碼查詢 機(jī)票信息錄入 查詢所有機(jī)票錄票 修改機(jī)票刪除機(jī)票信息圖1系統(tǒng)總體結(jié)構(gòu)圖2各個(gè)模塊詳細(xì)的功能描述本程序能輸入最多1000個(gè)機(jī)票信息,管理員在保存功能中通過密碼驗(yàn)證輸入機(jī)票信息,可以對(duì)機(jī)票信息進(jìn)行查詢;修改;刪除等功能。一般用戶可以使用訂票;顯示;退票等功能,在訂票時(shí)用戶輸入密碼在退票時(shí)通過驗(yàn)證后成功退票。具體功能如下:第一部分:保存模塊 1機(jī)票信息錄入;2查詢所有機(jī)票;3修改機(jī)票信息;4刪除機(jī)票信息有機(jī)票信息的管理,對(duì)機(jī)票信息輸入,查詢,修改,刪除。第二部分:訂票模塊:當(dāng)有機(jī)票信息后可以訂票,訂票時(shí)輸入航班號(hào)(進(jìn)入時(shí)有可以查詢所有機(jī)票信息)出現(xiàn)航班信息,確定訂票后輸入

5、個(gè)人信息:姓名,性別,證件號(hào),聯(lián)系電話,密碼(退票時(shí)用)。出現(xiàn)您的個(gè)人信息,確定后回車訂票結(jié)束。第三部分:顯示模塊:1全部;2航班號(hào);3出發(fā)地;4目的地按上述方式查看機(jī)票信息第四部分:退票模塊:(可以選擇查看航班信息)證件號(hào)(或姓名)當(dāng)輸入姓名或證件號(hào)后會(huì)顯示您定的航班信息,再要求輸入密碼,當(dāng)密碼正確時(shí)會(huì)顯示您的個(gè)人信息,回車再是否確定退票。第五部分: 查詢模塊:(輸入管理密碼)輸入航班號(hào),顯示航班信息 和所有乘客個(gè)人信息四 詳細(xì)設(shè)計(jì)1各功能函數(shù)的數(shù)據(jù)流程圖(1)該模塊包括密碼的輸入并驗(yàn)證,修改密碼。算法如下:密碼模塊函數(shù) void checkcode()流程圖(2)機(jī)票信息錄入void in

6、putinfo()流程圖(3)訂票系統(tǒng)void bookticket()流程圖在有航班信息的情況下可以進(jìn)行訂票操作(4)顯示模塊void display()流程圖(5)退票系統(tǒng)void returnticket()流程圖2重點(diǎn)設(shè)計(jì)及編碼3.1程序的模塊(1) 保存模塊:含有機(jī)票信息的管理,對(duì)機(jī)票信息輸入,查詢,修改,刪除。(2)訂票模塊:當(dāng)有機(jī)票信息后可以訂票,訂票時(shí)輸入航班號(hào)(進(jìn)入時(shí)有可以查詢所有機(jī)票信息)出現(xiàn)航班信息,確定訂票后輸入個(gè)人信息:姓名,性別,證件號(hào),聯(lián)系電話,密碼(退票時(shí)用)。出現(xiàn)您的個(gè)人信息,確定后回車訂票結(jié)束。(3)顯示模塊:含全部;航班號(hào);出發(fā)地;目的地等方式查詢所有機(jī)票

7、信息。(4)退票模塊:當(dāng)輸入姓名或證件號(hào)后會(huì)顯示您定的航班信息,再要求輸入密碼,當(dāng)密碼正確時(shí)會(huì)顯示您的個(gè)人信息,回車再是否確定退票。(5) 查詢模塊:(輸入管理密碼)輸入航班號(hào),顯示航班信息 和所有乘客個(gè)人信息3.2結(jié)構(gòu)體struct travellerinfo/旅客信息結(jié)構(gòu)char fightnum 10;/航班號(hào)char name 10; /姓名char sex 5; /性別char idnum 20;/證件號(hào)碼char password 10;/密碼char poto 12; /聯(lián)系電話;struct fightinfo/機(jī)票信息結(jié)構(gòu)體char fightnum 10;/航班號(hào)char

8、start 8;/出發(fā)地char destination 8;/目的地unsigned int price;/價(jià)格unsigned int goyear;/出發(fā)時(shí)間 年unsigned int gomoth;/月unsigned int goday;/日unsigned int gohour;/時(shí)unsigned int gominute;/分unsigned int arryear;/到達(dá)時(shí)間 年unsigned int arrmoth;/月unsigned int arrday;/日unsigned int arrhour;/時(shí)unsigned int arrminute;/分unsign

9、ed int rebate;/折扣unsigned int allsticket;/總票數(shù)unsigned int surplusticket;/剩余票數(shù);struct allfightinfo /機(jī)票全部結(jié)構(gòu)struct travellerinfo fight;/旅客信息結(jié)構(gòu)struct fightinfo fight1;/機(jī)票信息結(jié)構(gòu)體;3.3文件的定義FILE *travellerfile=NULL; /存旅客信息數(shù)據(jù)文件FILE *fightfile=NULL; /存機(jī)票信息數(shù)據(jù)文件char filename="旅客信息信息登記.dat" /記錄旅客信息登記char

10、 filename1="機(jī)票信息.dat" /記錄機(jī)票信息五使用說明1主界面1、程序歡迎界面(對(duì)系統(tǒng)的說明,及程序分組名單)停留3s5-12、程序主界面(按數(shù)字1-5 再回車)進(jìn)入其他功能5-22機(jī)票信息管理(保存)1、輸入密碼(第一次設(shè)置密碼1234)機(jī)票信息管理5-32、選1進(jìn)入機(jī)票信息錄入5-43、選2查詢所有航班信息5-54、選3修改航班信息,確定后進(jìn)入查詢所有航班5-65、輸入航班號(hào) 顯示航班信息 要求輸入修改信息5-7 6、刪除請(qǐng)謹(jǐn)慎,全部刪除會(huì)刪除所有文件5-83訂票系統(tǒng)使用1、定票時(shí)查詢所有的航班信息5-82、輸入正確的航班號(hào)5-93、訂票時(shí)輸入個(gè)人信息5-

11、104退票系統(tǒng)1、進(jìn)入退票系統(tǒng)是否查詢所有機(jī)票信息5-112、選擇輸入信息輸入的方式并輸入5-123、退票時(shí)的信息顯示然后確定5-13六調(diào)試情況,設(shè)計(jì)技巧及體會(huì)1、調(diào)試情況在訂票系統(tǒng)中我們發(fā)現(xiàn),在訂票時(shí)我們的把機(jī)票信息中的剩余票數(shù)要減少一個(gè),而在退票時(shí)我們的把剩余票數(shù)加以個(gè),由于在文件的定義時(shí)不好把機(jī)票信息文件和旅客信息文件放一起,所以在修改機(jī)票剩余票數(shù)的是侯的打開兩個(gè)文件然后得對(duì)兩個(gè)文件進(jìn)行修改。在保存模塊需要把機(jī)票的信息錄入進(jìn)去,所以有很多部分都得寫,像機(jī)票信息的錄入,修改,刪除,這樣一來就像是寫一個(gè)機(jī)票信息管理系統(tǒng)一樣,這樣一來導(dǎo)致這個(gè)文件會(huì)很大,很繁瑣。但是還好c語言是面向過程的導(dǎo)致很

12、多的程序代碼重復(fù),這樣就在寫好一部分代碼以后就可以進(jìn)行復(fù)制,然后進(jìn)行修改就行,總體來說工作量還不是很大。2.對(duì)設(shè)計(jì)及調(diào)試過程的心得體會(huì):通過本次課程設(shè)計(jì),發(fā)現(xiàn)平時(shí)在數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)中的不足:基礎(chǔ)知識(shí)不夠扎實(shí);對(duì)某些函數(shù)的作用了解的不清,導(dǎo)致在做設(shè)計(jì)時(shí),不知該怎么運(yùn)用;做題時(shí)思路不清晰,那道題總是想著怎么寫代碼,沒有真正從宏觀的角度分析問題,不能把握大局,好好的去設(shè)計(jì)程序。說句實(shí)話,我覺得本次課程設(shè)計(jì)的題目對(duì)我來說有些勉強(qiáng),剛開始可以說是毫無頭緒,查了很多資料,采取的一些小的進(jìn)展,幸幸苦苦把程序分析出來,還沒來得及高興,又遇上了作程序框圖,然后在網(wǎng)上找了很久的作圖軟件,摸索著做出了幾張圖,感覺還是不

13、滿意,以后在學(xué)習(xí)中多多練習(xí),多實(shí)踐。從這次課程設(shè)計(jì)真的學(xué)到了很多,不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,這畢竟獨(dú)立做的,難免會(huì)遇到過各種各樣的問題,同時(shí)也感覺到自己專業(yè)知識(shí)掌握的不夠,在設(shè)計(jì)中走了很多彎路,剛開始是根本無從下手,不知道要干嘛,如果平時(shí)課余時(shí)間多加強(qiáng)對(duì)這些專業(yè)知識(shí)的學(xué)習(xí),那么在這次課程設(shè)計(jì)中將會(huì)少走很多的彎路。雖然我的設(shè)計(jì)報(bào)

14、告并不是很完美,但是是我努力的結(jié)果,還是很欣慰的。七參考文獻(xiàn)1 楊文君,楊柳.C語言程序設(shè)計(jì)教程M.清華大學(xué)出版社. 2010.032 譚浩強(qiáng). C語言程序設(shè)計(jì)教程M. 清華大學(xué)出版社. 2005.073 譚浩強(qiáng).C程序設(shè)計(jì)教程.北京:清華大學(xué)出版社.2007.074 王岳斌等編著.C程序設(shè)計(jì)案例教程.北京:清華大學(xué)出版社.2006.10八附錄:源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<windows.h>#inc

15、lude<time.h>#define flightMAX 1000void inputinfo(struct allflightinfo *);/機(jī)票信息錄入void filename1read (struct allflightinfo *);/旅客信息信息讀取void allabout(struct allflightinfo *); /查詢所有信息void mofinfo(struct allflightinfo *);/修改機(jī)票信息void password();/密碼驗(yàn)證int checkcode();/身份驗(yàn)證void modifycode();/修改登陸密碼void

16、 delinfo(struct allflightinfo *);/刪除void flightcontrol(struct allflightinfo *);/機(jī)票管理模塊void bookticket(struct allflightinfo *p_flight);/訂票系統(tǒng)void display(struct allflightinfo *p_flight);/顯示模塊void returnticket(struct allflightinfo *p_flight);/退票void enquiry(struct allflightinfo *p_flight);/查詢模塊void wel

17、come();/歡迎int submeun();struct travellerinfo/旅客信息結(jié)構(gòu)char flightnum 10;/航班號(hào)char name 10; /姓名char sex 5; /性別char idnum 20;/證件號(hào)碼char password 10;/密碼char poto 12; /聯(lián)系電話;struct flightinfo/機(jī)票信息結(jié)構(gòu)體char flightnum 10;/航班號(hào)char start 8;/出發(fā)地char destination 8;/目的地unsigned int price;/價(jià)格unsigned int goyear;/出發(fā)時(shí)間 年

18、unsigned int gomoth;/月unsigned int goday;/日unsigned int gohour;/時(shí)unsigned int gominute;/分unsigned int arryear;/到達(dá)時(shí)間 年unsigned int arrmoth;/月unsigned int arrday;/日unsigned int arrhour;/時(shí)unsigned int arrminute;/分unsigned int rebate;/折扣unsigned int allsticket;/總票數(shù)unsigned int surplusticket;/剩余票數(shù);struct

19、 allflightinfo /機(jī)票全部結(jié)構(gòu)struct travellerinfo flight;/旅客信息結(jié)構(gòu)struct flightinfo flight1;/機(jī)票信息結(jié)構(gòu)體;typedef struct orderInfo char flightnum10; int id;FILE *travellerfile=NULL; /存旅客信息數(shù)據(jù)文件FILE *flightfile=NULL; /存機(jī)票信息數(shù)據(jù)文件char filename="旅客信息信息登記.dat" /記錄旅客信息登記char filename1="機(jī)票信息.dat" /記錄機(jī)票

20、信息int main()SetConsoleTitle("飛機(jī)訂票系統(tǒng)");int in;time_t start,end;struct allflightinfo flightmaxflightMAX; /最大機(jī)票數(shù)struct allflightinfo *p_flight; /指向結(jié)構(gòu)指針p_flight=flightmax;welcome();system("cls");dosystem("cls");in=submeun();switch(in)case 1:bookticket(p_flight);/訂票break;cas

21、e 2:display(p_flight);/顯示break;case 3:returnticket(p_flight);/退票break;case 4:enquiry(p_flight);/查詢break;case 5:flightcontrol(p_flight);/修改break;case 6:system("cls");printf("nnnnnntttt暫時(shí)沒有此模塊!");/systemhelp();/幫助getch(); break;case 7:break;while(in!=7);printf("nnnttt感 謝 使 用 本

22、 系 統(tǒng) ! ! ");start=time(NULL);end=time(NULL);while(end-start<1.5)end=time(NULL);return 0;/*顯示子菜單*/int submeun()int in;char ch;system("cls");system("color 07");printf("antt-您好,歡迎進(jìn)入中國(guó)民航飛機(jī)訂票系統(tǒng)!-n");printf("nnn");printf("tt-n");printf("tt 飛 機(jī)

23、 訂 票 系 統(tǒng) n");printf("tt-n");printf("tt1. 訂 票 n");printf("ttn");printf("tt2. 顯 示 n");printf("ttn");printf("tt3. 退 票 n");printf("ttn");printf("tt4. 查 詢 n");printf("ttn");printf("tt5. 錄 票 n");printf

24、("ttn");printf("tt6. 幫 助 n");printf("ttn");printf("tt7. 退出系統(tǒng) n");printf("tt-n");printf("tt 請(qǐng)您正確選擇:");while(scanf("%d",&in)!=1|(!(0<in&&in<8)while(ch=getchar()!='n')putchar(ch);fflush(stdin);return in;void

25、 welcome()time_t start,end;system("color 06");printf("nnn");printf("ttt歡 迎 使 用 飛 機(jī) 訂 票 系 統(tǒng)!");start=time(NULL);end=time(NULL);while(end-start<1)end=time(NULL);/*查詢模塊*/void enquiry(struct allflightinfo *p_flight)int count,count1,i,in,j;char ch,ch1;char *temp=NULL;pass

26、word();system("cls"); if(travellerfile=fopen(filename,"r")=NULL) printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或 旅客信息.dat文件沒有損壞"); getch(); exit(1); rewind(travellerfile); /定位文件頭開始讀取for(count1=0;fread(&p_flightcount1.flight,sizeof(struct travellerinfo),1,travellerfile)=1;count1+)continue;f

27、close(travellerfile);if(!count1)printf("不能讀取數(shù)據(jù),請(qǐng)確定文件是否存在或已經(jīng)成功錄入數(shù)據(jù)!");getch();system("cls");return ; /返回重新操作if(flightfile=fopen(filename1,"r")=NULL)printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或機(jī)票信息.dat文件沒有損壞");getch();exit(1);rewind(flightfile); /定位文件頭開始讀取for(count=0;fread(&p_fl

28、ightcount.flight1,sizeof(struct flightinfo),1,flightfile)=1;count+)continue;fclose(flightfile); /讀完后關(guān)閉文件if(!count)printf("不能讀取數(shù)據(jù),請(qǐng)確定文件是否存在或已經(jīng)成功錄入數(shù)據(jù)!");getch();system("cls");return ; /返回重新操作temp=(char*)malloc(20*sizeof(char); /分配內(nèi)存system("cls");fflush(stdin);printf("

29、;nnt請(qǐng)輸入你查詢的航班號(hào):");while(gets(temp)!=NULL&&temp0!='0')system("cls");for(i=0;i<count;i+)if(!strcmp(temp,p_flighti.flight1.flightnum)printf("nttt*您要找的航班信息*n"); printf(" 航班號(hào)|出發(fā)地|目的地| 價(jià)格|發(fā)月-日| 時(shí)-分|到月-日| 時(shí)-分|折扣| 總票|余票n"); printf(" *n"); print

30、f("%10s|%6s|%6s| %4d| %2d-%2d| %2d:%2d|",p_flighti.flight1.flightnum,p_flighti.flight1.start,p_flighti.flight1.destination,p_flighti.flight1.price,p_flighti.flight1.gomoth,p_flighti.flight1.goday,p_flighti.flight1.gohour,p_flighti.flight1.gominute); printf(" %2d-%2d| %2d:%2d| %2d| %2d

31、| %2d|",p_flighti.flight1.arrmoth,p_flighti.flight1.arrday,p_flighti.flight1.arrhour,p_flighti.flight1.arrminute,p_flighti.flight1.rebate,p_flighti.flight1.allsticket,p_flighti.flight1.surplusticket); printf("nnttt*您找的該航班旅客信息*"); printf("n 航班號(hào) | 姓名 | 性別| 證件號(hào) | 聯(lián)系電話 "); print

32、f("n *");for(j=0;j<count1;j+)if(!strcmp(p_flighti.flight1.flightnum,p_flightj.flight.flightnum)printf("n%10s |%10s |%4s |%20s |%12s |",p_flightj.flight.flightnum,p_,p_flightj.flight.sex,p_flightj.flight.idnum,p_flightj.flight.poto);if(i>count) printf(&quo

33、t;你要找的航班信息不存在!");free(temp);printf("繼續(xù)請(qǐng)按任意鍵!");getch();system("cls");return ;/*退票系統(tǒng)*/void returnticket(struct allflightinfo *p_flight)int count,count1,i,j,tmp,in;char ch,ch1;orderInfo ord10=0;staticchar *temp=NULL;char *newtemp=NULL;time_t start,end;system("cls");i

34、f(flightfile=fopen(filename1,"rb")=NULL)printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或 機(jī)票信息.dat文件沒有損壞");getch();exit(1);rewind(flightfile); /定位文件頭開始讀取for(count=0;fread(&p_flightcount.flight1,sizeof(struct flightinfo),1,flightfile)=1;count+)continue;fclose(flightfile);if(!count)printf("找不到個(gè)人數(shù)據(jù),

35、請(qǐng)確定文件存在和已經(jīng)成功錄入!");getch();system("cls");return;if(travellerfile=fopen(filename,"a+b")=NULL)printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或 旅客信息.dat文件沒有損壞");getch();exit(1);rewind(travellerfile); /定位文件頭開始讀取for(count1=0;fread(&p_flightcount1.flight,sizeof(struct travellerinfo),1,travell

36、erfile)=1;count1+)continue;fclose(travellerfile);printf("ntt-您好,歡迎進(jìn)入中國(guó)民航飛機(jī)退票系統(tǒng)!-n");printf("-nn");printf("是否要查詢所有飛機(jī)票信息(y/n)");/ch=getch();if(ch='y'|ch='Y')allabout(p_flight);system("cls");fflush(stdin);printf("nnnn");printf("tn&q

37、uot;);printf("t 退 票 選 擇 n");printf("t-n");printf("tt 1. 證 件 號(hào) n");printf("tn");printf("tt 2. 返 回 n");printf("tn");printf("t n");printf("t 請(qǐng)您正確選擇:");while(scanf("%d",&in)!=1|(!(0<in&&in<=2)whil

38、e(ch=getchar()!='n')putchar(ch);fflush(stdin);if(in=2)return;temp=(char*)malloc(20*sizeof(char); /分配內(nèi)存newtemp=(char *)malloc(10*sizeof(char);printf("n請(qǐng)輸入你的姓名或證件號(hào):");while(gets(temp)!=NULL&&temp0!='0') int countx=0;system("cls");printf("nttt*您訂的航班信息*n&

39、quot;); printf(" 航班號(hào) |出發(fā)地|目的地| 價(jià)格|發(fā)月-日| 時(shí)-分|到月-日| 時(shí)-分|折扣| 總票|余票n");for(i=0;i<count1;i+)if(in=1&&!strcmp(temp,p_flighti.flight.idnum)for(j=0;j<count;j+)if(!strcmp(p_flighti.flight.flightnum,p_flightj.flight1.flightnum)printf(" *n");printf("%10s|%6s|%6s| %4d| %2d

40、-%2d| %2d:%2d|",p_flightj.flight1.flightnum,p_flightj.flight1.start,p_flightj.flight1.destination,p_flightj.flight1.price,p_flightj.flight1.gomoth,p_flightj.flight1.goday,p_flightj.flight1.gohour,p_flightj.flight1.gominute);printf(" %2d-%2d| %2d:%2d| %2d| %2d| %2d|",p_flightj.flight1.

41、arrmoth,p_flightj.flight1.arrday,p_flightj.flight1.arrhour,p_flightj.flight1.arrminute,p_flightj.flight1.rebate,p_flightj.flight1.allsticket,p_flightj.flight1.surplusticket);p_flightj.flight1.surplusticket+;strcpy(ordcountx.flightnum,p_flighti.flight.flightnum);ordcountx.id=i;countx+;printf("請(qǐng)輸

42、入您的密碼!");gets(newtemp);if(!strcmp(newtemp,p_flighti.flight.password)printf("n 航班號(hào) | 姓名 | 性別| 證件號(hào) | 聯(lián)系電話 ");printf("n *");printf("n%10s |%10s |%4s |%20s |%12s |n",p_flighti.flight.flightnum,p_,p_flighti.flight.sex,p_flighti.flight.idnum,p_flighti.

43、flight.poto);elseprintf("nnttt您的密碼錯(cuò)誤!");start=time(NULL);end=time(NULL);while(end-start<1.5)end=time(NULL);return;printf("請(qǐng)輸入你要退的航班號(hào):");char flightid10;fflush(stdin);scanf("%s",flightid);/fflush(stdin);for(int k=0; k<countx; k+) if(!strcmp(ordk.flightnum,flightid)

44、 i=ordk.id; break; p_flighti.flight1.surplusticket+;for(;i<count1;i+)p_flighti.flight=p_flighti+1.flight;count1-; /刪除一個(gè)信息printf("按任意鍵繼續(xù)!");if(countx=0) printf("nn沒有您的訂票信息!"); return; printf("annnnnntt 確定要退票嗎?(y/n)");ch=getch();if(ch='n'|ch='N')system(

45、"cls");printf("nnnnnntt 該操作已取消.請(qǐng)按任意鍵返回!");getch();system("cls");return ;if(travellerfile=fopen(filename,"w+b")=NULL) /重新打開文件更新free(temp);printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或文件是否存在");getch();exit(1);for(i=0;i<count1;i+)/更新文件if(fwrite(&p_flightcount1.flight,

46、sizeof(struct travellerinfo),1,travellerfile)!=1)break;free(temp); /釋放內(nèi)存fclose(travellerfile);system("cls");printf("nnnnnntt 已成功刪除該項(xiàng)目信息.n");printf("ntt要?jiǎng)h除下一個(gè)項(xiàng)目信息請(qǐng)重新選擇!");start=time(NULL);end=time(NULL);flightfile=fopen(filename1,"w+b"); /重新寫入文件for(i=0;i<cou

47、nt;i+)if(fwrite(&p_flighti.flight1,sizeof(struct flightinfo),1,flightfile)=1)continue;elsefclose(flightfile);printf("修改失敗,返回重新操作.");getch();free(temp);system("cls");return ;fclose(flightfile);system("cls"); /清屏printf("nnnnttta恭喜!您已經(jīng)退票票成功!");start=time(NULL

48、);end=time(NULL);while(end-start<1.5)end=time(NULL);return;/*顯示模塊*/void display(struct allflightinfo *p_flight)int count,i,in,t=0;char ch,ch1;char *temp=NULL;system("cls");if(flightfile=fopen(filename1,"r")=NULL)printf("不能打開文件,請(qǐng)確認(rèn)磁盤已滿或 機(jī)票信息.dat文件沒有損壞");getch();exit(1);rewind(flightfile); /定位文件頭開始讀取for(count

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論