版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 軟件課程設(shè)計報告</b></p><p><b> 目錄</b></p><p> 1、軟件設(shè)計………………………………………………………………1</p><p> 1.1、軟件的概要設(shè)計……………………………………………………1</p><p> 1.1.1、
2、總體………………………………………………………………1</p><p> 1.1.2、子函數(shù)……………………………………………………………2</p><p> 1.1.3、各子函數(shù)功能……………………………………………………3</p><p> 1.2、軟件的設(shè)計思想…………………………………………………6</p><p> 1.2.
3、1、航班信息的數(shù)組…………………………………………………6</p><p> 1.2.2、顧客飛機(jī)票信息的數(shù)組…………………………………………7</p><p> 1.3、主函數(shù)及各子函數(shù)流程圖………………………………………8</p><p> 2、軟件測試……………………………………………………………14</p><p> 2.1、
4、主菜單……………………………………………………………14</p><p> 2.2、初始化航班………………………………………………………14</p><p> 2.3、航班訂票…………………………………………………………17</p><p> 2.4、航班退票…………………………………………………………19</p><p> 2.5、
5、航班查詢…………………………………………………………20</p><p> 2.6、查詢余票…………………………………………………………22</p><p> 2.7、結(jié)束………………………………………………………………23</p><p> 3、算法改進(jìn)……………………………………………………………24</p><p> 4、開發(fā)體
6、會……………………………………………………………26</p><p> 附:源代碼清單…………………………………………………………28</p><p> 參考文獻(xiàn) ………………………………………………………………56</p><p><b> 軟件設(shè)計</b></p><p> 1.1、軟件的概要設(shè)計</p
7、><p><b> 1.1.1、總體</b></p><p> 這個軟件總體上分為六個部分,即:初始化航班、查詢航班信息、航班訂票、航班退票、查詢機(jī)票、查詢余票六個部分。其總體的結(jié)構(gòu)圖如下:</p><p><b> 1.1.2、子函數(shù)</b></p><p> 為清楚地完成這樣一個飛機(jī)票銷
8、售系統(tǒng),采用了以下12個子函數(shù):</p><p> void menu(); </p><p> void add(); </p><p> void output(); </p><p> void output1(); </p><p> int savef();<
9、;/p><p> int savef1(); </p><p> int readf(); </p><p> void inquire(); </p><p> void inquire1(); </p><p> void book(); </p><p
10、> void refund(); </p><p> void searchnum(); </p><p> 1.1.3、各子函數(shù)功能</p><p> 下面將分別地來介紹12個子函數(shù)的功能。</p><p> void menu(),顯示主菜單的函數(shù)</p><p> 這個函數(shù)的主要功能是顯
11、示一個歡迎字幕,并為顧客提供這個飛機(jī)票銷售系統(tǒng)的所有功能和任務(wù)。即初始化航班、查詢航班信息、航班訂票、航班退票、查詢機(jī)票、查詢余票等服務(wù),顧客在輸入相應(yīng)的數(shù)字之后按確認(rèn)鍵即可進(jìn)行相應(yīng)的操作.</p><p> 2、void add(),航班初始化函數(shù)</p><p> 這個函數(shù)的主要功能是初始化航班信息(即添加航班信息),添加的信息包括航班號、起始站、終點站、起飛時間、航班容載
12、量、機(jī)票折扣以及機(jī)票價格等。這樣可以在缺少某項航班信息的情況下及時添加。初始化后文件以air.txt形式格式保存下來,以方便后續(xù)的試用。因此在第一次試用的時候要初始化,否則系統(tǒng)將沒有任何的機(jī)票信息。</p><p> 3、void output(),航班輸出函數(shù)</p><p> 本函數(shù)的作用是輸出航班信息。在輸入了初始化航班信息之后,此函數(shù)可以在文件中找到air.txt,并輸出
13、來。</p><p> 4、void output1(),機(jī)票信息輸出函數(shù)</p><p> 本函數(shù)的作用是輸出顧客機(jī)票信息。作用與上述類似,在成功訂票之后,此函數(shù)可以在文件中找到people.txt,并輸出來。</p><p> 5、int savef(),航班信息保存函數(shù)</p><p> 本函數(shù)的作用是保存輸入的航班信息,以a
14、ir.txt形式格式保存,可以在文件中查找到,并在后面要調(diào)用的時候及時調(diào)出來進(jìn)行查詢。</p><p> 6、int savef1(),機(jī)票信息保存函數(shù)</p><p> 本函數(shù)的作用是保存輸入的顧客機(jī)票信息,以people.txt形式格式保存,可以在文件中查找到,并在后面要調(diào)用的時候及時調(diào)出來進(jìn)行查詢。</p><p> 7、int readf(),
15、航班信息讀取函數(shù)</p><p> 本函數(shù)的作用是讀取航班信息,在后續(xù)訂票操作中,需要用到初始化的航班信息,因此需要一個從內(nèi)部文件中讀取航班信息的操作。</p><p> 8、void inquire(),航班信息查詢函數(shù)</p><p> 本函數(shù)的作用是查詢航班信息,為了方便銷售員或者顧客的查詢,因此需要將內(nèi)部文件中的航班信息表達(dá)出來,因此這個函數(shù)的作用是表
16、達(dá)出航班信息。</p><p> 9、void inquire1(),機(jī)票信息查詢函數(shù)</p><p> 本函數(shù)的作用是查詢顧客機(jī)票信息。在顧客定好票之后,需要驗證自己的票是否是正確的,或者查詢一下飛機(jī)票的信息,此時需要一個飛機(jī)票的查詢操作,此函數(shù)的作用即在此。</p><p> 10、void book(),機(jī)票預(yù)定函數(shù)</p><p
17、> 本函數(shù)的作用是執(zhí)行訂票操作,訂票操作中需要顧客將自己的信息完整地寫入到系統(tǒng)中,考慮到只要身份證號碼正確就可以顯示顧客的大部分信息,因此沒有將更多繁瑣的信息要求加上去了。</p><p> 11、void refund(),退票函數(shù)</p><p> 本函數(shù)的作用是執(zhí)行退票操作,由于是退票,考慮到實際情況,因此需要輸入多個信息以確認(rèn)機(jī)票與主人是對應(yīng)的。</p>
18、<p> 12、void searchnum(),查詢余票函數(shù)</p><p> 本函數(shù)的作用是查詢剩余票數(shù),在設(shè)計中使用了僅輸入航班號即可查詢航班信息的做法,方便操作。</p><p> 1.2軟件的設(shè)計思想</p><p> 這次的飛機(jī)票銷售系統(tǒng)由于數(shù)據(jù)量較大,且需要以不同的數(shù)據(jù)類型來分類,因此采用了兩個類似的結(jié)構(gòu)變量來實現(xiàn)上述的設(shè)計。詳細(xì)如下
19、:</p><p> 1.2.1、航班信息的數(shù)組</p><p><b> struct </b></p><p><b> {</b></p><p> int air_num; //航班號</p><p> char Start[15]; //出發(fā)地&
20、lt;/p><p> char End[15]; //終點站</p><p> char Time[25]; //起飛時間</p><p> int total ; //總票數(shù)</p><p> float H; //折扣</p><p> int left ; /
21、/剩余票數(shù)</p><p> int Price; //票價</p><p> }air; </p><p> 1.2.2、顧客飛機(jī)票信息的數(shù)組</p><p><b> struct </b></p><p><b> {</b
22、></p><p> int air_num; //航班號</p><p> char Start[15]; //出發(fā)地</p><p> char End[15]; //終點站</p><p> int Price; //票價</p><p> float H;
23、 //折扣</p><p> char name[8]; //姓名</p><p> char ID[20]; //身份證號</p><p> int left ; //剩余票數(shù)</p><p> int k ; //購買票數(shù)</p><p><b>
24、 }people;</b></p><p> 1.3、主函數(shù)及各子函數(shù)流程圖</p><p> 主函數(shù)main( )</p><p><b> 2、軟件測試</b></p><p> 以下是這套軟件系統(tǒng)的詳細(xì)測試結(jié)果,并以截圖的形式展現(xiàn)出來,當(dāng)然只是展示了一部分有代表性的圖。下面是詳細(xì)介紹:</
25、p><p><b> 2.1、主菜單</b></p><p> 運行程序,將出現(xiàn)這樣一個歡迎的界面并提供以下7個選項</p><p><b> 2.2、初始化航班</b></p><p> 如果是第一次使用,則必須先初始化航班信息,否則系統(tǒng)內(nèi)的數(shù)據(jù)將是空的,不能使用。選擇“1”,則出現(xiàn)以下的界面
26、,根據(jù)提示依次輸入航班號、起始站、終點站、起飛時間、容載量、折扣和價格。</p><p> 若不保存,則會出現(xiàn)警告。</p><p> 若要正常寫入信息,則保存,下面將有一個信息預(yù)覽,按任意鍵繼續(xù)輸入。</p><p> 依次輸入十個航班信息</p><p> 輸入完成以后,將會有一個總體的預(yù)覽</p><p>
27、;<b> 2.3、航班訂票</b></p><p> 初始化完畢后,此時,我們便可以在這個系統(tǒng)里訂票了,按要求依次輸入</p><p> 訂票成功則顯示這樣的界面</p><p> 由于票數(shù)有限,因此當(dāng)輸入的購買票數(shù)超過總票數(shù)時,系統(tǒng)將無法完成售票操作</p><p> 然后依次買票,我在自己操作的時候,買了
28、50次票。操作結(jié)束后,會出現(xiàn)以下清單以提示我買的所有機(jī)票信息。</p><p><b> 2.4、航班退票</b></p><p> 可以在航班退票中進(jìn)行退票操作</p><p> 按要求依次輸入顧客信息,如下 </p><p> 若信息正確則退票成功,若不正確則顯示一下內(nèi)容,表示輸入有誤。</p>
29、<p><b> 2.5、航班查詢</b></p><p> 若需要查詢航班信息,則選擇查詢航班信息,出現(xiàn)以下界面。選擇以何種方式查詢</p><p><b> 如選擇以航班號查詢</b></p><p> 選擇以起始站查詢,則為:</p><p><b> 依此類推
30、</b></p><p><b> 2.6、查詢余票</b></p><p> 選擇查詢余票,輸入航班號,即可進(jìn)行余票查詢,如下:</p><p><b> 2.7、結(jié)束</b></p><p> 當(dāng)完成所有的操作后,將會出現(xiàn)一個如下界面,表示顧客已經(jīng)退出了此系統(tǒng)。此時按任意鍵可
31、以回到歡迎界面。</p><p><b> 3、算法改進(jìn)</b></p><p> 這次的軟件課程設(shè)計采用的是數(shù)組的方式,這樣調(diào)試起來比較簡單,沒有太多的難度。</p><p> 這個飛機(jī)票銷售系統(tǒng)的主要亮點在于,拋棄了原本復(fù)雜的函數(shù)定義,使用了簡潔的方式,使得程序更具有可讀性。在界面的友好性方面也做了處理,使得界面更加具有觀賞性,符合了
32、飛機(jī)票銷售系統(tǒng)的要求。如:</p><p> printf("\n\t\t\t請輸入航班號: ");</p><p> fflush(stdin);</p><p> scanf("%d", &a_data.air_num);</p><p> printf("\t\t\t請輸
33、入起始站: ");</p><p> fflush(stdin);</p><p> scanf("%s", a_data.Start);</p><p> printf("\t\t\t請輸入終點站: ");</p><p> fflush(stdin);</p><
34、;p> scanf("%s", a_data.End);</p><p> printf("\t\t\t請起飛輸入時間(如:2010.01.01.01.00): ");</p><p> fflush(stdin);</p><p> scanf("%s", a_data.Time);<
35、/p><p> printf("\t\t\t請輸入航班容載量: ");</p><p> fflush(stdin);</p><p> scanf("%d", &a_data.total);</p><p> a_data.left = 0;</p><p> p
36、rintf("\t\t\t請輸入機(jī)票折扣");</p><p> fflush(stdin);</p><p> scanf("%f", &a_data.H);</p><p> printf("\t\t\t請輸入機(jī)票價格: ");</p><p> fflush(s
37、tdin);</p><p> scanf("%d", &a_data.Price);</p><p> 這樣一段使用了fflush(stdin),為了確保不影響后面的數(shù)據(jù)讀取,在讀完一個字符串后緊接著又要讀取一個字符,此時應(yīng)該先執(zhí)行fflush(stdin)。盡管不是非常大的改動或者想法,但是為程序的可讀性和可操作性提供了很大的支持。</p>
38、<p> 像這樣的情況程序里還有一些,在這里就不贅述。</p><p> 這個程序還有很多可以改進(jìn)的地方,但是由于時間有限,就沒有在算法改進(jìn)上花太多的時間。在以后的學(xué)習(xí)中還要仔細(xì)思考,進(jìn)行改進(jìn)。</p><p><b> 4、開發(fā)體會</b></p><p> 現(xiàn)在終于到寫開發(fā)體會的時候了,心里的一根弦終于可以松一下了。&l
39、t;/p><p> 在剛接到這樣的一個任務(wù)的時候,我真是驚呆了,我們這樣的水平能夠完成這樣的作業(yè)嗎?因為當(dāng)時想,對于一個只是對C語言有所了解的大二學(xué)生來說要做出一個飛機(jī)票銷售系統(tǒng),那絕對是非常難的,當(dāng)時甚至覺得這是不可能的。但是這個障礙終究還是要跨過去,這是沒有辦法的,因為我知道三個星期后我一定要交上這樣的一份完整(盡管不完美)的飛機(jī)票銷售系統(tǒng),因此,在想到了這些后,便開始了我自認(rèn)為不可能完成的任務(wù)。</p&
40、gt;<p> 后面發(fā)現(xiàn),原來也沒有我想象得那么難。由于我們有連續(xù)三個星期的不間斷的上機(jī)時間,又有這么的老師和助教陪著我,在我有問題的時候及時幫我分析,幫我們解決。這使得我在前進(jìn)的路上多了很多的幫助,使我最終能夠走到這一步。因此在這里要感謝曾經(jīng)給我?guī)椭睦蠋熀椭虃儯€有在我編程路上的幫助我的同學(xué)們,謝謝你們。</p><p> 當(dāng)然,在編寫的過程中,和想象中的一樣,出現(xiàn)了許多的問題,甚至更難。
41、其中也是犯了很多的錯誤,有些是莫名其妙的,有些是很小的低級錯誤,有些是根本性的想法錯誤,但是這些錯誤都使得我不得不一次一次地檢查、糾正。通過這無數(shù)次的檢查糾正再犯錯再檢查的過程,我明白了,在編程的路上,錯誤不分大小,我要時刻注意不能犯錯誤。即使犯錯了,也不能放棄,因為可能就是在一個“;”之后,成功就在眼前了。</p><p> 這個系統(tǒng)終于出來了,這幾個星期特別是后期階段,真是可以用一句話來表達(dá):“為伊消得人憔
42、悴”。心里的興奮真是無法表達(dá)。但是在興奮之余,我還明白,這樣的系統(tǒng)肯定是不能拿出去使用的,因為這個程序還有很多的不科學(xué)、很多的不合理、很多的問題。而我們在以后的學(xué)習(xí)甚至是工作中是一定要用到這樣的一種軟件開發(fā)的技術(shù),那時我們的成果就一定要更加科學(xué),更加具有實用性。因此,我現(xiàn)在就要繼續(xù)前行,不能滿足于一個只能拿來看的系統(tǒng)上。</p><p> 一句歌詞:前面的路還很長,帶著你的夢想,朝著成功的方向,鼓起勇氣向前闖!
43、</p><p> 改編歌詞:軟件的路還很長,帶著我的VC, 朝著成功的系統(tǒng),鼓起勇氣向前闖!</p><p><b> 附:源代碼清單</b></p><p> #include <stdio.h></p><p> #include <string.h></p><
44、p> #include <stdlib.h></p><p> #include <time.h></p><p> #define LEN 180</p><p> #define N 100</p><p> #define PRINT printf("%-3d %-8s %-8s
45、 %-s\t%-d\t%-d \t%-3.1f\t%4d\n",data[i].air_num,data[i].Start,data[i].End,data[i].Time,data[i].total,data[i].left,data[i].H,data[i].Price)</p><p> #define PUT puts ("航班號 起飛站 終點站 起飛時間
46、 總?cè)萘?售票數(shù) 折扣 票價/張")</p><p> #define PRINT1 printf("%-3d %-8s %-8s %-6s\t%s\t %-3d\t%-3.1f\t%4d\n",l[j].air_num,l[j].Start,l[j].End,l[j].name,l[j].ID,l[j].k,l[j].H,l[j].Price)&
47、lt;/p><p> #define PUT1 puts ("航班號 起飛站 終點站 姓名 18位身份證號 定票數(shù) 折扣 票價/張")</p><p> void menu(); //主程序</p><p> void add(); //初始化航班</p><p> int sav
48、ef1();//客戶信息文件保存</p><p> void output(); //文件輸出</p><p> void output1(); //文件輸出</p><p> int savef(); //機(jī)票信息文件保存</p><p> int readf(); //文件讀取</p>&
49、lt;p> void inquire(); //查詢機(jī)票信息</p><p> void inquire1(); //查詢客戶信息</p><p> void book(); //預(yù)定航班</p><p> void refund(); //取消航班</p><p> void searchnum();
50、//查詢剩余票數(shù)</p><p> typedef struct </p><p><b> {</b></p><p> int air_num; //航班號</p><p> char Start[15]; //出發(fā)地</p><p> char End[15];
51、//終點站</p><p> int Price; //票價</p><p> float H; //折扣</p><p> char name[8]; //姓名</p><p> char ID[20]; //身份證號</p><p> int left ;
52、 //剩余票數(shù)</p><p> int k ; //購買票數(shù)</p><p><b> }people;</b></p><p> people l[LEN];</p><p> typedef struct </p><p><b> {</b
53、></p><p> int air_num; //航班號</p><p> char Start[15]; //出發(fā)地</p><p> char End[15]; //終點站</p><p> char Time[25]; //起飛時間</p><p> int total ;
54、 //總票數(shù)</p><p> float H; //折扣</p><p> int left ; //剩余票數(shù)</p><p> int Price; //票價</p><p><b> }air;</b></p><p> air dat
55、a[LEN];</p><p> int RecNo = 0;</p><p><b> int P=0;</b></p><p> int main()</p><p><b> {</b></p><p> char choice;</p><
56、;p><b> do</b></p><p><b> {</b></p><p><b> menu();</b></p><p> printf(" 請輸入選項并按回車鍵結(jié)束: ");</p><p> if
57、 ((readf() != 0) )</p><p><b> {</b></p><p> printf("\n數(shù)據(jù)文件錯誤,系統(tǒng)將被退出...");</p><p><b> exit(1);</b></p><p><b> }</b><
58、/p><p> fflush(stdin);</p><p> scanf("%c", &choice);</p><p> switch (system("cls"), choice)</p><p><b> {</b></p><p>
59、case '1': puts( " ----------------- 初 始 化 航 班 數(shù) 據(jù) 庫 ----------------- "</p><p> " ----------------- 請輸入相應(yīng)的航班信息... -----------------");</p>
60、;<p><b> add();</b></p><p><b> break;</b></p><p> case '2': puts( " ----------------- 航 班 查 詢 ----------------- ");</p&g
61、t;<p> inquire();</p><p><b> break;</b></p><p> case '3': puts("----------------- 航 班 訂 票 ----------------- ");</p><p>&
62、lt;b> book();</b></p><p><b> break;</b></p><p> case '4': puts("----------------- 航 班 退 票 ----------------- ");</p><p>
63、;<b> refund();</b></p><p><b> break;</b></p><p> case '5': puts("----------------- 查 詢 機(jī)票 ----------------- ");</p><p&
64、gt;<b> output();</b></p><p><b> break;</b></p><p> case '6': puts(" ----------------- 查 詢 余 票 ----------------- ");</p>&l
65、t;p> searchnum();</p><p><b> break;</b></p><p> case '7': break;</p><p> default: puts("請輸入您的選擇");</p><p><b> break;</b&g
66、t;</p><p><b> }</b></p><p><b> }</b></p><p> while (choice != '7');</p><p> puts("\n\n\n\n\n\n\n\n\n\t\t\t\t非常感謝,祝您旅途愉快!")
67、;</p><p><b> return 0;</b></p><p><b> }</b></p><p> void menu()</p><p><b> {</b></p><p> system("cls");&
68、lt;/p><p> system("color 37");</p><p> puts("================================================================================ "</p><p> "-------------------
69、- 歡迎來到華中大機(jī)場,請選擇您需要的服務(wù) --------------- "</p><p> "=========================================================================== \n"</p><p> "
70、 \n"</p><p> " * * * * * * * * \n"</p><p> "
71、 \n"</p><p> " 1、初始化航班 \n"</p><p> " 2、查詢航班信息 \n"</p>&l
72、t;p> " 3、航班訂票 \n"</p><p> " 4、航班退票 \n"</p><p> "
73、 5、查詢機(jī)票 \n"</p><p> " 6、查詢余票 \n"</p><p> " 7、退出售票系統(tǒng)
74、 \n"</p><p> " \n"</p><p> " * * * * * * * *
75、 \n\n\n"</p><p> " ============================================================================== ");</p><p><b> }</b></p><p> void add()</p>&l
76、t;p><b> {</b></p><p><b> int i, j;</b></p><p> char choice;</p><p> air a_data;</p><p> for (j = 1;RecNo < LEN;j++)</p><p&
77、gt;<b> {</b></p><p> printf("\n\t\t\t請輸入航班號: ");</p><p> fflush(stdin);</p><p> scanf("%d", &a_data.air_num);</p><p> printf(&q
78、uot;\t\t\t請輸入起始站: ");</p><p> fflush(stdin);</p><p> scanf("%s", a_data.Start);</p><p> printf("\t\t\t請輸入終點站: ");</p><p> fflush(stdin);<
79、;/p><p> scanf("%s", a_data.End);</p><p> printf("\t\t\t請起飛輸入時間(如:2010.01.01.01.00): ");</p><p> fflush(stdin);</p><p> scanf("%s", a_dat
80、a.Time);</p><p> printf("\t\t\t請輸入航班容載量: ");</p><p> fflush(stdin);</p><p> scanf("%d", &a_data.total);</p><p> a_data.left = 0;</p>
81、<p> printf("\t\t\t請輸入機(jī)票折扣");</p><p> fflush(stdin);</p><p> scanf("%f", &a_data.H);</p><p> printf("\t\t\t請輸入機(jī)票價格: ");</p><p&g
82、t; fflush(stdin);</p><p> scanf("%d", &a_data.Price);</p><p> printf("注意:是否要保存信息??? 若按任意鍵則(是) N(否) ");</p><p> fflush(stdin);</p><p> scanf
83、("%c", &choice);</p><p> if (choice == 'N' || choice == 'n')</p><p><b> {</b></p><p> printf("\n\t\t\t!!注意?。?shù)據(jù)未保存?。?!");</p&
84、gt;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> for (i = 0;i < RecNo;i++)</p><p> if (data[i].air_num =
85、= a_data.air_num)</p><p><b> {</b></p><p> printf("\n%d次航班已經(jīng)被使用,請換其他班次...\n", a_data.air_num);</p><p> puts("\n數(shù)據(jù)未保存...");</p><p><
86、;b> PUT;</b></p><p><b> PRINT;</b></p><p><b> break;</b></p><p><b> }</b></p><p> if (i == RecNo)</p><p>
87、<b> {</b></p><p> data[RecNo] = a_data;</p><p><b> RecNo++;</b></p><p><b> PUT;</b></p><p><b> PRINT;</b></p>
88、<p><b> savef();</b></p><p><b> }</b></p><p><b> }</b></p><p> printf("請問是否繼續(xù)? 若按任意鍵則(是) N(否,退回主界面) ");</p><
89、p> fflush(stdin);</p><p> scanf("%c", &choice);</p><p> if (choice == 'N' || choice == 'n')</p><p><b> {</b></p><p><
90、;b> output();</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><
91、p> int savef1()</p><p><b> {</b></p><p> FILE *fp1;</p><p> if ((fp1 = fopen("people.txt", "wb")) == NULL)</p><p><b> {<
92、;/b></p><p> puts("\n數(shù)據(jù)文件寫入失敗!請檢查文件是否存在,按若按任意鍵則返回主菜單");</p><p> getchar();</p><p><b> exit(1);</b></p><p><b> }</b></p>
93、<p> fprintf(fp1, "%d", P);</p><p> if (fwrite(l, sizeof(people), P, fp1) == 0)</p><p><b> {</b></p><p> puts("\n向文件寫入數(shù)據(jù)失敗!");</p>&l
94、t;p><b> exit(1);</b></p><p><b> }</b></p><p> puts("\n數(shù)據(jù)寫入成功...");</p><p> fclose(fp1);</p><p><b> return 0;</b>&l
95、t;/p><p><b> }</b></p><p> int readf()</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if ((fp = fopen("air.tx
96、t", "a+")) == NULL)</p><p><b> {</b></p><p> printf("\n數(shù)據(jù)文件讀取失敗!請檢查文件是否存在,按若按任意鍵則返回住菜單\n");</p><p> getchar();</p><p><b>
97、 exit(1);</b></p><p><b> }</b></p><p> fscanf(fp, "%d", &RecNo);</p><p> fread(data, sizeof(air), RecNo, fp);</p><p> fclose(fp);<
98、;/p><p><b> return 0;</b></p><p><b> }</b></p><p> int savef()</p><p><b> {</b></p><p><b> FILE *fp;</b>&
99、lt;/p><p> if ((fp = fopen("air.txt", "wb")) == NULL)</p><p><b> {</b></p><p> puts("\n數(shù)據(jù)文件寫入失敗!請檢查文件是否存在,按若按任意鍵則返回主菜單");</p><p&
100、gt; getchar();</p><p><b> exit(1);</b></p><p><b> }</b></p><p> fprintf(fp, "%d", RecNo);</p><p> if (fwrite(data, sizeof(air), R
101、ecNo, fp) == 0)</p><p><b> {</b></p><p> puts("\n向文件寫入數(shù)據(jù)失敗!");</p><p><b> exit(1);</b></p><p><b> }</b></p><
102、;p> puts("\n數(shù)據(jù)寫入成功...");</p><p> fclose(fp);</p><p><b> return 0;</b></p><p><b> }</b></p><p> void output()</p><p&
103、gt;<b> {</b></p><p><b> int i;</b></p><p><b> PUT;</b></p><p> for (i = 0;i < RecNo;i++)</p><p><b> {</b></p&
104、gt;<p><b> PRINT;</b></p><p><b> }</b></p><p> printf("\n若按任意鍵則返回上級菜單... ");</p><p> fflush(stdin);</p><p> getchar();<
105、/p><p><b> }</b></p><p> void output1()</p><p><b> {</b></p><p><b> int j;</b></p><p><b> PUT1;</b></p
106、><p> for (j = 0;j <P;j++)</p><p><b> {</b></p><p><b> PRINT1;</b></p><p><b> }</b></p><p> printf("\n若按任意鍵則返
107、回上級菜單... ");</p><p> fflush(stdin);</p><p> getchar();</p><p><b> }</b></p><p> void inquire1()</p><p> { char name[8],ID[20],choice
108、;</p><p> int j, flag=0;</p><p> do{ readf();</p><p><b> flag=0 ;</b></p><p> printf("請輸入您的姓名: ");</p><p> fflush(stdin);</
109、p><p> scanf("%s", name);</p><p> printf("請輸入您的18位身份證號:");</p><p> scanf("%s", ID);</p><p> { for (j = 0;j < P;j++)</p><p&g
110、t; if ((strcmp(l[j].name, name) == 0)&&(strcmp(l[j].ID, ID) == 0) )</p><p><b> {PUT1;</b></p><p><b> PRINT1;</b></p><p><b> flag=1;</b&g
111、t;</p><p><b> }</b></p><p><b> }</b></p><p> if (flag == 0)</p><p><b> {</b></p><p> puts("\n對不起,沒有該客戶信息"
112、;);</p><p><b> }</b></p><p> printf("\n請問是否繼續(xù)查找? 若按任意鍵則(是) N(否,退回主界面):");</p><p> fflush(stdin);</p><p> scanf("%c", &choic
113、e);</p><p> }while((choice != 'N')&&( choice != 'n'));</p><p><b> }</b></p><p> void inquire()</p><p><b> {</b></
114、p><p> char choice;</p><p> int i, flag=0;</p><p> air s_data;</p><p><b> do</b></p><p><b> {</b></p><p> puts( &qu
115、ot;\n1、按航班號查找\n\n"</p><p> "2、按終點站查找\n\n"</p><p> "3、按起始站查找\n\n"</p><p> "4、按時間來查找\n\n"</p><p> "5、按起始站及終點站查找\n\n"</
116、p><p> "6、返回到上級菜單\n");</p><p> printf("請輸入選項并按回車鍵結(jié)束: ");</p><p> fflush(stdin);</p><p> scanf("%c", &choice);</p><p> f
117、flush(stdin);</p><p> switch (choice)</p><p><b> {</b></p><p> case '1': printf("請輸入航班號:");</p><p> fflush(stdin);</p><p>
118、; scanf("%d", &s_data.air_num);</p><p><b> PUT;</b></p><p> for (i = 0;i < RecNo;i++)</p><p> if (data[i].air_num == s_data.air_num)</p>&l
119、t;p><b> { PRINT;</b></p><p><b> flag++;}</b></p><p><b> break;</b></p><p> case '2': printf("請輸入終點站名稱:");</p><
120、;p> fflush(stdin);</p><p> scanf("%s", s_data.End);</p><p> for (i = 0;i < RecNo;i++)</p><p> if (strcmp(data[i].End, s_data.End) == 0)</p><p><b
121、> { PRINT;</b></p><p><b> flag++;}</b></p><p><b> break;</b></p><p> case '3': printf("請輸入起始站名稱:");</p><p> fflu
122、sh(stdin);</p><p> scanf("%s", s_data.Start);</p><p> for (i = 0;i < RecNo;i++)</p><p> if(strcmp(data[i].Start, s_data.Start) == 0)</p><p><b> {
123、 PRINT;</b></p><p><b> flag++;}</b></p><p><b> break;</b></p><p> case '4': printf("請輸入航班時間(日期):");</p><p> fflush(s
124、tdin);</p><p> scanf("%s", s_data.Time);</p><p> for (i = 0;i < RecNo;i++)</p><p> if (strcmp(data[i].Time, s_data.Time) == 0)</p><p><b> { PRINT
125、;</b></p><p><b> flag++;}</b></p><p><b> break;</b></p><p> case '5': printf("請輸入起始站名稱:");</p><p> fflush(stdin);<
126、;/p><p> scanf("%s", s_data.Start);</p><p> printf("請輸入終點站名稱:");</p><p> fflush(stdin);</p><p> scanf("%s", s_data.End);</p><p
127、> for (i = 0;i < RecNo;i++)</p><p> if ((strcmp(data[i].End, s_data.End) == 0) &&</p><p> (strcmp(data[i].Start, s_data.Start) == 0) )</p><p><b> {</b>
128、</p><p><b> PRINT;</b></p><p><b> flag++;</b></p><p><b> }</b></p><p><b> break;</b></p><p> case '
129、;6': return ;</p><p> default : printf("\n輸入錯誤,請重試...");</p><p><b> continue;</b></p><p><b> }</b></p><p> if (flag == 0)</
130、p><p><b> {</b></p><p> puts("\n對不起,沒有該航班信息...");</p><p><b> }</b></p><p> printf("\n請問是否繼續(xù)查找? 若按任意鍵則(是) N(否,退回主界面):");
131、</p><p> fflush(stdin);</p><p> scanf("%c", &choice);</p><p><b> }</b></p><p> while((choice != 'n')&&(choice != 'N
132、9;));</p><p><b> }</b></p><p> void book()</p><p> { int i,j,k,m,n,L=0,T=0;</p><p> people a_l;</p><p> char choice;</p><p&g
133、t;<b> do</b></p><p> { T=0; L=0;</p><p> printf("\n請輸入您要訂票的航班號:");</p><p> fflush(stdin);</p><p> scanf("%d", &a_l.air_num
134、);</p><p> for (i = 0;i< RecNo;i++)</p><p> if (data[i].air_num == a_l.air_num)</p><p><b> {T=1;</b></p><p><b> m=i;</b></p><p
135、> printf("\n請輸入您的姓名:");</p><p> fflush(stdin);</p><p> scanf("%s", &a_l.name);</p><p> printf("\n請輸入您18位身份證號:");</p><p> fflus
136、h(stdin);</p><p> scanf("%s", &a_l.ID);</p><p><b> do{</b></p><p> printf("\n請輸入您的訂票數(shù)以回車鍵結(jié)束:");</p><p> fflush(stdin);</p>
137、<p> scanf("%d", &k);</p><p> if (k <=0)</p><p><b> {</b></p><p> puts("\n請輸入有效的機(jī)票數(shù)!\n");</p><p><b> continue;&
138、lt;/b></p><p><b> }</b></p><p> if (data[i].left + k > data[i].total)</p><p><b> {</b></p><p> printf("\n對不起,您最多能買 %d 張機(jī)票.\n"
139、;, data[i].total - data[i].left);</p><p><b> continue;</b></p><p><b> }</b></p><p> for (j=0;j<P;j++)</p><p> if (l[j].air_num==a_l.air_n
140、um)</p><p> if((strcmp(l[j].name,a_l.name)==0)&&(strcmp(l[j].ID,a_l.ID)==0))</p><p><b> {</b></p><p> data[i].left=data[i].left+k;</p><p><b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件課程設(shè)計報告(飛機(jī)票銷售系統(tǒng))
- 軟件課程設(shè)計報告--飛機(jī)票銷售系統(tǒng)
- 軟件課程設(shè)計報告(飛機(jī)票系統(tǒng))
- 軟件課程設(shè)計報告---飛機(jī)票售票系統(tǒng)
- 軟件課程設(shè)計--c語言程序之飛機(jī)票訂票系統(tǒng)
- 課程設(shè)計--飛機(jī)票網(wǎng)上預(yù)訂系統(tǒng)概要設(shè)計
- c語言課程設(shè)計報告---民航飛機(jī)票訂票系統(tǒng)設(shè)計
- 飛機(jī)票報銷管理辦法
- 數(shù)據(jù)庫課程設(shè)計---飛機(jī)機(jī)票預(yù)訂系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---飛機(jī)機(jī)票預(yù)訂系統(tǒng)
- 軟件工程課程設(shè)計-機(jī)票預(yù)定系統(tǒng)
- 軟件工程課程設(shè)計-機(jī)票預(yù)訂系統(tǒng)
- 基于SSH框架的飛機(jī)票分銷管理系統(tǒng)設(shè)計與實現(xiàn).pdf
- 機(jī)票預(yù)訂系統(tǒng)課程設(shè)計
- 軟件工程課程設(shè)計--機(jī)票預(yù)訂系統(tǒng)設(shè)計與實現(xiàn)
- 機(jī)票預(yù)訂系統(tǒng)課程設(shè)計
- 銀行系統(tǒng)軟件工程課程設(shè)計
- 乘客對飛機(jī)票價的定價方法的影響.pdf
- 酒店管理系統(tǒng)軟件工程課程設(shè)計
- 課程設(shè)計---學(xué)生成績管理系統(tǒng)軟件
評論
0/150
提交評論