版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 信息科學(xué)與技術(shù)學(xué)院</b></p><p> 程序設(shè)計基礎(chǔ)課程設(shè)計報告</p><p> 題目名稱: 飛機(jī)訂票系統(tǒng) </p><p> 學(xué)生姓名: 李梹 </p><p> 學(xué) 號: 201150805
2、4 </p><p> 專業(yè)班級: 計科2班 </p><p> 指導(dǎo)教師: 鄭瑤 </p><p><b> 2012年7月5號</b></p><p> 1 課程設(shè)計題目與要求3</p><p
3、> .1.1 設(shè)計題目3</p><p><b> 1.2設(shè)計要求3</b></p><p><b> .2總體設(shè)計3</b></p><p><b> .3 詳細(xì)設(shè)計4</b></p><p><b> 調(diào)試與測算5</b>&l
4、t;/p><p><b> .4 調(diào)試分析6</b></p><p> ˙5 課程設(shè)計總結(jié)10</p><p><b> 6.附錄10</b></p><p> 7 指導(dǎo)教師意見27</p><p> 1 課程設(shè)計題目與要求</p><p&g
5、t; 假定民航機(jī)場共有n個航班,每個航班有一航班號、確定的航線(起始站、終點站)、確定的飛行時間(星期幾)和一定的成員訂額。設(shè)計一飛機(jī)訂票系統(tǒng),使之能提供下列服務(wù):</p><p> 1、航班信息錄入功能(航班信息用文件保存) </p><p> 包括航班號、起始站、重點站、機(jī)票數(shù)等;</p><p> 2、航班信息瀏覽功能</p><p
6、><b> 3、按航班號排序</b></p><p> 4、查詢航線:按航班號查詢</p><p> 5、承辦訂票和退票業(yè)務(wù)(可選項)</p><p><b> 2,總體設(shè)計:</b></p><p> 編寫一個飛機(jī)訂票系統(tǒng)的程序,使該系統(tǒng)能夠?qū)崿F(xiàn)對航班信息的錄入、瀏覽、排序、查詢以
7、及訂票、退票的功能。根據(jù)題目要求,首先要制作一個主菜單顯示出各個操作的提示可供用戶選擇,進(jìn)而一步步地深入操作。根據(jù)主菜單的內(nèi)容再進(jìn)一步編制具體操作的函數(shù),各個功能均用專門編制的函數(shù)來完成。這就是看到題目后的最初的思路。</p><p><b> 3,詳細(xì)設(shè)計</b></p><p><b> (10)流程圖</b></p>&l
8、t;p><b> .4 調(diào)試分析</b></p><p><b> ˙5 課程設(shè)計總結(jié)</b></p><p> 開始對c語言只是一種零散的認(rèn)識,作為一個c語言的初學(xué)者對編程沒有明確的概念,只是對語句的格式與編程規(guī)定有了一個初步了解。也不知道編程的主要目的是什么,依據(jù)什么來編?為什么要編程?編出來又能干什么?通過對這一飛機(jī)訂票系統(tǒng)的學(xué)
9、習(xí),知道了c語言在實際應(yīng)用中的作用,明確了學(xué)c語言的意義。</p><p> 對c語言編程經(jīng)驗的掌握要從實踐中積累,在程序調(diào)試的過程中遇到的錯誤能夠正確的識別并改正,使我收益很大。</p><p> 熟悉了調(diào)試的方法和步驟,對c語言編程過程中可能遇到的各種錯誤有了深刻的認(rèn)識與理解,并能夠迅速的根據(jù)提示解決程序的錯誤:</p><p> 對變量賦值時,要用“=”
10、,而表示相等時用“==”。</p><p> 程序語句后的注釋有時會很有用,會幫助我們更好的理解程序,在程序調(diào)試時根據(jù)注釋也可以幫我們快速準(zhǔn)確的了解出錯處程序的意思,做出快速的更正。</p><p> 使用函數(shù)時要注意先聲明。</p><p> 使用fp=fopen(“\\……”)標(biāo)明地址時要注意使用“\\”。</p><p> 通過
11、實用函數(shù)流程圖,使我更深入的理解了語句的使用,特別是對循環(huán)語句的理解與掌握:</p><p> dowhile(表達(dá)式)</p><p> {循環(huán)體{循環(huán)體</p><p> }while(表達(dá)式);}注意兩個循環(huán)結(jié)構(gòu)的使用,特別是“;”的使用。</p><p> 使我體會到了
12、流程圖在c語言學(xué)習(xí)中的重要性。一個清晰的流程圖能使我們的程序簡潔、有條理并易于理解,大大提高編程效率。流程圖能夠幫我們形成一種整體的構(gòu)想,使具體的事物抽象化,條理化,再用程序語言表達(dá)出來。</p><p> 流程圖的掌握不僅對c語言學(xué)習(xí)有很大幫助,而且在各個學(xué)科里都可以利用其思想,生活中也不例外,比如說“統(tǒng)籌思想“,就相當(dāng)于編程前先畫流程圖然后根據(jù)流程圖編寫程序,而轉(zhuǎn)化到實際生活中就是做事前要有一個合理的安排,
13、然后按照安排有條理的做事。</p><p><b> 6,附錄</b></p><p><b> 第一部分:源程序</b></p><p> #include <stdio.h></p><p> #include <string.h></p><
14、p> #include <stdlib.h></p><p> #define N 1000</p><p> typedef struct plane</p><p><b> {</b></p><p> char ID[10]; /*航班代號*/</p><p>
15、; char BePlace[10];/*飛機(jī)起飛地點*/</p><p> char EnPlace[10];/*飛機(jī)降落終點*/</p><p> char data[15];/*飛機(jī)起飛時間*/</p><p> int max;/*飛機(jī)最大乘客人數(shù)*/</p><p> int price;/*飛機(jī)票價*/</p>
16、;<p> int num;/*飛機(jī)已售票數(shù)*/</p><p><b> }PLANE;</b></p><p> PLANE ti[N];</p><p> int n;/*當(dāng)前的航班數(shù)目*/</p><p> void menu();</p><p> void m
17、enu1();</p><p> void input(int i)</p><p><b> {</b></p><p> printf("請輸入航班代號:\n");</p><p> scanf("%s",ti[i].ID);</p><p>
18、 printf("請輸入起飛地點:\n");</p><p> scanf("%s",ti[i].BePlace);</p><p> printf("請輸入降落地點:\n");</p><p> scanf("%s",ti[i].EnPlace);</p><
19、p> printf("請輸入起飛時間:\n");</p><p> scanf("%s",ti[i].data);</p><p> printf("請輸入航班的最大載客人數(shù):\n");</p><p> scanf("%d",&ti[i].max);</p&
20、gt;<p> printf("請輸入航班的票價:\n");</p><p> scanf("%d",&ti[i].price);</p><p> ti[i].num=0;</p><p><b> }</b></p><p> void ente
21、r()</p><p><b> {</b></p><p><b> int i;</b></p><p> system( "cls" ); </p><p> printf("請輸入航班的數(shù)目(0-%d)?:",N);</p>&l
22、t;p> scanf("%d",&n); /*要輸入的記錄個數(shù)*/</p><p> printf("\n請輸入數(shù)據(jù)\n\n");</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p>
23、<p> printf("\n請輸入第 %d 航班記錄.\n",i+1);</p><p> input(i); /*調(diào)用輸入函數(shù)*/</p><p><b> }</b></p><p> getchar(); </p><p>&l
24、t;b> menu();</b></p><p><b> }</b></p><p> void printf_one(int i) /*顯示一個記錄的函數(shù)*/</p><p><b> {</b></p><p>
25、; printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);</p><p><b> }</b></p><p> void browse()
26、</p><p><b> {</b></p><p><b> int i;</b></p><p> system( "cls" ); </p><p> puts("\n-------------------------------------------
27、-------------------------");</p><p> printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p
28、> printf_one(i);</p><p> printf("\n");</p><p><b> }</b></p><p> getchar();</p><p> getchar();</p><p><b> menu();</
29、b></p><p><b> }</b></p><p> void order() /*排序模塊(按平均成績)*/</p><p><b> {</b></p><p><b> int i,j;</b>&l
30、t;/p><p> struct plane s;</p><p> system( "cls" ); </p><p> for(i=0;i<n;i++) /*冒泡法排序*/</p><p><b> {</b></p><p> for
31、(j=i+1;j<n;j++)</p><p> if(strcmp(ti[i].data,ti[j].data)>0)</p><p><b> {</b></p><p><b> s=ti[i];</b></p><p> ti[i]=ti[j];</p>&
32、lt;p><b> ti[j]=s;}</b></p><p><b> }</b></p><p><b> browse();</b></p><p><b> }</b></p><p> void search_time()<
33、/p><p><b> {</b></p><p> int i,m=0;</p><p> struct plane s;</p><p> system( "cls" ); </p><p> printf("\n\nEnter the time:"
34、;);</p><p> scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p> puts("\n--------------------------------------------------------------------");</p><p> pri
35、ntf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(strcmp(s.data,ti[i].data)==0)</p><p>
36、<b> {</b></p><p><b> m++;</b></p><p> if((m!=0)&&(m%10==0)) /*目的是分屏顯示*/</p><p><b> {</b></p><p> printf(&
37、quot;\n\nPress any key to contiune . . .");</p><p> getchar();</p><p> puts("\n\n");</p><p><b> }</b></p><p> printf_one(i); </p>
38、<p> printf("\n");</p><p> /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b> }</b></p><p><b> }</b></p><p> puts("\n------------------------
39、--------------------------------------------");</p><p> getchar(); /*按任意健*/</p><p> getchar(); </p><p><b> menu1();</b></p>&l
40、t;p><b> }</b></p><p> void serch_end()</p><p><b> {</b></p><p> int i,m=0;</p><p> struct plane s;</p><p> system( "c
41、ls" ); </p><p> printf("\n\nEnter the end Place:");</p><p> scanf("%s",s.EnPlace); /*輸入要到達(dá)的地方*/</p><p> puts("\n---------------------
42、-----------------------------------------------");</p><p> printf("\n\t航班代號 起飛地點 降落地點 起飛時間 票價 最大乘客 已售票數(shù)\n");</p><p> for(i=0;i<n;i++)</p><p><b> {</
43、b></p><p> if(strcmp(ti[i].EnPlace,s.EnPlace)==0)</p><p><b> {</b></p><p><b> m++;</b></p><p> if((m!=0)&&(m%10==0))
44、 /*目的是分屏顯示*/</p><p><b> {</b></p><p> printf("\n\nPress any key to contiune . . .");</p><p> getchar();</p><p> puts("\n\n");</
45、p><p><b> }</b></p><p> printf_one(i); </p><p> printf("\n");</p><p> /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b> }</b></p><
46、p><b> }</b></p><p> puts("\n--------------------------------------------------------------------");</p><p> getchar(); /*按任意健*/</p>&l
47、t;p> getchar(); </p><p><b> menu1();</b></p><p><b> }</b></p><p> void menu1()</p><p><b> {</b></p><p><b>
48、; int n,w1;</b></p><p><b> do</b></p><p><b> {</b></p><p> system( "cls" ); /*清屏*/</p><p> puts("\t\
49、t\t\t 飛機(jī)售票操作!\n\n");</p><p> puts("\t\t*********************MENU*********************\n\n");</p><p> puts("\t\t\t\t1.按照時間排序");</p><p> puts("\t\t\t
50、\t2.按照時間查找航班");</p><p> puts("\t\t\t\t3.按照地點查找航班");</p><p> puts("\t\t\t\t4.返回主菜單");</p><p> puts("\n\n\t\t*****************************************
51、*****\n");</p><p> printf("Choice your number(1-4): [ ]\b\b");</p><p> scanf("%d",&n);</p><p> if(n<1||n>4) /*
52、對選擇的數(shù)字作判斷*/</p><p><b> {</b></p><p><b> w1=1;</b></p><p> printf("your choice is not between 1 and 4,Please input again:");</p><p>
53、 getchar();</p><p> getchar();</p><p><b> }</b></p><p> else w1=0;</p><p> } while(w1==1);</p><p><b> /*選擇功能*/</b></p>
54、<p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:order();break; </p><p> case 2:search_time();break; </p><p> case 3:ser
55、ch_end();break; </p><p> case 4:menu();break; </p><p><b> }</b></p><p><b> }</b></p><p> int search() /*查找模
56、塊*/</p><p><b> {</b></p><p><b> int i,k;</b></p><p> struct plane s;</p><p><b> k=-1;</b></p><p> system( "cl
57、s" ); </p><p> printf("\n\n請輸入要訂票的起飛地點:");</p><p> scanf("%s",s.BePlace); /*輸入要到達(dá)的地方*/</p><p> printf("\n\n請輸入要訂票的降落地點:");</p
58、><p> scanf("%s",s.EnPlace); </p><p> printf("\n\n請輸入要訂票的起飛時間:");</p><p> scanf("%s",s.data); /*輸入出發(fā)的時間*/</p><p> for(i=0;
59、i<n;i++) /*查找要修改的數(shù)據(jù)*/</p><p><b> {</b></p><p> if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.data,ti[i].da
60、ta)==0)</p><p><b> {</b></p><p> k=i; /*找到要修改的記錄*/</p><p> printf_one(k);</p><p> break; /*調(diào)用顯示一個記錄的函數(shù)*/</p>
61、<p><b> }</b></p><p><b> }</b></p><p><b> if(k==-1)</b></p><p><b> {</b></p><p> printf("\n\nNO exist!&
62、quot;);</p><p> return -1;</p><p><b> }</b></p><p><b> else</b></p><p><b> return k;</b></p><p><b> }</b&
63、gt;</p><p> void book()</p><p><b> {</b></p><p><b> int i;</b></p><p> system( "cls" ); </p><p> printf("歡迎進(jìn)入售票
64、窗口!\n");</p><p> i=search();</p><p><b> if(i!=-1)</b></p><p><b> {</b></p><p> if(ti[i].num>=ti[i].max)</p><p><b>
65、; {</b></p><p> printf("\n該趟航班票已售完!");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p&g
66、t; ti[i].num++;</p><p> printf("\n訂票成功!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p&g
67、t; printf("該航班不存在!\n");</p><p> getchar(); </p><p> getchar(); /*按任意健*/</p><p><b> menu();</b></p><p><b> }<
68、/b></p><p> void back()</p><p><b> {</b></p><p> int i,k=-1;</p><p> struct plane s;</p><p> system( "cls" ); </p><
69、;p> printf("歡迎進(jìn)入退票窗口!\n");</p><p> printf("\n\n輸入航班代號:");</p><p> scanf("%s",s.ID); /*輸入要到達(dá)的地方*/</p><p> for(i=0;i<n;i++)
70、 /*查找要修改的數(shù)據(jù)*/</p><p><b> {</b></p><p> if(strcmp(s.ID,ti[i].ID)==0)</p><p><b> {</b></p><p> k=i; /*找到要修改的記
71、錄*/</p><p> printf_one(k);</p><p> break; /*調(diào)用顯示一個記錄的函數(shù)*/</p><p><b> }</b></p><p><b> }</b></p><p><b>
72、if(k==-1)</b></p><p><b> {</b></p><p> printf("\n\nNO exist!");</p><p><b> }</b></p><p><b> else</b></p>
73、<p><b> {</b></p><p> ti[i].num--;</p><p> printf("\n退票成功!\n");</p><p><b> }</b></p><p> getchar();
74、 /*按任意健*/</p><p> getchar(); /*按任意健*/</p><p><b> menu();</b></p><p><b> }</b></p><p> void save()</p><p&
75、gt;<b> {</b></p><p><b> int w=1;</b></p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><p> system( "cls"
76、 ); </p><p> if((fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","wt"))==NULL) /*以輸出打開方式,在此前的記錄被覆蓋*/</p><p><b> {</b></p><p> printf("\nCannot open fi
77、le\n");</p><p><b> return ;</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1
78、)</p><p><b> { </b></p><p> printf("file write error\n");</p><p><b> w=0;</b></p><p><b> }</b></p><p&
79、gt;<b> if(w==1)</b></p><p><b> {</b></p><p> printf("file save ok!\n");</p><p><b> }</b></p><p> fclose(fp);</p>
80、;<p> getchar();</p><p> getchar(); </p><p><b> menu();</b></p><p><b> }</b></p><p> void load()</p><p><b> {
81、</b></p><p><b> FILE *fp;</b></p><p><b> int i,w;</b></p><p><b> w=1;</b></p><p> system( "cls" ); </p>&
82、lt;p> if((fp=fopen("D:\\我的文檔\\桌面\\ticket.txt","rt"))==NULL)</p><p><b> {</b></p><p> printf("\nCan not open file\n");</p><p><b>
83、; w=0;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> n=0;</b></p><p> for(i=0;!feof(fp);i++)</p><p>
84、;<b> {</b></p><p> fread(&ti[i],sizeof(struct plane),1,fp);</p><p><b> n++;</b></p><p><b> }</b></p><p><b> n=n-1;<
85、;/b></p><p> fclose(fp);</p><p><b> if(w==1)</b></p><p> printf("Load file ok!");</p><p> getchar();</p><p> getchar(); &l
86、t;/p><p><b> menu();</b></p><p><b> }</b></p><p> void menu()</p><p><b> {</b></p><p><b> int n,w1;</b>&l
87、t;/p><p><b> do</b></p><p><b> {</b></p><p> system( "cls" ); /*清屏*/ /*清屏*/</p><p> puts("\t\t\t\t 飛機(jī)售票管理系統(tǒng)!\n
88、\n");</p><p> puts("\t\t*********************MENU*********************\n\n");</p><p> puts("\t\t\t\t1.輸入新航班");</p><p> puts("\t\t\t\t2.瀏覽 ");&l
89、t;/p><p> puts("\t\t\t\t3.航班操作");</p><p> puts("\t\t\t\t4.訂票");</p><p> puts("\t\t\t\t5.退票");</p><p> puts("\t\t\t\t6.保存");<
90、/p><p> puts("\t\t\t\t7.載入");</p><p> puts("\t\t\t\t8.退出");</p><p> puts("\n\n\t\t**********************************************\n");</p><p&
91、gt; printf("Choice your number(1-8): [ ]\b\b");</p><p> scanf("%d",&n);</p><p> if(n<1||n>8) /*對選擇的數(shù)字作判斷*/</p><p>&
92、lt;b> {</b></p><p><b> w1=1;</b></p><p> printf("your choice is not between 1 and 8,Please input enter to choice again:");</p><p> getchar(); <
93、/p><p> getchar();</p><p><b> }</b></p><p> else w1=0;</p><p> } while(w1==1);</p><p><b> /*選擇功能*/</b></p><p><b
94、> switch(n)</b></p><p><b> {</b></p><p> case 1:enter();break; /*輸入模塊*/</p><p> case 2:browse();break; /*瀏覽模塊*/</p><p> case 3:menu1()
95、;break; /*查找模塊*/</p><p> case 4:book();break; /*訂票模塊*/</p><p> case 5:back();break; /*退票模塊*/</p><p> case 6:save();break; /*保存模塊*/</p><p> case 7:lo
96、ad();break; /*加載模塊*/</p><p> case 8:exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 飛機(jī)訂票系統(tǒng)課程設(shè)計
- 飛機(jī)訂票系統(tǒng)課程設(shè)計
- 課程設(shè)計—飛機(jī)訂票系統(tǒng)
- 飛機(jī)訂票系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計——飛機(jī)訂票系統(tǒng)
- c課程設(shè)計報告飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計---飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計--飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計——飛機(jī)訂票系統(tǒng)
- c語言飛機(jī)訂票系統(tǒng)課程設(shè)計
- c++課程設(shè)計——飛機(jī)訂票系統(tǒng)
- 飛機(jī)訂票系統(tǒng)c語言課程設(shè)計
- 課程設(shè)計——飛機(jī)訂票系統(tǒng)程序設(shè)計
- c++課程設(shè)計報告--飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計報告---飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計報告飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計報告---飛機(jī)訂票系統(tǒng)
- c語言課程設(shè)計報告飛機(jī)訂票系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計飛機(jī)訂票系統(tǒng)
- c++課程設(shè)計報告飛機(jī)訂票管理系統(tǒng)
評論
0/150
提交評論