版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</b></p><p><b> 設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 希爾排序,冒泡排序,快速排序</p><p> 學(xué)生姓名:***** </p><p> 學(xué)生學(xué)號(hào):2009070142**</p><p>
2、; 指導(dǎo)教師:***** </p><p> 所在班級(jí):09級(jí)電信2班</p><p> 成績(jī)打分: </p><p><b> 信息與工程學(xué)院</b></p><p> 2011年6月25日</p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)<
3、/b></p><p> 2010—2011學(xué)年第二學(xué)期</p><p> 專(zhuān)業(yè): 電子信息工程 </p><p><b> 學(xué)號(hào): </b></p><p><b> 姓名: </b></p><p> 課程設(shè)計(jì)名稱(chēng):數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)&
4、lt;/p><p> 設(shè)計(jì)題目: 簡(jiǎn)單數(shù)據(jù)的排序 </p><p> 設(shè)計(jì)依據(jù)、要求及主要內(nèi)容(可另加附頁(yè)):</p><p><b> 要求:</b></p><p> 要有較好的界面,能夠進(jìn)行三種算法的選擇。</p><p> 每一種算法要求有實(shí)現(xiàn)的過(guò)程,即能看到運(yùn)行的步驟。<
5、/p><p> 對(duì)于同一組數(shù)據(jù)進(jìn)行三種算排序后,應(yīng)給出相應(yīng)的效率評(píng)估,確定最適合的算法。</p><p> 要求有良好的編程風(fēng)格和注釋。</p><p> 指導(dǎo)教師(簽字): </p><p> 批準(zhǔn)日期: 年 月 日</p><p><b> 摘
6、 要</b></p><p> 本設(shè)計(jì)采用VC作為開(kāi)發(fā)工具,通過(guò)希爾排序、冒泡排序與快速排序方法來(lái)實(shí)現(xiàn)一系列數(shù)據(jù)結(jié)構(gòu)的排序工作。三種方法思路不同,方法各異,體現(xiàn)了排序的多樣性。通過(guò)這次課程設(shè)計(jì),使我們了解更多的排序知識(shí),了解課設(shè)的有關(guān)程序過(guò)程,以掌握更多的排序方法。</p><p> 關(guān)鍵詞:C語(yǔ)言;排序</p><p><b> 目
7、 錄</b></p><p> 1課題描述……………………………………………………………………………。。。1</p><p> 2 邏輯設(shè)計(jì)……………………………………………………………………………2</p><p> 3 詳細(xì)設(shè)計(jì)………………………………………………………………………………4</p><p> 4 程序代
8、碼……………………………………………………………………………6</p><p> 5程序調(diào)試與測(cè)試………………………………………………………………………12</p><p> 6總結(jié)……………………………………………………………………………………14</p><p> 參考文獻(xiàn)………………………………………………………………………………15</p>
9、<p><b> 1 課題描述</b></p><p> 1.1 課題的現(xiàn)實(shí)意義</p><p> 現(xiàn)實(shí)學(xué)習(xí)生活中,常會(huì)遇到一些數(shù)目較大數(shù)據(jù)繁雜的數(shù)值進(jìn)行排序,徒手進(jìn)行排序很困難,這時(shí)候我們就希望有一個(gè)小軟件來(lái)幫忙,所以便著手開(kāi)發(fā)了這個(gè)對(duì)數(shù)據(jù)進(jìn)行有序排序的程序,以便用于自己的學(xué)習(xí)工作。這些大大方便了我們的生活給我們更多的選擇和實(shí)現(xiàn)方式。</p
10、><p> 這個(gè)程序可以直接輸入多個(gè)數(shù)據(jù),不需要任何轉(zhuǎn)換,就可以直接輸出這些數(shù)據(jù)排序后的結(jié)果并輸出移動(dòng)的次數(shù)。并且從操作簡(jiǎn)單、界面清晰、靈活、實(shí)用、方便等要求出發(fā),它所能完成的主要計(jì)算功能有以下幾個(gè)方面:冒泡排序,快速排序,希爾排序。計(jì)算器的設(shè)計(jì)使我們所學(xué)到的c語(yǔ)言知識(shí)在現(xiàn)實(shí)中得到檢驗(yàn)!</p><p> 信息時(shí)代是科技和經(jīng)濟(jì)發(fā)展的產(chǎn)物,軟件產(chǎn)業(yè)是信息時(shí)代的產(chǎn)物,它在我們的生活工作中發(fā)揮著
11、越來(lái)越大的作用,這個(gè)排序程序的設(shè)計(jì)對(duì)我們知識(shí)的掌握有很大的作用,更能方便他人,可行性很強(qiáng)!</p><p><b> 1.2 軟件環(huán)境</b></p><p> 開(kāi)發(fā)環(huán)境: visual c++ 6.0+Windows XP 操作系統(tǒng)</p><p><b> 2邏輯設(shè)計(jì)</b></p><p&g
12、t;<b> 2.1總設(shè)計(jì)步驟</b></p><p> 總的設(shè)計(jì)過(guò)程不是很難,但是由于在編程過(guò)程中有的粗心大意,或是外部客觀條件,造成了調(diào)試很多次。但最終在老師的幫助下完成了設(shè)計(jì)。</p><p> 第一、在紙上列出提綱,把具體大概的設(shè)計(jì)思路用偽代碼寫(xiě)出。</p><p> 第二、編寫(xiě)代碼,把各個(gè)函數(shù)分別編寫(xiě)出來(lái),快速排序,冒泡排序,
13、希爾排序……。</p><p> 第三、程序上機(jī)運(yùn)行,查找錯(cuò)誤。</p><p> 第四、錯(cuò)誤代碼的分析。查找原因。</p><p> 第五、調(diào)試。對(duì)于運(yùn)行成功的代碼進(jìn)行測(cè)試,看是否符合題目要求。使用多組數(shù)據(jù)進(jìn)行測(cè)試。直至不存在著偶然性。</p><p> 第五、總結(jié)。過(guò)程當(dāng)中有許多庫(kù)函數(shù)的調(diào)用,使用過(guò)程中讓我們對(duì)C語(yǔ)言函數(shù)的深刻了解
14、。</p><p> 第六、編寫(xiě)報(bào)告書(shū)。編寫(xiě)報(bào)告書(shū)的過(guò)程有些復(fù)雜,由于在實(shí)踐過(guò)程當(dāng)中的每一步都要用再次的實(shí)現(xiàn),并用書(shū)面報(bào)告提交。但是這個(gè)充分的是我們對(duì)這個(gè)編程的理解。</p><p> 2.2 三個(gè)主要函數(shù)的設(shè)計(jì)原理:</p><p> ?。?)快 速 排 序</p><p> 基本思路:通過(guò)一次分割,將無(wú)序序列分成兩部分,其中一部分的
15、元素值均不大于后一部分的元素值。然后用同樣的方法對(duì)每一部分進(jìn)行分割,一直到每一個(gè)子序列的長(zhǎng)度小于或等于1為止。</p><p> 具體過(guò)程:設(shè)序列P進(jìn)行分割。首先,從第一個(gè)、中間一個(gè)、最后一個(gè)元素中選出中項(xiàng),設(shè)為P[k],并將P[k]賦給t,再將序列中的第一個(gè)元素移到P[k]的位置上。然后,再設(shè)兩個(gè)指針i、j分別指向起始和最后位置上:(1)將i逐漸增大,與此同時(shí)比較P[i]與t的大小,直到發(fā)現(xiàn)P[i]>t
16、,將P[i]移到P[j]的位置上;(2)將j逐漸減小,與此同時(shí)比較P[j]與t的大小,直到發(fā)現(xiàn)P[j]<t,將P[j]移到P[i]的位置上;直到i=j為止,這時(shí)將t移到P[i]的位置上。最后就得到了排序結(jié)果。</p><p> ?。?)冒 泡 排 序</p><p> 目的:按要求從大到小或從小到大排序。</p><p> 基本思路:對(duì)尚未排序的各元素從頭
17、到尾依次依次比較相鄰的兩個(gè)元素是否逆序(與欲排順序相反),若逆序就交換這兩元素,經(jīng)過(guò)第一輪比較排序后便可把最大(或最?。┑脑嘏藕?,然后再用同樣的方法把剩下的元素逐個(gè)進(jìn)行比較,就得到了你所要的順序??梢钥闯鋈绻蠳個(gè)元素,那么一共要進(jìn)行n-1輪比較,第I輪要進(jìn)行j=n-i次比較。(如:有5個(gè)元素,則要進(jìn)行5-1輪比較。第3輪則要進(jìn)行5-3次比較)</p><p> ?。?)希 爾 排 序</p>&
18、lt;p> 基本思想:將整個(gè)無(wú)序序列分割成若干小的子序列分別進(jìn)行插入排序。</p><p> 序列分割方法:將相隔某個(gè)增量h的元素構(gòu)成一個(gè)子序列。在排序過(guò)程中,逐次減小這個(gè)增量,最后當(dāng)h減到1時(shí),進(jìn)行一次插入排序,排序就完成。增量序列一般采用:ht=2t-1,1≤t≤[log2n],其中n為待排序序列的長(zhǎng)度。</p><p><b> 3詳細(xì)設(shè)計(jì)</b>&
19、lt;/p><p> 3.1希爾排序函數(shù)的設(shè)計(jì)</p><p> int Shell(int num[],int n,int d)</p><p><b> {</b></p><p> int i,j,t,k=0;</p><p> for(i=0;i<d;i++)</p>
20、;<p><b> {</b></p><p> for(j=i;j<n;j+=d)</p><p><b> {</b></p><p> for(t=j+d;t<n;t+=n)</p><p><b> {</b></p>
21、<p> if(num[j]>num[t])</p><p><b> {</b></p><p> num[t]=num[t]+num[j];</p><p> num[j]=num[t]-num[j];</p><p> num[t]=num[t]-num[j];</p>&l
22、t;p><b> k=k+3;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&l
23、t;p><b> return k;</b></p><p><b> }</b></p><p> int sort5(int num[],int n)</p><p><b> {</b></p><p> int i,j,k=0;</p>&
24、lt;p> for(i=2;n/i;i++)</p><p><b> {</b></p><p><b> j=n/i;</b></p><p> k+=Shell(num,n,j);</p><p><b> }</b></p><p&g
25、t;<b> return k;</b></p><p><b> }}</b></p><p> 3.2快速排序函數(shù)的設(shè)計(jì)</p><p> int Quick(int num[],int low,int high)</p><p><b> {</b></p
26、><p> int low1=low,high1=high;</p><p> int pivotkey=num[low];</p><p><b> int k=0;</b></p><p> while(low<high)</p><p><b> {</b>
27、</p><p> while(low<high&&pivotkey<=num[high])high--;</p><p> num[low]=num[high];k++;</p><p> while(low<high&&pivotkey>=num[low])low++;</p><
28、p> num[high]=num[low];k++;</p><p><b> }</b></p><p> num[low]=pivotkey;k++;</p><p> if(low-low1>1&&low<=high1)k+=Quick(num,low1,low-1);</p>&l
29、t;p> if(high1-high>1&&high>=low1)k+=Quick(num,high+1,high1);</p><p><b> return k;</b></p><p><b> }</b></p><p> int sort6(int num[],int n
30、)</p><p><b> {</b></p><p> int k,low=0,high=n-1;</p><p> k=Quick(num,low,high);</p><p><b> return k;</b></p><p><b> }<
31、;/b></p><p> 3.3冒泡排序函數(shù)的設(shè)計(jì)</p><p> int sort15(int num[],int n)</p><p><b> {</b></p><p> int k=0,i=0,j;</p><p> while(i<n-1)</p>
32、<p><b> {</b></p><p><b> j=0;</b></p><p> while(j<n-i-1)</p><p><b> {</b></p><p> if(num[j]>num[j+1])</p>&
33、lt;p><b> {</b></p><p> num[j]=num[j]+num[j+1];</p><p> num[j+1]=num[j]-num[j+1];</p><p> num[j]=num[j]-num[j+1];</p><p><b> k+=3;</b><
34、;/p><p><b> }</b></p><p><b> j++;</b></p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b>&l
35、t;/p><p><b> return k;</b></p><p><b> 4程序原代碼</b></p><p> #include<iostream></p><p> #include<conio.h></p><p> #includ
36、e<stdlib.h></p><p> #include<cmath></p><p> #define max 20</p><p> using namespace std;</p><p> typedef struct</p><p><b> {</b>
37、;</p><p> int num[max+1];</p><p><b> int n;</b></p><p><b> }str;</b></p><p> typedef struct str12</p><p><b> {</b>
38、</p><p><b> int num;</b></p><p> struct str12 *next;</p><p><b> }str12;</b></p><p><b> //希爾排序</b></p><p> int Shel
39、l(int num[],int n,int d)</p><p><b> {</b></p><p> int i,j,t,k=0;</p><p> for(i=0;i<d;i++)</p><p><b> {</b></p><p> for(j=i;
40、j<n;j+=d)</p><p><b> {</b></p><p> for(t=j+d;t<n;t+=n)</p><p><b> {</b></p><p> if(num[j]>num[t])</p><p><b> {&
41、lt;/b></p><p> num[t]=num[t]+num[j];</p><p> num[j]=num[t]-num[j];</p><p> num[t]=num[t]-num[j];</p><p><b> k=k+3;</b></p><p><b>
42、 }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> return k;</b></p><p><b&g
43、t; }</b></p><p> int sort5(int num[],int n)</p><p><b> {</b></p><p> int i,j,k=0;</p><p> for(i=2;n/i;i++)</p><p><b> {</b
44、></p><p><b> j=n/i;</b></p><p> k+=Shell(num,n,j);</p><p><b> }</b></p><p><b> return k;</b></p><p><b> }
45、</b></p><p><b> //快速排序</b></p><p> int Quick(int num[],int low,int high)</p><p><b> {</b></p><p> int low1=low,high1=high;</p>
46、<p> int pivotkey=num[low];</p><p><b> int k=0;</b></p><p> while(low<high)</p><p><b> {</b></p><p> while(low<high&&piv
47、otkey<=num[high])high--;</p><p> num[low]=num[high];k++;</p><p> while(low<high&&pivotkey>=num[low])low++;</p><p> num[high]=num[low];k++;</p><p>&l
48、t;b> }</b></p><p> num[low]=pivotkey;k++;</p><p> if(low-low1>1&&low<=high1)k+=Quick(num,low1,low-1);</p><p> if(high1-high>1&&high>=low1)k+
49、=Quick(num,high+1,high1);</p><p><b> return k;</b></p><p><b> }</b></p><p> int sort6(int num[],int n)</p><p><b> {</b></p>
50、;<p> int k,low=0,high=n-1;</p><p> k=Quick(num,low,high);</p><p><b> return k;</b></p><p><b> }</b></p><p><b> //冒泡排序</b&g
51、t;</p><p> int sort15(int num[],int n)</p><p><b> {</b></p><p> int k=0,i=0,j;</p><p> while(i<n-1)</p><p><b> {</b></p&
52、gt;<p><b> j=0;</b></p><p> while(j<n-i-1)</p><p><b> {</b></p><p> if(num[j]>num[j+1])</p><p><b> {</b></p>
53、<p> num[j]=num[j]+num[j+1];</p><p> num[j+1]=num[j]-num[j+1];</p><p> num[j]=num[j]-num[j+1];</p><p><b> k+=3;</b></p><p><b> }</b>
54、</p><p><b> j++;</b></p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p><p><b> return k;&
55、lt;/b></p><p><b> }</b></p><p> int Begin()</p><p><b> {</b></p><p> cout<<"\t\t#============================================#
56、"<<endl;</p><p> cout<<"\t\t| 本軟件使用說(shuō)明 |"<<endl;</p><p> cout<<"\t\t#============================================#"&
57、lt;<endl;</p><p> cout<<"\t\t| 為了方便測(cè)試,本軟件自帶了三組數(shù)據(jù),按 |"<<endl;</p><p> cout<<"\t\t| 'o'或'O'以外的任意鍵即自行調(diào)用默認(rèn)的測(cè)試數(shù) |"<<endl;</p>
58、;<p> cout<<"\t\t| 據(jù),而不需要用戶(hù)輸入數(shù)據(jù)。如果對(duì)默認(rèn)的數(shù)據(jù) |"<<endl;</p><p> cout<<"\t\t| 持有質(zhì)疑,你可以按'O'或'o'鍵,然后輸入你的 |"<<endl;</p><p> cout<&
59、lt;"\t\t| 數(shù)據(jù),數(shù)據(jù)與數(shù)據(jù)之間用空格鍵格開(kāi),輸入完畢 |"<<endl;</p><p> cout<<"\t\t| 用回車(chē)結(jié)束,否則按錯(cuò)誤處理。為了減少不必要 |"<<endl;</p><p> cout<<"\t\t| 的麻煩,允許輸入數(shù)據(jù)的個(gè)數(shù)被限定為最多15個(gè) |&qu
60、ot;<<endl;</p><p> cout<<"\t\t| 過(guò)多的輸入就會(huì)被打斷,或者整數(shù)位數(shù)超過(guò)八位 |"<<endl;</p><p> cout<<"\t\t| 本軟件就會(huì)認(rèn)為此數(shù)輸入結(jié)束,并輸出空格,并 |"<<endl;</p><p> cou
61、t<<"\t\t| 將接下來(lái)的輸入計(jì)為下一個(gè)數(shù)。請(qǐng)按任意鍵… |"<<endl;</p><p> cout<<"\t\t| 2009年 |"<<endl;</p><p> cout<<"\t\t#=
62、===========================================#"<<endl;</p><p> cout<<"\t\t#============================================#"<<endl;</p><p> int choice=getch();syste
63、m("cls");</p><p> if(79==choice||111==choice)return 1;</p><p> else return 0;</p><p><b> }</b></p><p> void main()</p><p><b&g
64、t; {</b></p><p> int i,j=0,k;</p><p><b> str d[3];</b></p><p> char data[10];</p><p> int read=1;</p><p> for(i=0;i<15;i+=2)d[0]
65、.num[j++]=15-i;</p><p> for(i=1;i<15;i+=2)d[0].num[j++]=15-i;</p><p> d[0].n=15;</p><p> for(i=0;i<15;i++)d[1].num[i]=15-i;</p><p> d[1].n=15;</p><
66、p> for(i=0;i<15;i++)d[2].num[i]=i+1;</p><p> d[2].n=15;</p><p><b> str num;</b></p><p> int t=Begin();</p><p><b> if(0==t)</b></p&
67、gt;<p><b> {</b></p><p> for(j=0;j<3;j++)</p><p><b> {</b></p><p> num=d[j];cout<<"\t原始數(shù)據(jù)為:";</p><p> for(i=0;i&l
68、t;num.n;i++)cout<<num.num[i]<<" ";</p><p> cout<<"1、 希爾排序 :";</p><p> k=sort5(num.num,num.n); </p><p> for(i=0;i<num.n;i++)cout&
69、lt;<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"<<k<<endl;</p><p><b> num=d[j];</b></p><p> cout<<"2、 快速排序
70、:";</p><p> k=sort6(num.num,num.n); </p><p> for(i=0;i<num.n;i++)cout<<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"<<k&l
71、t;<endl;</p><p><b> num=d[j];</b></p><p> cout<<"3、 冒泡排序 :";</p><p> k=sort15(num.num,num.n); </p><p> for(i=0;i<num.n;i++
72、)cout<<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"<<k<<endl;</p><p><b> }</b></p><p><b> }</b></p>
73、<p><b> else</b></p><p><b> {</b></p><p> cout<<"請(qǐng)輸入測(cè)試數(shù)據(jù):"<<endl;</p><p> for(i=0;i<20&&read;i++)</p><
74、p><b> {</b></p><p> for(j=0;data[j]=getch();j++)</p><p><b> {</b></p><p> if(data[j]==13)</p><p><b> {</b></p><p&
75、gt; if(j&&data[j-1]!=43&&data[j-1]!=45)d[0].num[i]=atoi(data);</p><p><b> else i--;</b></p><p> cout<<endl<<endl;</p><p><b> break;
76、</b></p><p><b> }</b></p><p> else if(data[j]>57||(data[j]<48&&data[j]!=32&&data[j]!=43&&data[j]!=45))</p><p><b> {</b>
77、;</p><p><b> read=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p> else if(j&&(data[j]==43||data[j]==45))</p>
78、<p><b> {</b></p><p><b> read=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p> else if(j&&j<
79、8&&data[j]==32)</p><p><b> {</b></p><p> d[0].num[i]=atoi(data);</p><p> cout<<" ";</p><p><b> break;</b></p>
80、<p><b> }</b></p><p> else if(j==8)</p><p><b> {</b></p><p> d[0].num[i]=atoi(data);</p><p> cout<<data[j]<<" &quo
81、t;;</p><p><b> break;</b></p><p><b> }</b></p><p> else cout<<data[j];</p><p><b> }</b></p><p> if(i==14||da
82、ta[j]==13)break;</p><p><b> }</b></p><p><b> if(read)</b></p><p><b> {</b></p><p> d[0].n=i+1;j=0;system("cls");</p
83、><p> num=d[j];cout<<"\t原始數(shù)據(jù)為:";</p><p> for(i=0;i<num.n;i++)cout<<num.num[i]<<" ";cout<<'\n';</p><p> cout<<"1、 希
84、爾排序 :";</p><p> k=sort5(num.num,num.n); </p><p> for(i=0;i<num.n;i++)cout<<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"<&l
85、t;k<<endl;</p><p><b> num=d[j];</b></p><p> cout<<"2、 快速排序 :";</p><p> k=sort6(num.num,num.n); </p><p> for(i=0;i<num.
86、n;i++)cout<<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"<<k<<endl;</p><p><b> num=d[j];</b></p><p> cout<<"
87、;3、 冒泡排序 :";</p><p> k=sort15(num.num,num.n); </p><p> for(i=0;i<num.n;i++)cout<<num.num[i]<<" ";</p><p> cout<<"\t數(shù)據(jù)移動(dòng)次數(shù)為:"
88、<<k<<endl;</p><p><b> }</b></p><p><b> }</b></p><p><b> if(read)</b></p><p><b> {</b></p><p&g
89、t; getch();system("cls");</p><p> cout<<endl<<"\t是否繼續(xù)?(y/n)";</p><p> while(read)</p><p><b> {</b></p><p> t=getch();&l
90、t;/p><p> if(t==13||t==78||t==89||t==110||t==121)read=0;</p><p> else cout<<endl<<"請(qǐng)輸入回車(chē) 或 n(N) 或 y(Y) 作選擇… "<<endl;</p><p><b> }</b></p&g
91、t;<p> if(t==13||t==89||t==121)</p><p><b> {</b></p><p> system("cls");</p><p><b> main();</b></p><p><b> }</b>
92、;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> system("cls");</p><p><b> main();&
93、lt;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> 5程序調(diào)試與測(cè)試</b></p><p> 程序調(diào)試是指對(duì)程序的查錯(cuò)和排錯(cuò)。為了便于查錯(cuò)、閱讀,在設(shè)計(jì)該程序的過(guò)程中我們采用了結(jié)構(gòu)化程序方法編輯,添
94、加了盡可能多的注釋?zhuān)@就為接下來(lái)的調(diào)試過(guò)程帶來(lái)了很多方便。</p><p> 經(jīng)過(guò)仔細(xì)檢查之后進(jìn)行上機(jī)調(diào)試。進(jìn)行編譯,如果在編譯和連接過(guò)程中發(fā)現(xiàn)錯(cuò)誤,屏幕上顯示了出錯(cuò)信息,根據(jù)提示找到出錯(cuò)的位置,加以改正,再進(jìn)行編譯……如此反復(fù),直到順利通過(guò)編譯和連接為止。在本次實(shí)習(xí)過(guò)程中碰到的編譯、連接的錯(cuò)誤主要有:缺少變量定義,定義位置不正確、語(yǔ)法錯(cuò)誤、轉(zhuǎn)義字符漏用、邏輯錯(cuò)誤等。</p><p>&
95、lt;b> 5.1錯(cuò)誤原因分析</b></p><p><b> 出現(xiàn)以下提示:</b></p><p><b> 圖1</b></p><p> 根據(jù)電腦所給的提示出現(xiàn)語(yǔ)法錯(cuò)誤,缺少變量的定義大多的語(yǔ)法錯(cuò)誤在通過(guò)書(shū)本參考下能夠修改。主要是平時(shí)看書(shū)不仔細(xì)、不太注意而產(chǎn)生的。如沒(méi)有注意具體數(shù)據(jù)使用是
96、有一定的范圍限定;過(guò)分重視分號(hào)的重要性而在for、if、while語(yǔ)句中畫(huà)蛇添足加分號(hào)。由于此程序需要的結(jié)果很多,所以得一一例舉面:</p><p> 5.2進(jìn)入程序主界面如下:</p><p><b> 圖2</b></p><p> 5.3要求輸入數(shù)據(jù)界面如下:</p><p><b> 圖3<
97、;/b></p><p> 5.4輸入數(shù)據(jù)界面如下:</p><p><b> 圖4</b></p><p> 5.5運(yùn)行結(jié)果界面如下:</p><p><b> 圖5</b></p><p><b> 6 總結(jié)</b></p>
98、;<p> 這次課程設(shè)計(jì)使我收獲很大,對(duì)我以前學(xué)習(xí)的知識(shí)進(jìn)行了綜合性的考察,這次課程設(shè)計(jì)我主要是應(yīng)用以前學(xué)習(xí)的C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)的一些知識(shí)才完成了這個(gè)數(shù)據(jù)排序的課程設(shè)計(jì)。</p><p> 首先,綜合課程設(shè)計(jì)讓我把以前學(xué)習(xí)到的知識(shí)得到鞏固和進(jìn)一步的提高認(rèn)識(shí),對(duì)已有知識(shí)有了更進(jìn)一步的理解和認(rèn)識(shí),再次,我在課程設(shè)計(jì)中碰到了很多的問(wèn)題,我通過(guò)查閱相關(guān)書(shū)籍,資料,通過(guò)自己鉆研,特別是得到了高虎老師的諄諄教
99、導(dǎo),高老師給予了我很大的幫助,不僅給了我思路上的開(kāi)闊,還讓我認(rèn)識(shí)到了自己對(duì)以前所學(xué)知識(shí)的不足方面。</p><p> 隨著社會(huì)發(fā)展,以及軟件事業(yè)飛速發(fā)展,人們對(duì)各類(lèi)軟件的要求越來(lái)越迫切,這次的課程設(shè)計(jì)我主要應(yīng)用所學(xué),通過(guò)在visual c++編程環(huán)境下,運(yùn)用函數(shù)定義與調(diào)用的知識(shí),進(jìn)行基于各種排序函數(shù)的設(shè)計(jì),它易于實(shí)現(xiàn)對(duì)數(shù)據(jù)的排序并且能夠比較出哪種排序的優(yōu)越性,這是它的一大優(yōu)勢(shì)。</p><p
100、> 當(dāng)然,通過(guò)這次課程設(shè)計(jì),我也發(fā)現(xiàn)了自身的很多不足之處,在以后的學(xué)習(xí)中,我會(huì)不斷的完善自我,不斷進(jìn)取,能使自己在C語(yǔ)言編程這方面有一個(gè)大的發(fā)展。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 蕭秋水,文娟.網(wǎng)絡(luò)編程之vb篇[M].北京.清華出版社。</p><p> [2] 方敏,張彤.網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)[
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--冒泡排序法
- 數(shù)據(jù)結(jié)構(gòu) 利用冒泡排序算法進(jìn)行排序
- 課程設(shè)計(jì)---設(shè)計(jì)排序典型算法(冒泡與快速排序)
- 10個(gè)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)例二叉樹(shù)建立遍歷冒泡排序快速排序等
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--排序算法
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--排序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---排序綜合
- 10個(gè)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)例二叉樹(shù)建立遍歷冒泡排序快速排序等.txt
- 數(shù)據(jù)結(jié)構(gòu)排序綜合課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)排序綜合課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)排序綜合課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---排序算法比較
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--排序算法比較
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--內(nèi)部排序演示
- 快速排序詳析的設(shè)計(jì)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—綜合排序的設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--排序算法演示系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---撲克牌排序
評(píng)論
0/150
提交評(píng)論