版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《C++程序設(shè)計》課程設(shè)計</p><p><b> 設(shè)計報告</b></p><p> 計算機(jī)科學(xué)與技術(shù)學(xué)院</p><p><b> 目錄</b></p><p> 需求分析……………………………………………3</p><p> 1.1輸入
2、形式………………………………………………3</p><p> 1.2輸出形式………………………………………………3</p><p> 1.3程序功能………………………………………………3</p><p> 1.4測試數(shù)據(jù)………………………………………………3</p><p> 概要設(shè)計……………………………………………3</p&
3、gt;<p> 2.1流程分析………………………………………………3</p><p> 2.2具體步驟………………………………………………3</p><p> 2.3功能模塊………………………………………………4</p><p> 詳細(xì)設(shè)計………………………………………………4</p><p> 3.1流程圖……………
4、……………………………………4</p><p> 3.2源代碼…………………………………………………5</p><p> 調(diào)試分析 ………………………………………… 14</p><p> 4.1調(diào)試……………………………………………………20</p><p> 4.2驗與總結(jié)………………………………………………21</p>
5、;<p> 5.參考文獻(xiàn)……………………………………………21</p><p><b> 第一章 需求分析</b></p><p> 本程序使用visual studio 2010 C++語言編寫,完成訂票系統(tǒng)的錄入,查詢,訂票,退票及增加、刪除、修改航班信息。</p><p> 1.1 輸入的形式和輸入值的范圍<
6、/p><p> 輸入的形式是數(shù)字、人名及編號。 輸入值的范圍:無。</p><p><b> 1.2輸出的形式</b></p><p> 輸出為訂票,包含姓名,座位號等。</p><p> 1.3程序所能達(dá)到的功能</p><p> 本程序編寫完成后能達(dá)到訂票的生成及修改,退訂,查詢和退出。
7、</p><p><b> 1.4測試數(shù)據(jù)</b></p><p> 進(jìn)入訂票系統(tǒng)后,選擇訂票,輸入姓名aaa。</p><p> 再根據(jù)選項依次選擇進(jìn)行測試。</p><p><b> 第二章 概要設(shè)計</b></p><p> 2.1 實現(xiàn)流程分析:</
8、p><p> 采用類模塊和文件想結(jié)合的方式實現(xiàn)該操作,首先定義一個airline類并將一些基本數(shù)據(jù)定義為類的共有成員,同時設(shè)置成員函數(shù)來設(shè)置數(shù)據(jù)和輸出數(shù)據(jù)。</p><p><b> 2.2具體步驟</b></p><p> 訂票:運(yùn)用類的成員函數(shù)設(shè)置數(shù)據(jù)并寫到文件中去,然后在后面的程序中讀出。</p><p> 退
9、票:將文件中的數(shù)據(jù)讀出,用for循環(huán)語句進(jìn)行查找并修改數(shù)據(jù)</p><p> 查詢:用for循環(huán)語句進(jìn)行查找并讀出,沒有數(shù)據(jù)的顯示錯誤</p><p> 主函數(shù):用while語句制作菜單,用戶根據(jù)需要進(jìn)行選擇</p><p><b> 2.3系統(tǒng)功能模塊</b></p><p> ?。?)錄入(航班相關(guān)記錄)功能模
10、塊</p><p> ?。?)查詢(航班相關(guān)記錄)功能模塊</p><p><b> ?。?)訂票功能模塊</b></p><p><b> ?。?)退票功能模塊</b></p><p> (4)退出系統(tǒng)功能模塊</p><p><b> 第三章 詳細(xì)設(shè)計&l
11、t;/b></p><p><b> 3.1流程圖</b></p><p><b> 3.2 源代碼</b></p><p> #include <stdio.h></p><p> #include <string.h></p><p>
12、; #include <malloc.h></p><p> #include "conio.h"</p><p> #define OK 1 //1.避免幻數(shù)出現(xiàn)(幻數(shù)即諸如0,1,100之類的數(shù)字常量,因為無法從字面上看出該數(shù)字代表的意義,所以通常用宏替換,讓人一看就明白其代表的意義,如ERROR錯誤,OK正確) </p><
13、p> #define ERROR 0 //2.便于修改,如果要更改ERROR或OK的定義只需修改宏定義即可,不用再在編碼中尋找一個個修改。</p><p> typedef struct airline{</p><p> char air_num[8];</p><p> char plane_num[8];</p><p>
14、 char end_place[20];</p><p> int total;</p><p><b> int left;</b></p><p> struct airline *next;</p><p><b> }airline;</b></p><p>
15、; typedef struct customer{</p><p> char name[8];</p><p> char air_num[8];</p><p> int seat_num;</p><p> struct customer *next;</p><p> }customer;<
16、/p><p> airline *start_air() </p><p><b> {</b></p><p> airline *a;</p><p> a=(airline*)malloc(sizeof(airline));</p><p> if(a==NULL)</p>
17、<p> a->next=NULL;</p><p><b> return a;</b></p><p><b> }</b></p><p> customer *start_cus()</p><p><b> {</b></p>
18、<p> customer *c;</p><p> c=(customer*)malloc(sizeof(customer));</p><p> if(c==NULL)</p><p> c->next=NULL;</p><p><b> return c;</b></p>
19、<p><b> }</b></p><p> airline *modefy_airline(airline *l,char *air_num)</p><p><b> {</b></p><p> airline *p;</p><p> p=l->next;&l
20、t;/p><p> for(;p!=NULL;p=p->next)</p><p><b> {</b></p><p> if(strcmp(air_num,p->air_num)==0)</p><p><b> {</b></p><p> p->
21、;left++;</p><p><b> return l;</b></p><p><b> }</b></p><p> printf("沒有這趟航班!");</p><p><b> return 0;</b></p><
22、p><b> }</b></p><p><b> }</b></p><p> int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)</p><p><b> {&l
23、t;/b></p><p> airline *q;</p><p> q=(airline*)malloc(sizeof(airline));</p><p> strcpy(q->air_num,air_num);</p><p> strcpy(q->plane_num,plane_num);</p>
24、;<p> strcpy(q->end_place,end_place);</p><p> q->total=total;</p><p> q->left=left;</p><p> q->next=NULL;</p><p> (*p)->next=q;</p>&l
25、t;p> (*p)=(*p)->next;</p><p> return OK;</p><p><b> }</b></p><p> int insert_cus(customer **p,char *name,char *air_num,int seat_num)</p><p><b&
26、gt; {</b></p><p> customer *q;</p><p> q=(customer*)malloc(sizeof(customer));</p><p> strcpy(q->name,name);</p><p> strcpy(q->air_num,air_num);</p&g
27、t;<p> q->seat_num=seat_num;</p><p> q->next=NULL;</p><p> (*p)->next=q;</p><p> (*p)=(*p)->next;</p><p> return OK;</p><p><b&g
28、t; }</b></p><p> int book(airline *a,char *air_num,customer *c,char *name)</p><p><b> {</b></p><p> airline *p=a;</p><p> customer *q=c->next;
29、</p><p> p=a->next;</p><p> for(;q->next!=NULL;q=q->next){}</p><p> for(;p->next!=NULL;p=p->next)</p><p><b> {</b></p><p>
30、if(p->left>0)</p><p><b> {</b></p><p> printf("您的座位號是:%d",(p->total-p->left+1));</p><p> insert_cus(&q,name,air_num,p->total-p->left+1
31、);</p><p> p->left--;</p><p> return OK;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p
32、> printf("座位已滿");</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
33、;<p> int del_cus(customer *c,airline *l,char *name)</p><p><b> {</b></p><p> customer *p,*pr;</p><p> char air_num[8];</p><p><b> pr=c;&l
34、t;/b></p><p> p=pr->next;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(strcmp(p->name,name)==0)</p><p><b> {</b>
35、;</p><p> strcpy(air_num,p->air_num);</p><p> l=modefy_airline(l,air_num);</p><p> pr->next=p->next;</p><p> p=pr->next;</p><p> printf(&q
36、uot;完成!");</p><p> return OK; </p><p><b> }</b></p><p> pr=pr->next;</p><p> p=pr->next;</p><p><b> }</b></p>
37、;<p> printf("NO the customer!");</p><p> return ERROR;</p><p><b> }</b></p><p> int search_air(airline *head)</p><p><b> {</
38、b></p><p> airline *p=head->next;</p><p> printf("air_num plane_num end_place total left\n");</p><p> for(;p!=NULL;p=p->next)</p><p><b> {&
39、lt;/b></p><p> printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);</p><p><b> }</b></p><p> return O
40、K;</p><p><b> }</b></p><p> int search_cus(customer *head)</p><p><b> {</b></p><p> struct customer *q=head->next;</p><p>
41、printf("name air_num seat_num\n");</p><p> for(;q!=NULL;q=q->next)</p><p><b> {</b></p><p> printf("%-8s%-12s%-d\n",q->name,q->air_num,q-
42、>seat_num);</p><p><b> }</b></p><p> return OK;</p><p><b> }</b></p><p> int creat_air(airline **l)</p><p><b> {</
43、b></p><p> airline *p=*l;</p><p><b> int i=0;</b></p><p> char *air_num[3]={"航班1","航班2","航班3"};</p><p> char *plane_num
44、[3]={"plane1","plane2","plane3"};</p><p> char *end_place[3]={"北京","上海","天津"};</p><p> int total[3]={100,100,100};</p><p&
45、gt; int left[3]={52,54,76};</p><p> for(i=0;i<3;i++)</p><p> insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);</p><p> return OK;</p><p>
46、<b> }</b></p><p> int creat_cus(customer **l)</p><p><b> {</b></p><p> customer *p=*l;</p><p><b> int i=0;</b></p><p
47、> char *name[3]={"張三","李四","王五"};</p><p> char *air_num[3]={"航班1","航班2","航班3"};</p><p> int seat_num[3]={2,5,7};</p><
48、p> for(i=0;i<3;i++)</p><p> insert_cus(&p,name[i],air_num[i],seat_num[i]);</p><p> return OK;</p><p><b> }</b></p><p> void main()</p>
49、<p><b> {</b></p><p><b> int t=1;</b></p><p> customer *cus=start_cus();</p><p> airline *air=start_air();</p><p> char name[8],air_n
50、um[8],ch;</p><p> creat_air(&air);</p><p> creat_cus(&cus);</p><p> while(t==1)</p><p><b> {</b></p><p> printf("\n");&l
51、t;/p><p> printf("*********************************\n");</p><p> printf("* 歡迎來到訂票系統(tǒng)! *\n");</p><p> printf("* 訂票--------1 *\n");</p><p>
52、printf("* 退票--------2 *\n");</p><p> printf("* 查詢--------3 *\n");</p><p> printf("* 退出--------4 *\n");</p><p> printf("************************
53、*********\n");</p><p> ch=getch();</p><p> if(ch=='1')</p><p><b> {</b></p><p> printf("Please input a airline number:");</p&g
54、t;<p> scanf("%s",air_num);</p><p> printf("請輸入您的名字:");</p><p> scanf("%s",name);</p><p> book(air,air_num,cus,name);</p><p>&l
55、t;b> }</b></p><p><b> else</b></p><p> if(ch=='2')</p><p><b> {</b></p><p> printf("Please input the cancel name:&quo
56、t;);</p><p> scanf("%s",name);</p><p> del_cus(cus,air,name);</p><p><b> }</b></p><p><b> else</b></p><p> if(ch==
57、39;3')</p><p><b> {</b></p><p> search_air(air);</p><p> printf("\n"); </p><p> search_cus(cus);</p><p><b> }</b&g
58、t;</p><p><b> else</b></p><p> if(ch=='4')</p><p><b> {</b></p><p><b> t=0;</b></p><p><b> }</b&g
59、t;</p><p><b> }</b></p><p><b> } </b></p><p><b> 第四章 調(diào)試分析</b></p><p><b> 4.1調(diào)試</b></p><p><b>
60、進(jìn)入界面:</b></p><p><b> 選擇功能1:</b></p><p><b> 選擇功能2:</b></p><p><b> 選擇功能3:</b></p><p><b> 4.2經(jīng)驗與總結(jié)</b></p>
61、<p> 通過本次課程設(shè)計,我認(rèn)識到了自己的不足。對平時所學(xué)內(nèi)容局限于老師講的例子,不思舉一反三,不思融會貫通,所以在需要多個內(nèi)容課程設(shè)計時感到束手無策,手足無措。在上網(wǎng)查找了有關(guān)資料之后,自己也慢慢有了一點(diǎn)想法,根據(jù)課程設(shè)計的內(nèi)容要求一項一項完成。 C++語言的進(jìn)步讓我深刻的感受到任何所學(xué)的知識都需要實踐,沒有實踐就無法真正理解這些知識以及掌握它們,使其成為自己的財富。</p><p> 第六章
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++程序設(shè)計課程設(shè)計報告
- c++課程設(shè)計報告--飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計報告---飛機(jī)訂票系統(tǒng)
- 《c++語言程序設(shè)計》課程設(shè)計報告
- c++課程設(shè)計報告---飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計--學(xué)生選課系統(tǒng)程序設(shè)計報告
- c++課程設(shè)計--學(xué)生選課系統(tǒng)程序設(shè)計報告
- c++課程設(shè)計--c++程序設(shè)計語言
- c++課程設(shè)計-- c++面向?qū)ο蟪绦蛟O(shè)計
- c++課程設(shè)計報告飛機(jī)訂票管理系統(tǒng)
- c++面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告
- c++課程設(shè)計--學(xué)生選課系統(tǒng)程序設(shè)計報告.doc
- c++課程設(shè)計——飛機(jī)訂票系統(tǒng)
- c++程序設(shè)計課程設(shè)計--電費(fèi)管理系統(tǒng)
- c++程序設(shè)計課程設(shè)計--電費(fèi)管理系統(tǒng)
- 課程設(shè)計——飛機(jī)訂票系統(tǒng)程序設(shè)計
- 《c++程序設(shè)計》課程設(shè)計報告家庭月收支管理系統(tǒng)
- c++面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計報告---學(xué)籍管理系統(tǒng)
- 《c++程序設(shè)計課程設(shè)計——復(fù)數(shù)類》
- 《程序設(shè)計語言(c++)》課程設(shè)計
評論
0/150
提交評論