

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告書</b></p><p> 課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) </p><p> 題 目: 列車運(yùn)行查詢程序的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 系 名: </p><p> 專業(yè)班級(jí):
2、 </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p>&
3、lt;b> 年 月 日</b></p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 學(xué)生姓名: 專業(yè)班級(jí): </p><p> 指導(dǎo)教師: 工作單位: </p><p> 題 目: 列車運(yùn)行查詢程序的
4、設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 初始條件:</b></p><p> 理論:學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)》課程,掌握了基本的數(shù)據(jù)結(jié)構(gòu)和常用的算法;</p><p> 實(shí)踐:信息工程系實(shí)驗(yàn)室提供計(jì)算機(jī)及軟件開(kāi)發(fā)環(huán)境。</p><p> 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求)&l
5、t;/p><p> 1、系統(tǒng)應(yīng)具備的功能:</p><p> ?。?)輸入列車時(shí)刻表</p><p> (2)按各種查詢條件對(duì)列車時(shí)刻 </p><p><b> 2、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);</b></p><p><b> 3、主要算法設(shè)計(jì);</b></p>&l
6、t;p> 4、編程及上機(jī)實(shí)現(xiàn);</p><p> 5、撰寫課程設(shè)計(jì)報(bào)告,包括:</p><p><b> ?。?)設(shè)計(jì)題目;</b></p><p> ?。?)摘要和關(guān)鍵字;</p><p> ?。?)正文,包括引言、需求分析、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)、程序?qū)崿F(xiàn)及測(cè)試等;</p><p>
7、<b> ?。?)結(jié)束語(yǔ);</b></p><p><b> (5)參考文獻(xiàn)。</b></p><p> 時(shí)間安排: 2011年6月27日-2011年7月1日 (第19周)</p><p> 星期一 查閱資料</p><p> 星期二 系統(tǒng)設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),算法設(shè)計(jì)</p
8、><p> 星期三-星期四 編程并上機(jī)調(diào)試</p><p> 星期五 撰寫報(bào)告</p><p> 星期五 驗(yàn)收程序,提交設(shè)計(jì)報(bào)告書。</p><p> 指導(dǎo)教師簽名 2011年6月27日 </p><p> 系主任(或責(zé)任教師)簽名:
9、 2011年6月27日 </p><p><b> 目錄</b></p><p> 1引言………………………………………………1</p><p> 2需求分析…………………………………………1</p><p> 3數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)……………………………………5</p><p> 4
10、算法設(shè)計(jì)…………………………………………5</p><p> 5程序?qū)崿F(xiàn)及測(cè)試…………………………………9</p><p> 6不足之處…………………………………………13</p><p> 7設(shè)計(jì)體會(huì)…………………………………………13</p><p> 8結(jié)束語(yǔ)……………………………………………14</p><
11、p> 列車運(yùn)行查詢程序的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 摘要</b></p><p> 現(xiàn)要設(shè)計(jì)列車運(yùn)行查詢系統(tǒng),使乘客通過(guò)各種查詢方式得到所要查詢列車的基本信息,該信息包括列車號(hào)、始發(fā)地點(diǎn)、始發(fā)時(shí)間、抵達(dá)地點(diǎn)、抵達(dá)時(shí)間、票價(jià)等。如何用數(shù)據(jù)結(jié)構(gòu)中的算法來(lái)實(shí)現(xiàn)呢?我們知道,在數(shù)據(jù)結(jié)構(gòu)中有一種存儲(chǔ)結(jié)構(gòu)叫鏈?zhǔn)酱鎯?chǔ),鏈表的結(jié)點(diǎn)正好可以用來(lái)存儲(chǔ)每輛列車的基本信
12、息,結(jié)點(diǎn)的指針域能對(duì)該鏈表存儲(chǔ)的信息進(jìn)行查找、刪除,而查找方式又有兩種方式,一是基于列車編號(hào)的查找,二是根據(jù)抵達(dá)城鎮(zhèn)的查找。</p><p> 關(guān)鍵字:結(jié)點(diǎn)、 指針 、單鏈表的插入、列車查詢、單鏈表的查找</p><p><b> 1引言</b></p><p> 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是用一組任意的存儲(chǔ)單元來(lái)存儲(chǔ)表的結(jié)點(diǎn)。也就是說(shuō),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中
13、,存儲(chǔ)單元可以是相鄰的,也可以是不相鄰的;同時(shí),相鄰的存儲(chǔ)單元中的數(shù)據(jù),不一定是相鄰的結(jié)點(diǎn),因?yàn)榻Y(jié)點(diǎn)存儲(chǔ)的不連續(xù)性,因而它為沒(méi)有順序存儲(chǔ)列車信息提供的方便,能隨時(shí)將安排運(yùn)行的列車添加到鏈表中,又鏈表中的每一個(gè)結(jié)點(diǎn)還包含一個(gè)指針域,它保存了在邏輯上相鄰的結(jié)點(diǎn)的地址信息,該指針域中的指針,將線性表的n個(gè)結(jié)點(diǎn)按其邏輯順序連接在一起。因此查詢某輛列車的基本信息就要用到該指針域,因而單鏈表的結(jié)點(diǎn)結(jié)構(gòu)非常適合來(lái)存儲(chǔ)列車的基本信息。列車作為現(xiàn)代社會(huì)出
14、門旅行的重要工具,要怎樣不用出門就能了解到列車的具體開(kāi)往時(shí)間,進(jìn)而為自己的行程做好安排。因此網(wǎng)上列車查詢系統(tǒng)的建立為人們的出行提供了輕松與便捷,這種查詢系統(tǒng)也為車站的售票員提供了便利。結(jié)合實(shí)際,我想通過(guò)自己的知識(shí)嘗試著去編寫一個(gè)這樣的系統(tǒng),一來(lái)可以完成課程設(shè)計(jì),二來(lái)可以加深自己的數(shù)據(jù)結(jié)構(gòu)知識(shí),鍛煉自己的同時(shí)也提升了自己。</p><p><b> 2需求分析</b></p>
15、<p><b> 2.1提出需求</b></p><p> 在日常生活中,對(duì)于出行,人們最關(guān)心的就是列車的始發(fā)時(shí)間,到站時(shí)間以及票價(jià),要滿足人們的需求,故本系統(tǒng)將包括以下幾個(gè)方面</p><p> 1.列車基本信息的建立。用單鏈表的結(jié)點(diǎn)來(lái)存儲(chǔ)列車的基本信息,也可以用結(jié)點(diǎn)的插入來(lái)添加新增的列車班次或更新列車班次。</p><p>
16、 2.按不同的查詢條件來(lái)查詢列車的信息。通過(guò)列車的編號(hào)或者通過(guò)列車的始發(fā)地和目的地兩種方式查詢列車,方便找到適合自己的。通過(guò)將用戶輸入信息與鏈表存儲(chǔ)的相應(yīng)信息一一做比較找到所需的列車信息并輸出,利用指針的移動(dòng)來(lái)查找該信息。</p><p><b> 2.2開(kāi)發(fā)計(jì)劃</b></p><p> 更具所學(xué)課程的只是,結(jié)合實(shí)際情況,本系統(tǒng)開(kāi)發(fā)的計(jì)劃表如下:</p&
17、gt;<p><b> 開(kāi)發(fā)計(jì)劃表</b></p><p><b> 開(kāi)發(fā)進(jìn)度表</b></p><p> 2.3列車運(yùn)行查詢程序待發(fā)計(jì)劃的模塊劃分</p><p> 根據(jù)任務(wù)書中的設(shè)計(jì)要求,對(duì)該模擬進(jìn)行如下劃分:</p><p><b> 2.4系統(tǒng)流程圖<
18、/b></p><p><b> 3 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 3.1程序所需結(jié)構(gòu)體</p><p> 定義結(jié)構(gòu)體train,用來(lái)存儲(chǔ)列車信息</p><p> typedef struct train /*定義存儲(chǔ)列車信息的結(jié)構(gòu)體*/
19、 </p><p> {
20、 </p><p> char num[10]; /*列車號(hào)*/
21、 </p><p> char startcity[10]; /*出發(fā)城市*/
22、 </p><p> char reachcity[10]; /*目的城市*/
23、 </p><p> char takeofftime[10]; /*發(fā)車時(shí)間*/
24、 </p><p> char receivetime[10]; /*到達(dá)時(shí)間*/
25、 </p><p> int price; /*票價(jià)*/
26、 </p><p> }lieche; &l
27、t;/p><p> typedef struct node /*定義列車信息鏈表的結(jié)點(diǎn)結(jié)構(gòu)*/ </p><p> {
28、 </p><p> lieche data;
29、 /*數(shù)據(jù)域 */ </p><p> struct node *next;
30、/*指針域*/ </p><p> } Node, *Link;
31、 </p><p> 3.2程序中,列車的鏈表操作模塊</p><p> void menu() /*定義菜單選擇界面函數(shù)*/</p><p> void Traininfo(Link l) /*定義列車信息鏈表函數(shù)*</p><p> searchtrain(Link l) /*定義查詢列車信息的函
32、數(shù)*/</p><p> main() /*定義主函數(shù)*/</p><p> 3.3引用庫(kù)函數(shù)及變量的定義</p><p> #include<conio.h>
33、 </p><p> #include<stdio.h>
34、 </p><p> #include<stdlib.h>
35、 </p><p> #include<string.h>
36、 </p><p> #define DATE</p><p> p->data.num,p->data.startcity,p->data.reachcity,p->data.takeofftime,p->data.receivetime,p->data.price, p-&
37、gt;data.ticketnum</p><p> int c; /*定義全局變量,用來(lái)控制輸入列車信息的輛數(shù)*/</p><p><b> 4算法設(shè)計(jì)</b></p><p> 4.1列車信息鏈表的操作模塊</p><p> 這個(gè)模塊主要是實(shí)現(xiàn)列車鏈表的初始化、插入、以及各種查詢的操作,在進(jìn)行列車信息的存
38、儲(chǔ)時(shí),系統(tǒng)一邊為結(jié)點(diǎn)分配內(nèi)存,一邊將該結(jié)點(diǎn)插入到鏈表中后。在查詢時(shí),查詢按照畫面的提示,選擇不同的查詢方式進(jìn)行查詢,然后便顯示出了查詢結(jié)果。在本程序中是最基礎(chǔ),最基本的操作,但也是最主要的。</p><p><b> 4.2主菜單</b></p><p> 主菜單界面函數(shù),為用戶顯示該系統(tǒng)的功能,方便用戶進(jìn)行操作</p><p> voi
39、d menu() </p><p> {
40、 </p><p> puts("\n\n");
41、 </p><p> puts("\t\t|┄┄┄┄┄┄┄┄┄┄┄┄
42、┄┄┄|"); </p><p> puts("\t\t| The information of the train
43、|"); /* 列車信息*/ </p><p> puts("\t\t|┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄|");
44、 </p><p> puts("\t\t| 0:quit the system |");
45、/*退出該程序* / </p><p> puts("\t\t|1:Insert a train information |"
46、); /*輸入列車信息 */ </p><p> puts("\t\t|2:Search a train information |
47、"); /* 查詢列車信息*/ </p><p><b> } </b></p><p&
48、gt;<b> 4.3列車信息輸入</b></p><p> 自定義Traininfo()函數(shù),作用是添加列車信息
49、 </p><p> void Traininfo(Link l)
50、 </p><p> {
51、 </p><p> struct node *p,*r,*s; /*定義鏈表指針 */
52、 </p><p> char num[10];
53、 </p><p> int i; </p>&l
54、t;p> r=l; /* 讓r指向頭結(jié)點(diǎn)* / </p><
55、p> s=l->next; /*讓s指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)*/ </p&
56、gt;<p> while(r->next!=NULL) /*鏈表沒(méi)有存儲(chǔ)任何信息* / &
57、lt;/p><p> r=r->next; /*r后移,r指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn) */
58、 </p><p> for(i=1;i<=c;i++) /*控制輸入列車信息的輛數(shù) */
59、 </p><p> { printf("Please input the number of the train(0-return):");
60、 </p><p> scanf("%s",num); /*輸入列車編號(hào)*/
61、 </p><p> if(strcmp(num,"0")==0) /*檢索 輸入的列車編號(hào)是否為字符0*/
62、 </p><p> break;
63、 </p><p> while(s)
64、 </p><p> { </p>&l
65、t;p> if(strcmp(s->data.num,num)==0) /*檢測(cè)鏈表中是否已有該列車的基本信息*/ </p&
66、gt;<p> { </p><p> pr
67、intf("the train '%s' is existing!\n",num); /*輸出該列車信息已存在于鏈表中 * / </p>
68、;<p> return; </p><p> }
69、 </p><p> s=s->next;
70、*s后移指向下一個(gè)結(jié)點(diǎn) * </p><p> }
71、 </p><p> p=(struct node*)malloc(si
72、zeof(struct node)); /*申請(qǐng)新結(jié)點(diǎn)*/ </p><p> strcpy(p->data.num,num);
73、 /*輸入車號(hào)*/ </p><p> printf("Input the city where the tra
74、in will start:"); </p><p> scanf("%s",p->data.startcity);
75、 /*輸入出發(fā)城市*/ </p><p> printf("Input the city where the train will
76、 reach:"); </p><p> scanf("%s",p->data.reachcity);
77、 /*輸入到站城市*/ </p><p> printf("Input the time which the train take off:&q
78、uot;); </p><p> scanf("%s",p->data.takeofftime); /
79、*輸入出發(fā)時(shí)間*/ </p><p> printf("Input the time which the train receive:");
80、 </p><p> scanf("%s",p->data.receivetime); /*輸入到站時(shí)
81、間*/ </p><p> printf("Input the price of ticket:");
82、 </p><p> scanf("%d",p->data.price); /*票價(jià)*/
83、 </p><p> p->next=NULL;
84、 </p><p> r->next=p;
85、 </p><p> r=p; /*插入到鏈表中*/
86、 </p><p> }
87、 </p><p> clrscr(); /*清屏*/
88、 </p><p> menu(); /*調(diào)用主菜單界面函數(shù)*/
89、 </p><p><b> ?。?lt;/b></p><p><b> 4.4列車查詢</b></p><p> 自定義searchtrai()函數(shù) ,實(shí)現(xiàn)列車信息查詢,
90、程序代碼如下
91、 </p><p> searchtrain(Link l)
92、 </p><p> {
93、 </p><p> Node *r,*t; /*定義鏈表指針*/
94、 </p><p> int sel, k,flat=0;
95、 </p><p> char str1[5],str2[10],str3[10];
96、 </p><p> if(!l->next)
97、 </p><p> {
98、 </p><p> printf("There is not receord !"); /*鏈表為空*/
99、 </p><p> return;
100、 </p><p> }
101、 </p><p> printf("choose the way:\n1:according to the number of train;\n2:according to the city:\n");
102、 </p><p> scanf("%d",&sel); /*從兩種查詢方式中選擇一種 */
103、 </p><p> if(sel==1) /*選擇按列車編號(hào)查詢*/
104、 </p><p> {
105、 </p><p> printf("Input the number of train:");
106、 </p><p> scanf("%s",str1); /*輸入要查找的列車編號(hào)*/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---列車運(yùn)行查詢程序的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--程序的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(家族關(guān)系查詢系統(tǒng))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--家族關(guān)系查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 家族關(guān)系查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----行編輯程序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理程序的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈希表的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---城市鏈表的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--散列表的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——簡(jiǎn)單行編輯程序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)游程序
評(píng)論
0/150
提交評(píng)論