找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5289|回復(fù): 3
收起左側(cè)

C語言航空客運(yùn)訂票系統(tǒng)程序思路及設(shè)計(jì)(功能全面)

[復(fù)制鏈接]
ID:561504 發(fā)表于 2019-6-13 09:50 | 顯示全部樓層 |閱讀模式
高程的設(shè)計(jì)
通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:
錄入 可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定) ;
查詢 可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉); 可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;
訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定) 可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班或提供候補(bǔ)席位;
退票 可退票,退票后修改相關(guān)數(shù)據(jù)文件; 客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。
修改航班信息: 當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件 。

2.1 結(jié)構(gòu)定義

因?yàn)楸绢}函數(shù)變量巨多無比,所以我們定義了typedef struct client和airline,統(tǒng)領(lǐng)一些小變量。這樣在之后引用的時(shí)候,比較方便。

2.2 函數(shù)構(gòu)造

   利用之前構(gòu)造的的變量進(jìn)行函數(shù)構(gòu)造,利用不同函數(shù)實(shí)現(xiàn)不同的功能。設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能。

2.3 功能實(shí)現(xiàn)

通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:

錄入: 可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定) ;

查詢: 可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉); 可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;

訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定) 可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班或提供候補(bǔ)席位;

退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件; 客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。

修改航班信息: 當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件 。



3 程序與功能模塊設(shè)計(jì)
3.1 設(shè)計(jì)思路
總體思路,通過對(duì)題目的閱讀和分析,我們發(fā)現(xiàn)要求大體分為2大模塊,1.航班信息的錄入,修改與查詢。2.顧客的信息錄入,訂票,退票系統(tǒng)。我們對(duì)錄入信息的解決方法是運(yùn)用鏈表的插入,將信息放入到一個(gè)個(gè)鏈表當(dāng)中,對(duì)于輸出,我們則借鑒了遍歷函數(shù),同時(shí),我們對(duì)于數(shù)據(jù)的查找,也借鑒了鏈表中的查找,在訂票系統(tǒng)中,我們也是基于此,進(jìn)行修改,完成了訂票退票系統(tǒng)。

錄入:首先是數(shù)據(jù)的錄入,這個(gè)可以分為航班信息airline和顧客信息client,根據(jù)題目要求航班信息airline中需包含 航班號(hào),起飛地,目的地,起飛時(shí)間,降落時(shí)間,票價(jià),座位總數(shù),剩余座位數(shù),不同艙位的數(shù)目,而顧客信息client中需要包含訂單號(hào),顧客姓名,證件號(hào),及他所訂購的航班信息,和所定的艙位信息。我們根據(jù)需求把他們定義為不同的數(shù)據(jù)類型,便于在之后的函數(shù)中直接引用,也便于后期不同模塊的整合與統(tǒng)一。

查詢:根據(jù)功能要求,我們需采取兩種方式查詢航班:1.航班號(hào) 2.起始地和目的地。利用指針,將錄入的航班逐個(gè)與客戶查詢的關(guān)鍵字進(jìn)行比較,直至查找到對(duì)應(yīng)的航班,并輸出航班所有信息。

訂票:創(chuàng)建一個(gè)新的結(jié)構(gòu)體來儲(chǔ)存客戶的信息,其中包括選擇航班的相關(guān)信息、客戶的身份信息和訂單號(hào)。與查詢方式類似,當(dāng)指針指向相應(yīng)的航班時(shí),我們將該航班對(duì)應(yīng)的結(jié)構(gòu)體中相關(guān)信息復(fù)制儲(chǔ)存至收集客戶信息的結(jié)構(gòu)體中,并將客戶的身份信息也一同存入。若航班的余票量不能滿足客戶的訂票需求,那么系統(tǒng)將提供其他滿足客戶需求的航班,客戶可以重新進(jìn)行選擇訂票?蛻粢部梢赃x擇候補(bǔ)滿客航班,這時(shí)重新創(chuàng)建一個(gè)新結(jié)構(gòu)體來儲(chǔ)存候補(bǔ)客戶的信息。

退票:同樣運(yùn)用指針,我們先找到退票客戶的“信息文件夾”。然后將該客戶的訂票信息刪除,同時(shí)恢復(fù)對(duì)應(yīng)航班的座位數(shù)。這時(shí),系統(tǒng)將會(huì)按順序?yàn)楹蜓a(bǔ)席位中的客戶訂票。

修改:修改內(nèi)容包括:1.增加航班 2.刪除航班 3.修改部分信息。

增加航班:在儲(chǔ)存航班信息的鏈表中創(chuàng)建一個(gè)新的結(jié)點(diǎn),將對(duì)應(yīng)的新航班信息存儲(chǔ)在結(jié)構(gòu)體中。

刪除航班:利用指針找到需刪除航班的結(jié)點(diǎn),之后刪除該節(jié)點(diǎn)并釋放節(jié)點(diǎn)中存儲(chǔ)的航班信息。

修改部分內(nèi)容:利用指針找到需要修改航班的結(jié)點(diǎn),根據(jù)要求對(duì)指針指向的結(jié)構(gòu)體內(nèi)容進(jìn)行修改,以完成航班的相關(guān)信息修改。

3.2 詳細(xì)實(shí)現(xiàn)過程

錄入:在主程序利用了import(num,headline);函數(shù)錄入航班信息,在之后的訂票模塊利用 bookticket錄入了顧客信息,主要的錄入就這兩塊信息,所以分別定義typedef struct client 和typedef struct airline作為結(jié)構(gòu)變量統(tǒng)領(lǐng)這些信息,而在輸入的時(shí)候只要采用循環(huán)結(jié)構(gòu),就可以實(shí)現(xiàn)地址的移動(dòng),一位一位的實(shí)現(xiàn)信息錄入,具體程序如之后程序所示。

查詢:我們分為兩種方式對(duì)航班進(jìn)行查詢:1.航班號(hào) 2.起始地和目的地。通過航班號(hào)進(jìn)行查詢,我們利用strcmp函數(shù)比較輸入的航班號(hào)字符串與指針指向的航班號(hào)字符串,若返回值為0,則指針temp所指向的就是找到的航班號(hào),這時(shí)利用指針temp將結(jié)點(diǎn)中該航班的信息全部輸出。若返回值不為0,那么指針順著鏈表移動(dòng),指向下一個(gè)結(jié)點(diǎn),繼續(xù)比較。通過起始地與目的地查找航班方法與通過航班號(hào)查詢方式差不多,只不過同時(shí)比較起始地和目的地兩個(gè)字符串。


訂票:為了便于儲(chǔ)存訂票客戶的具體信息,我們創(chuàng)建了一個(gè)新的結(jié)構(gòu)體client。訂票時(shí)客戶選擇合適航班,指針temp順著鏈表移動(dòng)找到該航班對(duì)應(yīng)的結(jié)點(diǎn),將對(duì)應(yīng)的航班信息復(fù)制儲(chǔ)存在client中,同時(shí)客戶從鍵盤上輸入自己的名字與id,一并存入client中,并將客戶的id作為訂單編號(hào)。訂票完成后,執(zhí)行函數(shù)display_client,將客戶的訂單信息輸出至屏幕上。若航班余票量不能滿足客戶的訂票需求,通過函數(shù)display_all_line將所有航班信息輸出在屏幕上為客戶提供其他選擇。客戶可以選擇訂購其他航班,其實(shí)現(xiàn)步驟與訂票無異。客戶也可以選擇在滿客航班候補(bǔ),這時(shí)程序?qū)⒖蛻粜畔⒋嫒隿lient中。候補(bǔ)信息填寫完成后,將執(zhí)行函數(shù)display_client1將候補(bǔ)信息輸出,并提醒客戶“無余票,需耐心等待”。

退票:我們先利用指針headclient順著client鏈表移動(dòng),找到退票客戶的結(jié)點(diǎn),然后刪除該節(jié)點(diǎn)并釋放結(jié)構(gòu)體儲(chǔ)存的信息。接著再利用指針headline順著airline鏈表移動(dòng),找到與退票客戶信息中的航班號(hào)相等的結(jié)點(diǎn),修改其中的座位數(shù)。這時(shí)要判斷客戶的艙位等級(jí),利用switch語句分別對(duì)不同艙位進(jìn)行座位數(shù)修改。

修改:先利用switch語句選擇航班修改操作類型。

  • 增加航班:airline鏈表新增一個(gè)結(jié)點(diǎn),然后與錄入過程相似。
  • 刪除航班:指針delline順著鏈表移動(dòng)直至找到對(duì)應(yīng)航班結(jié)點(diǎn),然后刪除該結(jié)點(diǎn),并釋放相關(guān)信息存儲(chǔ)空間。
  • 修改部分內(nèi)容:指針temp順著鏈表移動(dòng)直至找到對(duì)應(yīng)航班結(jié)點(diǎn),由于只有部分信息需要修改,我們利用switch語句的選擇結(jié)構(gòu)分別執(zhí)行不同修改內(nèi)容的語句。當(dāng)進(jìn)行選擇后,我們通過指針temp對(duì)結(jié)構(gòu)體的內(nèi)容進(jìn)行修改?紤]到多個(gè)部分信息需修改的情況,我們運(yùn)用了while語句,對(duì)定義的整型變量y判斷,當(dāng)有繼續(xù)修改的需求時(shí),y=1,循環(huán)繼續(xù),若無需求,y=0,循環(huán)結(jié)束。


3.3 設(shè)計(jì)總結(jié)

這幾個(gè)功能有著類似之處,比如訂票,退票,修改在設(shè)計(jì)中,把他們?nèi)齻(gè)定義為3個(gè)函數(shù) display_line(find),bookticket和returnticket。然后在不同的函數(shù)中實(shí)現(xiàn)具體不同的功能,詳細(xì)的在之后程序分析細(xì)說。修改也是同理,不過是找到數(shù)據(jù)地址,然后進(jìn)行數(shù)據(jù)覆蓋,只要注意變量定義在了哪里即可。

總的來說,這次的程序設(shè)計(jì)與我們之前做的作業(yè)有著異曲同工之妙,先是定義變量,而后進(jìn)行功能實(shí)現(xiàn)的構(gòu)思,然后寫主函數(shù),主函數(shù)簡單,利用多種函數(shù)實(shí)現(xiàn)功能,將大程序分為一個(gè)個(gè)小功能,最后用main函數(shù)總結(jié)起來,實(shí)現(xiàn)我們希望的功能。

我們最后又進(jìn)行了功能的完善和擴(kuò)展,進(jìn)行了一些實(shí)際問題的思考讓他看起來更像一個(gè)真實(shí)的航空售票系統(tǒng)。


5 程序測(cè)試?yán)c分析
5.1 結(jié)果截圖
首先進(jìn)入選項(xiàng)頁面:

1)正常錄入航班信息:

  • 查詢航線信息:(兩種方式)

3)

若是訂滿,則顯示艙位已滿,讓客戶選擇排隊(duì)或者退出,若是排隊(duì)進(jìn)行信息的補(bǔ)錄,并且顯示需要幾張票。

4)退票直接顯示退票成功

5)

6)

0)
5.2 程序結(jié)果詳解

   首先,由上文的結(jié)果截圖可以看到,一共分為了六個(gè)模塊和一個(gè)系統(tǒng)退出。

   在主函數(shù)處,我們把程序用switch(x) 函數(shù) ,分為不同的case,這樣便于我們分配任務(wù)編寫,和最后的檢查。接下來是每一塊的詳細(xì)實(shí)現(xiàn)過程。

   (1)第一個(gè)是錄入航班信息,這也是這個(gè)系統(tǒng)最為基礎(chǔ)的部分,由程序段我們也可以看到,我們利用了typedef struct airline 定義了許多個(gè)變量,這個(gè)是需要我們手動(dòng)輸入的數(shù)據(jù)。

   而折扣在這里我們采用的是0-1.0作為折扣的輸入,比如九折就是0.9,結(jié)果都如之前所示。

    (2)第二個(gè)是查詢航線信息,根據(jù)我們的生活經(jīng)驗(yàn),我們把這個(gè)又分為兩種查詢方式,分別是起始地和航班編號(hào)查詢,查詢之后,會(huì)在下面把所有航班信息都列出來,供人們參考。

   (3)第三個(gè)是客戶訂票,在這里輸入的是客戶數(shù)據(jù),若是還有空位,利用typedef struct client將數(shù)據(jù)儲(chǔ)存起來,同時(shí)把航班的空間減一,作為座位的分配,若是沒有空位,如上述程序所顯示,進(jìn)行排隊(duì)或者退出的選擇。

   (4)第四個(gè)是客戶退票,這個(gè)很簡單,只要把數(shù)據(jù)清空就可以了,如上述程序顯示。

   (5) 第五個(gè)是輸出所有航班信息,只要利用循環(huán)結(jié)構(gòu)和與期中考試類似的node->line_num等等,輸出剛剛輸入的數(shù)據(jù),并且全部列出即可。

   (6)第六個(gè)是修改航班信息,注意當(dāng)前航班信息,找對(duì)地址,修改相應(yīng)數(shù)據(jù),再進(jìn)行錄入即可,這個(gè)也是實(shí)現(xiàn)比較困難的一個(gè)。

   (7)第七個(gè)是退出程序,直接break就可以了。

6整體設(shè)計(jì)總結(jié)

6.1 遇到的問題

1.刪除航班模塊,我們發(fā)現(xiàn)在刪除選擇航班后,程序會(huì)直接退出,并沒有返回訂票主系統(tǒng),即如圖所示

  • 其他還有一些函數(shù)定義的錯(cuò)誤。
  • 在乘客訂票結(jié)束后,程序不進(jìn)行下一步,而是卡死在這一步,再次按回車則直接彈出。
6.2 問題的解決方法

1.我們返回函數(shù)change_line,然后在2選項(xiàng)中修改了相應(yīng)代碼delete delline->next; 增加了delline=delline->next;使他能夠一位一位后移,解決了這個(gè)問題。

2.我們找到了相應(yīng)的定義位置,詳細(xì)修改了函數(shù)的找尋方式及具體定義,解決了這個(gè)問題。

3.我們回到對(duì)應(yīng)函數(shù)的位置,在程序結(jié)束處補(bǔ)上了 return 0; 使函數(shù)能夠正常結(jié)束,解決了這個(gè)問題。

6.3 總結(jié)

其他還有一些問題,都用類似方法得到了解決,發(fā)現(xiàn)程序出錯(cuò)要到相應(yīng)位置去詳細(xì)檢查,解決之后不能立刻編譯,應(yīng)該先預(yù)想一下運(yùn)行結(jié)果,然后再進(jìn)行編譯。

然后若是功能出錯(cuò),要到相應(yīng)功能實(shí)現(xiàn)的函數(shù)位置進(jìn)行檢查,之后與程序檢查的步驟一致。


7心得體會(huì)

根據(jù)第一段信息可知,應(yīng)將系統(tǒng)信息總體分為兩部分——航班信息,乘客信息?啥x出兩個(gè)結(jié)構(gòu)體來進(jìn)行信息存儲(chǔ)。對(duì)于題目所要求的 錄入,查詢,訂票,退票等功能,可通過定義不同函數(shù),分別實(shí)現(xiàn)不同功能 ,最后在主函數(shù)中進(jìn)行調(diào)用,進(jìn)行整合。 使用鏈表來存儲(chǔ)信息,更加方便靈活。不同函數(shù)間可進(jìn)行相互調(diào)用,以實(shí)現(xiàn)所要求的功能。

我們可以利用課上學(xué)到的知識(shí),定義結(jié)構(gòu)體,大量使用結(jié)構(gòu)指針,實(shí)現(xiàn)很多信息的錄入,修改,賦值,比較等。定義單鏈表,使用 while 循環(huán)語句,if 判斷,switch 選擇等。使用 #include<string.h> 等頭文件,使用 strcmp() 來進(jìn)行數(shù)據(jù)的比較以實(shí)現(xiàn) 航線的查詢,訂票等功能。

最后再查閱相關(guān)資料完成程序的具體編寫。


4 C語言程序與接口實(shí)現(xiàn)

4.1 程序設(shè)計(jì)
  1. using namespace std;
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<stdio.h>
  5. /*****************************************************
  6. *功能描述:定義客戶信息
  7. *輸入?yún)?shù):name,id,line_num,time1,time2,seat_num
  8. *輸出參數(shù):client
  9.             txt文件
  10. ******************************************************/
  11. typedef struct client
  12. {
  13.     char file[20];//訂單編號(hào)
  14.     char name[20];//顧客名
  15.     char id[17];//顧客證件號(hào)
  16.     char line_num[10];//航班號(hào)
  17.     char time1[10];//起飛時(shí)間
  18.     char time2[10];//降落時(shí)間
  19.               double price;//現(xiàn)票價(jià)
  20.               int class0;//艙位等級(jí)
  21.     int seat_num;//座位號(hào)
  22.     struct client *next;//下一個(gè)結(jié)點(diǎn)
  23. } client;
  24. typedef struct clienthead
  25. {
  26.     int count;
  27.     client *next;
  28. } clienthead;
  29. /*****************************************************
  30. *功能描述:定義航班信息
  31. *輸入?yún)?shù):line_num,time1,time2,seat_num,start_place,end_place,total
  32. *輸出參數(shù):airline
  33.             txt
  34. ******************************************************/
  35. typedef struct airline
  36. {
  37.     char line_num[10];//航班號(hào)
  38.     char start_place[20];//起飛地
  39.     char end_place[20];//目的地
  40.     char time1[10];//起飛時(shí)間
  41.     char time2[10];//降落時(shí)間
  42.     double price0;//票價(jià)
  43.               double price;//現(xiàn)票價(jià)
  44.               double discount;//折扣
  45.               int class1;//一等艙
  46.               int class2;//二等艙
  47.               int class3;//三等艙
  48.               int total;//座位總數(shù)
  49.     int left;//剩余座位
  50.     struct airline *next;//下一個(gè)結(jié)點(diǎn)
  51. } airline;
  52. //頭結(jié)點(diǎn)
  53. typedef struct airlinehead
  54. {
  55.     int count;
  56.     airline *next;
  57. } airlinehead;
  58. /*****************************************************
  59. *功能描述:錄入航班函數(shù)
  60. *輸入?yún)?shù):line_num,start_place,end_place,time1,time2,total,left
  61. *輸出參數(shù):第i+1個(gè)航班錄入
  62. ******************************************************/
  63. airlinehead* import(int n,airlinehead *pheadline)//錄入航班函數(shù): n為所要錄入航班的數(shù)量:
  64. {
  65.     airline *temp = new airline;
  66.     temp->next=NULL;
  67.     pheadline->next=temp;
  68.     pheadline->count = n;
  69.     int flag;
  70.     for(int i=0; i<n; i++)
  71.     {
  72.                   printf("請(qǐng)輸入第%d個(gè)航班的航班號(hào) ",i+1);
  73.                             scanf("%s",temp->line_num);
  74.                   printf("\n");
  75.         printf("請(qǐng)輸入第%d個(gè)航班的起飛地 ",i+1);
  76.         scanf("%s",temp->start_place);
  77.                   printf("\n");
  78.          printf("請(qǐng)輸入第%d個(gè)航班的目的地 ",i+1);
  79.            scanf("%s",temp->end_place);
  80.                               printf("\n");
  81.          printf("請(qǐng)輸入第%d個(gè)航班的起飛時(shí)間 ",i+1);
  82.              scanf("%s",temp->time1);
  83.             printf("\n");
  84.          printf("請(qǐng)輸入第%d個(gè)航班的降落時(shí)間 ",i+1);
  85.              scanf("%s",temp->time2);
  86.          printf("\n");
  87.          printf("請(qǐng)輸入第%d個(gè)航班的座位總數(shù) ",i+1);
  88.           scanf("%d",&temp->total);
  89.                       printf("\n");
  90.         printf("請(qǐng)輸入一等艙座位數(shù) ");
  91.         scanf("%d",&temp->class1);
  92.         printf("請(qǐng)輸入二等艙座位數(shù) ");
  93.         scanf("%d",&temp->class2);
  94.         printf("請(qǐng)輸入三等艙座位數(shù) ");
  95.         scanf("%d",&temp->class3);
  96.         temp->left=temp->total;
  97.         printf("本航班的剩余座位數(shù): %d",temp->left);
  98.                                printf("\n");
  99.                                printf("請(qǐng)輸入原票價(jià) ");
  100.                                scanf("%lf",&temp->price0);
  101.                                printf("是否有折扣:(1:是 0:否)");
  102.                             scanf("%d",&flag);
  103.                             if(flag){
  104.                                           printf("請(qǐng)輸入折扣:");
  105.                                           scanf("%lf",&temp->discount);
  106.                                           temp->price=(temp->price0)*(temp->discount);
  107.                             }
  108.                             else{
  109.                                           temp->discount=0;
  110.                                           temp->price=temp->price0;
  111.                             }
  112.                             printf("現(xiàn)票價(jià):%.2f",temp->price);
  113.                             printf("\n");
  114.                                printf("第%d個(gè)航班成功錄入。 ",i+1);
  115.                    printf("\n");
  116.         if(i<n-1)
  117.         {
  118.             temp->next = new airline;
  119.             if(temp->next == NULL)
  120.             {   printf("分配失敗");
  121.                           printf("\n");
  122.                 exit(1);
  123.             }
  124.             temp->next->next=NULL;
  125.             temp = temp->next;
  126.         }
  127.     }
  128.     return pheadline;
  129. }
  130. /*****************************************************
  131. *功能描述:查詢航班功能
  132. *輸入?yún)?shù):select,1,2
  133. *輸出參數(shù):航班號(hào),起飛地,抵達(dá)地,起飛時(shí)間,降落時(shí)間,座位數(shù),剩余座數(shù)
  134. *返回值:temp-成功,NULL-失敗
  135. ******************************************************/
  136. airline* query(airlinehead *phead )//查詢航班情況
  137. {
  138.     airline *find=NULL;
  139.     airline *temp;
  140.     printf("(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)"); printf("\n") ;
  141.     printf("1,航線查詢航班。        "); printf("\n") ;
  142.     printf("2,起飛城市查詢航班。"); printf("\n") ;
  143.     printf("(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)(#^.^#)");
  144.     printf("\n") ;
  145.     printf("請(qǐng)選擇:");
  146.     int A;
  147.     scanf("%d",&A) ;
  148.     printf("\n") ;
  149.    if(A==1)
  150.     {
  151.                   printf("請(qǐng)輸入航班號(hào):");
  152.         char line_num[10];
  153.         scanf("%s",line_num);
  154.         temp = phead->next;
  155.         while(temp )
  156.         {
  157.             if(strcmp(temp->line_num,line_num) == 0)
  158.             {
  159.                 find= temp;
  160. //display_line(find);
  161.                 return temp;
  162.                 break;
  163.             }
  164.             else
  165.             {
  166.                 temp = temp->next;
  167.             }
  168.         }
  169.         if(!temp)
  170.         {
  171.             printf("沒有找到該航班的信息。") ;
  172.             printf("\n") ;
  173.             return NULL;
  174.         }

  175.     }
  176.   if(A==2)  
  177.     {
  178.         char start_place[20];//起飛地
  179.         char end_place[20];//目的地
  180.         printf("請(qǐng)輸入起始地:") ;
  181.         scanf("%s",start_place);

  182.         printf("\n") ;
  183.         printf("請(qǐng)輸入目的地:") ;
  184.         scanf("%s",end_place);
  185.         printf("\n") ;
  186. //airline *temp;
  187.         temp=phead->next;
  188.         while(temp)
  189.         {
  190.             if(strcmp(temp->start_place,start_place)==0 &&
  191.                     strcmp(temp->end_place,end_place)==0)
  192.             {
  193.                 find=temp;
  194. //return temp;
  195.                 break;
  196.             }
  197.             temp = temp->next;
  198.         }
  199.         if(!temp)
  200.         {   printf("沒有找到該航班的信息。") ;
  201.                       printf("\n") ;
  202.             return NULL;
  203.         }  
  204.     }
  205.    else{
  206.      printf("輸入錯(cuò)誤。") ;
  207.         printf("\n") ;
  208.         }
  209.     return find;
  210. }
  211. /*****************************************************
  212. *功能描述:查詢航班功能
  213. *輸入?yún)?shù):select,1,2
  214. *輸出參數(shù):航班號(hào),起飛地,抵達(dá)地,起飛時(shí)間,降落時(shí)間,座位數(shù),剩余座數(shù)
  215. ******************************************************/
  216. void display_line(airline *node)//輸出一個(gè)航班結(jié)點(diǎn)的所有信息到屏幕
  217. {
  218.     if(node==NULL)
  219.     {
  220.         printf("參數(shù)為空!輸出失敗.\n");
  221.         return;
  222.     }
  223.     printf("\n");
  224.     printf("航班號(hào)\t\t 起飛地\t\t 目的地\t\t 起飛時(shí)間\t\t 降落時(shí)間\t\t 一等艙座位數(shù)\t\n ");
  225.     printf("%s\t\t",node->line_num);
  226. printf(" %s\t\t",node->start_place);
  227. printf(" %s\t\t",node->end_place);
  228. printf(" %s\t\t",node->time1);
  229. printf("         %s\t\t",node->time2);
  230. printf("         %d\t\t\n",node->class1);
  231. printf("二等艙座位數(shù)\t\t 三等艙座位數(shù)\t\t 座位總數(shù)\t\t 剩余座位\t\n ");
  232. printf("%d\t\t",node->class2);
  233. printf("         %d\t\t",node->class3);
  234. printf("         %d\t\t",node->total);
  235. printf("         %d\t\t\n",node->left);
  236. printf("原票價(jià)\t\t 折扣\t\t 現(xiàn)票價(jià)\t\t 余票量\t\n");
  237. printf("%.2f\t\t",node->price0);
  238. printf("%.2f\t\t",node->discount);
  239. printf("%.2f\t\t",node->price);
  240. if(node->left<0){
  241.               printf("無余票,所需票量%d",(0-node->left));
  242. }
  243. else printf("%d\t\n",node->left);
  244. printf("\n");
  245. }
  246. /******************************************************
  247. *功能描述:輸出所有的航班信息到屏幕
  248. *輸入?yún)?shù):無
  249. *輸出參數(shù):headline
  250. *******************************************************/
  251. void display_all_line(airlinehead *headline)
  252. {
  253.     printf("\n");
  254.     airline *node;
  255.     node = headline->next;
  256.     if(!node)
  257.     {
  258.         printf("當(dāng)前沒有航班信息\n");
  259.         return ;
  260.     }
  261.     printf("航班數(shù)目: \n",headline->count);
  262.     while(node)
  263.     {
  264.         display_line(node);
  265.         node=node->next;
  266.     }
  267. }
  268. /******************************************************
  269. *功能描述:修改航班信息
  270. *輸入?yún)?shù):select
  271. *輸出參數(shù):無
  272. *返回值:0-正確,1-錯(cuò)誤
  273. *******************************************************/
  274. int change_line(airlinehead *headline)//修改航班信息。
  275. {
  276.     printf("當(dāng)前所有航班的信息為:\n");
  277.     airline *temp,*t;
  278.               int i;
  279.     temp = headline->next;
  280.     while(temp)
  281.     {
  282.         display_line(temp);
  283.                             t=temp;
  284.         temp=temp->next;
  285.     }
  286.     printf("\n");
  287.     printf("請(qǐng)選擇你要進(jìn)行的操作:\n");
  288.     printf("1,增加航班。\n");
  289.     printf("2,刪除航班。\n");
  290.               printf("3,修改部分信息。\n");
  291.     int select;
  292.     scanf("%d",&select);
  293.     printf("\n");
  294.     if(select>3 || select<1)
  295.     {
  296.         printf("輸入錯(cuò)誤。\n");
  297.         return 0;
  298.     }
  299.     switch(select)
  300.     {
  301.     case 1:
  302.     {
  303. //temp->next = (airline*)malloc(sizeof(airline));
  304.      temp=new airline;
  305.      int flag;
  306.               // temp=temp->next;
  307.                            
  308.         printf("請(qǐng)輸入要增加的航班號(hào): ");
  309.         scanf("%s",temp->line_num);
  310.         printf("請(qǐng)輸入航班的起飛地: ");
  311.         scanf("%s",temp->start_place);
  312.         printf("請(qǐng)輸入航班的目的地: ");
  313.         scanf("%s",temp->end_place);
  314.         printf("請(qǐng)輸入航班的起飛時(shí)間: ");
  315.         scanf("%s",temp->time1);
  316.         printf("請(qǐng)輸入航班的降落時(shí)間: ");
  317.         scanf("%s",temp->time2);
  318.         printf("請(qǐng)輸入一等艙座位數(shù):");
  319.         scanf("%d",&temp->class1);
  320.         printf("請(qǐng)輸入二等艙座位數(shù):");
  321.         scanf("%d",&temp->class2);
  322.         printf("請(qǐng)輸入三等艙座位數(shù):");
  323.         scanf("%d",&temp->class3);
  324.         printf("請(qǐng)輸入航班的座位總數(shù): ");
  325.         scanf("%d",&temp->total);
  326.                                           t->next=temp;
  327.         temp->left=temp->total;
  328.                             printf("請(qǐng)輸入原票價(jià):");
  329.                             scanf("%lf",&temp->price0);
  330.                             printf("是否有折扣:(1:是 0:否)");
  331.                             scanf("%d",&flag);
  332.                             if(flag){
  333.                                           printf("請(qǐng)輸入折扣:");
  334.                                           scanf("%lf",&temp->discount);
  335.                                           temp->price=(temp->price0)*(temp->discount);
  336.                             }
  337.         temp->next=NULL;
  338.         headline->count++;
  339.         printf("增加成功。\n");
  340.         break;
  341.     }
  342.     case 2:
  343.     {
  344.         printf("請(qǐng)輸入您要?jiǎng)h除的航班的航班號(hào): ");
  345.         char line_num[10];
  346.         scanf("%s",line_num);
  347.         airline * delline;
  348.         delline = headline->next;
  349.         while(delline)
  350.         {
  351.             if(strcmp(delline->next->line_num, line_num)==0)
  352.             {
  353.                                                         i=1;
  354.                 airline *plink;
  355.                 plink = delline->next->next;
  356. //free(delline->next);
  357.                 delete delline->next;
  358.                 delline->next=plink;
  359.                 headline->count--;
  360.             }
  361.             delline=delline->next;
  362.         }
  363.         if(delline == 0&&i!=1)
  364.         {
  365.             printf("沒有找到輸入的航班號(hào)。\n");
  366.             return 0;
  367.         }
  368.                             i=0;
  369.         break;
  370.     }
  371.     case 3:
  372.     {
  373.         printf("請(qǐng)輸入您要修改的航班的航班號(hào):");
  374.         char line_num3[10];
  375.         scanf("%s",line_num3);
  376.         temp = headline->next;
  377.         while(temp)
  378.         {
  379.             if(strcmp(temp->line_num, line_num3)==0)
  380.             {
  381.                                                         int B;
  382.                                                         i=1;
  383.                 printf("請(qǐng)選擇要修改的內(nèi)容??\n");
  384.                 printf("--1,座位總數(shù)。--\n");
  385.                 printf("--2,起始地址。--\n");
  386.                 printf("--3,目的地址。--\n");
  387.                                                         printf("--4,起飛時(shí)間。--\n");
  388.                                                         printf("--5,降落時(shí)間。--\n");
  389.                 printf("--6,原票價(jià)。--\n");
  390.                 printf("--7,折扣。--\n");
  391.                 printf("--0,無修改內(nèi)容。--\n");
  392.                 scanf("%d",&B);
  393.                 while(B){
  394.                                                         switch(B){
  395.                               case 1: {
  396.                                                                               int c;
  397.                                       int y=1;
  398.                                                                               while(y){
  399.                                                                                                   printf("請(qǐng)輸入需修改的艙位等級(jí):(1:一等座 2:二等座 3:三等座 )");
  400.                                                                                        scanf("%d",&c);
  401.                                                                                        printf("請(qǐng)輸入修改后的座位數(shù):");
  402.                                                                                                             switch(c){
  403. case1: temp->left=(temp->total)-(temp->left);
  404.                                                                                                                               scanf("%d",&temp->class1);
  405.                                                                                                        temp->left=(temp->left)+(temp->class1);
  406.                                                                                                                                                        break;
  407. case2: temp->left=(temp->left)-(temp->class2);
  408.                                                                                                                                scanf("%d",&temp->class2);
  409.                                                                                                                   temp->left=(temp->left)+(temp->class2);
  410.                                                                                                                                                         break;
  411. case3: temp->left=(temp->left)-(temp->c  lass3);
  412.                                                                                                                                scanf("%d",&temp->class3);
  413.                                                                                                                   temp->left=(temp->left)+(temp->class3);
  414.                                                                                                                                                         break;
  415.                                                                                                       }
  416.                                                                                                   printf("是否繼續(xù)修改座位數(shù):(1:是 0:否)");
  417.                                                                                                   scanf("%d",&y);
  418.                                                                                         }
  419.                                                                                                   temp->total=(temp->class1)+(temp->class2)+(temp->class3);
  420.                                       break;}
  421.                               case 2: printf("請(qǐng)輸入修改后的起始地址:");
  422.                                       scanf("%s",temp->start_place);
  423.                                       break;
  424.                               case 3: printf("請(qǐng)輸入修改后的目的地址:");
  425.                                       scanf("%s",temp->end_place);
  426.                                       break;
  427.                               case 4: printf("請(qǐng)輸入修改后的起飛時(shí)間:");
  428.                                       scanf("%s",temp->time1);
  429.                                       break;
  430.                               case 5: printf("請(qǐng)輸入修改后的降落時(shí)間:");
  431.                                       scanf("%s",temp->time2);
  432.                                       break;
  433.                               case 6: printf("請(qǐng)輸入修改后的原票價(jià):");
  434.                                       scanf("%lf",&temp->price0);
  435.                                       if(temp->discount) temp->price=(temp->price0)*(temp->discount);
  436.                                       else temp->price=temp->price0;
  437.                                       break;
  438.                               case 7: printf("請(qǐng)輸入修改后的折扣:");
  439.                                       scanf("%lf",&temp->discount);
  440.                                       if(temp->discount) temp->price=(temp->price0)*(temp->discount);
  441.                                       else temp->price=temp->price0;
  442.                                       break;              }
  443.                                                         display_line(temp);
  444.                                                         printf("請(qǐng)選擇要修改的內(nèi)容??\n");
  445.                                                         printf("--1,座位總數(shù)。--\n");
  446.                 printf("--2,起始地址。--\n");
  447.                 printf("--3,目的地址。--\n");
  448.                                                         printf("--4,起飛時(shí)間。--\n");
  449.                                                         printf("--5,降落時(shí)間。--\n");
  450.                 printf("--6,原票價(jià)。--\n");
  451.                 printf("--7,折扣。--\n");
  452.                 printf("--0,無修改內(nèi)容。--\n");
  453.                                                         scanf("%d",&B);               }   }
  454.             temp=temp->next;    }
  455.         if(temp==0&&i!=1)
  456.         {
  457.             printf("沒有找到輸入的航班號(hào)。\n");
  458.             return 0;    }
  459.         break;   }   }
  460.     return 1;}
  461. /*****************************************************
  462. *功能描述:輸出一個(gè)客戶信息到屏幕
  463. *輸入?yún)?shù):無
  464. *輸出參數(shù):姓名,證件號(hào)碼,座號(hào),航班號(hào),起飛時(shí)間,降落時(shí)間,
  465. ******************************************************/
  466. void display_client(client *node=NULL)//輸出一個(gè)客戶節(jié)點(diǎn)的信息到屏幕。
  467. {
  468.     if(node==NULL)
  469.     {  printf("參數(shù)為空!輸出失敗.\n");
  470.         return;  }
  471.     printf("\n");
  472.     printf("訂單編號(hào)\t\t 姓名\t\t 證件號(hào)碼\t 艙位等級(jí)\t 座號(hào)\t\n");
  473.     printf("%s\t\t",node->file);
  474.               printf("         %s\t\t",node->name);
  475.     printf(" %s\t\t",node->id);
  476.     printf(" %d\t\t",node->class0);
  477.     printf(" %d\t\n",node->seat_num);
  478.     printf("起飛時(shí)間\t 降落時(shí)間\t 航班\t\t\n");
  479.     printf("%s\t\t",node->time1);
  480.     printf("%s\t\t",node->time2);
  481.     printf("%s\t\t",node->line_num);
  482.     printf("\n");}
  483. void display_client1(client *node=NULL)//輸出一個(gè)客戶節(jié)點(diǎn)的信息到屏幕。
  484. {   if(node==NULL)
  485.     {   printf("參數(shù)為空!輸出失敗.\n");
  486.         return;   }
  487.     printf("\n");
  488.     printf("姓名\t\t 證件號(hào)碼\t 座號(hào)\t 起飛時(shí)間\t 降落時(shí)間\t 航班\t\t\n");
  489.     printf("%s\t\t",node->name);
  490.     printf("%s\t\t",node->id);
  491.     printf("無座位,等待中");
  492.     printf("%s\t\t",node->time1);
  493.     printf("%s\t\t",node->time2);
  494.     printf("%s\t\t",node->line_num);
  495.     printf("\n");}

  496. /*****************************************************
  497. *功能描述:輸出未售完票航班信息
  498. *輸入?yún)?shù):無
  499. *輸出參數(shù):headline
  500. ******************************************************/
  501. void display_left_airline(airlinehead *headline)//輸出未售完票的航班的信息。
  502. {   airline *node = headline->next;
  503.     if(!node)
  504.     {
  505.         printf("當(dāng)前沒有航班。。");    }
  506.     for(; node->left!=node->total; node = node->next)
  507.     {
  508.         display_line(node);    }  }
  509. /*****************************************************
  510. *功能描述:訂票
  511. *輸入?yún)?shù):line_num,id
  512. *輸出參數(shù):
  513. *返回值:1-正確,0-錯(cuò)誤
  514. ******************************************************/
  515. int bookticket(airlinehead * headline,clienthead *headclient)//訂票
  516. {
  517. //headclient->count=0;
  518.     printf("請(qǐng)輸入航班號(hào): ");
  519.     char line_num[10] ;
  520.     scanf("%s",line_num);
  521.     airline *temp;
  522.     temp=headline->next;
  523.     while(temp)
  524.     {   if(strcmp(temp->line_num,line_num)==0)
  525.         {     break;      }
  526.         temp=temp->next;     }
  527.     if(!temp)
  528.     {    printf("未找到該航班\n");
  529.         return 0;     }
  530.     if(temp->left==0)
  531.     {   int x;
  532.         printf("對(duì)不起,您所定航班已無余座\n請(qǐng)進(jìn)行選擇:1 退出\n            2 排隊(duì)\n");
  533.                             scanf("%d",&x);
  534.                             switch(x) {               case 1:
  535.         printf("請(qǐng)選擇其他合適的航班.\n");
  536.         printf("全部");
  537.         display_all_line(headline);
  538.         printf("\n");
  539.                             return 0;
  540.                             case 2:int z;
  541.                             printf("替補(bǔ)人員信息補(bǔ)錄\n");
  542.                             client *custom1=new client;
  543.                   printf("請(qǐng)輸入你的證件號(hào)碼: ");
  544.                                scanf("%s",custom1->id);
  545.                   printf("\n");
  546.                   printf("請(qǐng)輸入你的姓名:");
  547.                                scanf("%s",custom1->name);
  548.                                printf("\n");
  549.                             printf("請(qǐng)輸入訂票量:");
  550.                             scanf("%d",&z);
  551.                             custom1->next=NULL;
  552.                   strcpy(custom1->line_num,line_num);
  553.                                strcpy(custom1->time1,temp->time1);
  554.                   strcpy(custom1->time2,temp->time2);   
  555.                   headclient->count++;
  556.                   custom1->next = headclient->next;
  557.                   headclient->next = custom1;
  558.                             printf("\n替補(bǔ)信息加入完成!\n");
  559.                             display_client1(custom1); printf("   需要座位\n ");printf("    %d\n",z);
  560.                             printf("替補(bǔ)輸入完成\n");
  561.                             return 1;   }  }
  562.     client *custom=new client;
  563.     printf("請(qǐng)輸入你的證件號(hào)碼: ");
  564.     scanf("%s",custom->id);
  565.     printf("\n");
  566.     printf("請(qǐng)輸入你的姓名:");
  567.     scanf("%s",custom->name);
  568.               printf("一等艙座位數(shù)\t\t 二等艙座位數(shù)\t\t 三等艙座位數(shù)\t\n");
  569.               printf("%d\t\t",temp->class1);
  570.               printf("         %d\t\t",temp->class2);
  571.               printf("         %d\t\t",temp->class3);
  572.               printf("\n");
  573.               printf("請(qǐng)輸入理想艙位等級(jí):(1:一等艙 2:二等艙 3:三等艙)");
  574.               scanf("%d",&custom->class0);
  575.     custom->seat_num=temp->total-temp->left+1;
  576.     custom->next=NULL;
  577.     strcpy(custom->line_num,line_num);
  578.     strcpy(custom->time1,temp->time1);
  579.     strcpy(custom->time2,temp->time2);
  580.     temp->left--;
  581.     switch(custom->class0){
  582.                   case 1: temp->class1--;
  583.                           break;
  584.                   case 2: temp->class2--;
  585.                                     break;
  586.                             case 3: temp->class3--;
  587.                                     break;              }
  588.     headclient->count++;
  589.     custom->next = headclient->next;
  590.     headclient->next = custom;
  591.               strcat(custom->file,custom->id);
  592.     printf("訂票成功!祝您旅途愉快~~");
  593.     display_client(custom);
  594.     return 1;  }
  595. /*****************************************************
  596. *功能描述:退票
  597. *輸入?yún)?shù):id
  598. *輸出參數(shù):
  599. *返回值:1-正確,0-錯(cuò)誤
  600. ******************************************************/
  601. int returnticket(airlinehead * headline,clienthead *headclient)//退票。
  602. {
  603.     printf("請(qǐng)輸入顧客的證件號(hào)碼:id: ");
  604.     char id[20];
  605.     scanf("%s",id);
  606.     airline *airlinetemp= headline->next;
  607.     client *clienttemp= headclient->next;
  608.     if(NULL==airlinetemp)
  609.     {   printf("當(dāng)前沒有航班信息。\n");
  610.         return 0;    }
  611.     char line_num[10]; int rclass;
  612.     client *delnext ;
  613.     if(strcmp(clienttemp->id,id)==0)//要?jiǎng)h除的節(jié)點(diǎn)為第一個(gè)時(shí)。。。
  614.     {
  615.         strcpy(line_num,clienttemp->line_num);
  616.                             rclass=clienttemp->class0;
  617.         headclient->next=clienttemp->next;
  618.         delete clienttemp;
  619.         while(airlinetemp)//修改對(duì)票客戶所對(duì)應(yīng)的航班的售票信息。
  620.         {
  621.             if(strcmp(line_num,airlinetemp->line_num)== 0 )
  622.             {
  623.                 airlinetemp->left++;
  624.                                                         switch(rclass){
  625.                                                                       case 1: airlinetemp->class1++;
  626.                                                                               break;
  627.                                                                       case 2: airlinetemp->class2++;
  628.                                                                               break;
  629.                                                                       case 3: airlinetemp->class3++;
  630.                                                                               break;                                          }
  631.                 break;           }
  632.             airlinetemp = airlinetemp->next;     }
  633.         printf("退票成功!希望有機(jī)會(huì)與您繼續(xù)合作。");
  634.         return 1;  }
  635.     while(clienttemp->next)//要?jiǎng)h除 的節(jié)點(diǎn)不是第一個(gè)時(shí)。。。
  636.     {
  637.         if(strcmp(clienttemp->next->id,id)==0)
  638.         {  strcpy(line_num,clienttemp->next->line_num);
  639.             delnext = clienttemp->next->next;
  640.             delete clienttemp->next;
  641.             clienttemp->next=delnext;
  642.             while(airlinetemp)//修改對(duì)票客戶所對(duì)應(yīng)的航班的售票信息。
  643.             {
  644.                 if(strcpy(line_num,airlinetemp->line_num)== 0 )
  645.                 {
  646.                     airlinetemp->left++;
  647.                     switch(rclass){
  648.                                                                       case 1: airlinetemp->class1++;
  649.                                                                               break;
  650.                                                                       case 2: airlinetemp->class2++;
  651.                                                                               break;
  652.                                                                       case 3: airlinetemp->class3++;
  653.                                                                               break;              }
  654.                     break;   }
  655.                airlinetemp = airlinetemp->next;     }
  656.             printf("退票成功!有機(jī)會(huì)繼續(xù)合作。\n\n");
  657.             return 1;   break;    }
  658.         clienttemp = clienttemp->next;     }
  659.     printf("未找到該客戶的信息。\n");
  660.     return 0;  }
  661. /*****************************************************
  662. *功能描述:退票
  663. *輸入?yún)?shù):id
  664. *輸出參數(shù):
  665. *返回值:1-正確,0-錯(cuò)誤
  666. ******************************************************/


  667. void main_menu()
  668. {
  669.     printf("********<( ̄︶ ̄)/  歡迎使用飛機(jī)售票系統(tǒng) \( ̄︶ ̄)>********  \n\n");
  670.     printf("*** 1---- 錄入航班信息。*** \n\n");
  671.     printf("*** 2---- 查詢航線信息。*** \n\n");
  672.     printf("*** 3---- 客戶訂票。***\n\n");
  673.     printf("*** 4---- 客戶退票。*** \n\n");
  674.     printf("*** 5---- 輸出所有航班信息。*** \n\n");
  675.               printf("*** 6---- 修改航班信息。*** \n\n");
  676.     printf("*** 0---- 退出系統(tǒng) 。*** \n\n");
  677.     printf("**************************************************************** \n\n");}
  678. int main(void)
  679. {    airlinehead *headline=new airlinehead;
  680.     headline->count=0;
  681.     headline->next=NULL;
  682.     clienthead *headclient=new clienthead;
  683.     headclient->count=0;
  684.     headclient->next=NULL;
  685.     while(1)
  686.     {    main_menu();
  687.         int x;
  688.         printf("請(qǐng)選擇您要進(jìn)行的操作: ");
  689.         scanf("%d",&x);
  690.         printf("\n");
  691.         switch(x)
  692.         {     case 1:
  693.             int num;
  694.              printf("請(qǐng)選擇您要錄入的航班的數(shù)目: ");
  695.            scanf("%d",&num);
  696.              printf("\n");
  697.             import(num,headline);
  698.              printf("\n");
  699. //display_all_line(headline);
  700.             printf("航班信息成功錄入。。 ");
  701.             printf("\n\n");
  702.             break;

  703.         case 2:
  704.             airline *find;
  705.             find=query(headline);
  706.             if(find)
  707.             {
  708.                 display_line(find);     }
  709.             break;
  710.         case 3:
  711.        *****限于篇幅余下內(nèi)容下載附件******
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
程序報(bào)告-改二.doc (498.27 KB, 下載次數(shù): 41)


回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2019-6-16 00:59 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2019-6-16 01:00 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:680791 發(fā)表于 2020-1-3 23:50 | 顯示全部樓層
我這還有一個(gè)代碼,可以互相交流一下

航空旅客.zip

2.24 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表