

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數學與計算機學院</b></p><p><b> 課程設計說明書</b></p><p> 課 程 名 稱: 數據結構課程設計 </p><p> 課 程 代 碼: </p><p> 題 目:
2、 猴子選大王 </p><p> 年級/專業(yè)/班: 2010級軟件工程2班 </p><p> 學 生 姓 名: </p><p> 學 號: </p><p> 開 始 時 間: 2011 年 11 月 9 日</
3、p><p> 完 成 時 間: 2011 年 12 月 30 日</p><p><b> 課程設計成績:</b></p><p> 指導教師簽名: 年 月 日</p><p> 數 據 結 構 課 程 設 計 任 務 書</p><p>&l
4、t;b> 一、設計題目</b></p><p><b> 猴子選大王</b></p><p><b> 主要內容</b></p><p> 一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個)按照1-m的順序圍坐一圈,從第1開始數,每數到第N個,該猴子就要離開此圈,這樣依次下來,直到圈
5、中只剩下最后一只猴子,則該猴子為大王。</p><p> 三、具體要求及應提交的材料</p><p> 要求:使用數組和循環(huán)鏈表等兩種以上的存儲方式來做輸入數據:輸入m,n m,n 為整數,n<m輸出形式:中文提示按照m個猴子,數n 個數的方法,輸出為大王的猴子是幾號 ,建立一個函數來實現(xiàn)此功能</p><p> 用C/C++語言編程實現(xiàn)上述內容,對
6、每個問題寫出一個算法實現(xiàn),并按數學與計算機學院對課程設計說明書規(guī)范化要求,寫出課程設計說明書,并提交下列材料:</p><p> 1)課程設計說明書打印稿一份</p><p> 2)課程設計說明書電子稿一份;</p><p> 3)源程序電子文檔一份。</p><p> 四、主要技術路線提示</p><p>
7、 可采用數組、鏈表數據結構實現(xiàn)。在此基礎上用C/C++實現(xiàn)其操作。</p><p><b> 五、進度安排</b></p><p> 按教學計劃規(guī)定,數據結構課程設計為2周,其進度及時間大致分配如下:</p><p><b> 六、推薦參考資料</b></p><p> [1] 嚴蔚敏,吳偉
8、民.數據結構.清華大學出版社出版。 </p><p> [2] 嚴蔚敏,吳偉民. 數據結構題集(C語言版) .清華大學出版社.2003年5月。</p><p> [3] 唐策善,李龍澎.數據結構(作C語言描述) .高等教育出版社.2001年9月</p><p> [4] 朱戰(zhàn)立.數據結構(C++語言描述)(第二版本).高等出版社出版.2004年4月</
9、p><p> [5] 胡學鋼.數據結構(C語言版) .高等教育出版社.2004年8月</p><p> [6] 徐孝凱 等著.數據結構(C語言描述).清華大學出版社.2004</p><p> 指導教師 簽名日期 年 月 日</p><p> 系 主 任 審核日期 年 月
10、 日</p><p><b> 目 錄 </b></p><p><b> 摘 要4</b></p><p><b> 引 言5</b></p><p><b> 1 需求分析5</b></p><p>
11、1.1任務與分析5</p><p><b> 1.2測試數據6</b></p><p><b> 2 概要設計6</b></p><p> 2.1 ADT描述6</p><p> 2.2程序模塊結構7</p><p> 2.21 結構體定義7</p
12、><p> 2.3 各功能模塊8</p><p><b> 3 詳細設計9</b></p><p> 3.1結構體定義9</p><p> 3.2 初始化10</p><p> 3.3 插入操作10</p><p><b> 4 調試分析15&
13、lt;/b></p><p> 5 用戶使用說明15</p><p><b> 6 測試結果16</b></p><p> 6.1 界面運行結果16</p><p> 6.2子功能測試運行結果:16</p><p> 6.3 結束界面(如下圖)18</p>
14、<p><b> 結 論19</b></p><p><b> 致 謝20</b></p><p><b> 參考文獻21</b></p><p><b> 摘 要 </b></p><p> 隨著計算機的普及,涉及計算機
15、相關的科目也越來越普遍,其中數據結構是計算機專業(yè)重要的專業(yè)基礎課程與核心課程之一,為適應我國計算機科學技術的發(fā)展和應用,學好數據結構非常必要,然而要掌握數據結構的知識非常難,所以對“數據結構”的課程設計比不可少。</p><p> 本課程設計主要通過使用循環(huán)鏈表、數組、以及單向鏈表,將猴子編號來數據化待選猴子坐成一個圈,并對圈內的猴子進行報數選取大王。最終輸出選出的猴子大王的編號。</p><
16、;p> 考慮到循環(huán)鏈表、數組、以及單向鏈表要使用不同的結構體、算法等,故將不同的三種方法設計為分開的三個類。只在主函數中調用其相應的函數。程序通過調試運行,結果與預計結果一致,初步實現(xiàn)了設計功能。</p><p> 關鍵詞:現(xiàn)代版;隊列(循環(huán)鏈表);隊列(數組);單向鏈表 ;數據結構</p><p><b> 引 言 </b></p>&l
17、t;p><b> 課程設計任務</b></p><p> 本課程設計主要實現(xiàn)在循環(huán)鏈表、數組、單向鏈表三種不同存儲結構下對問題(即:“一堆猴子都有編號,編號是1,2,3 ...m ,這群猴子(m個)按照1-m的順序圍坐一圈,從第1開始數,每數到第N個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最后一只猴子,則該猴子為大王?!保崿F(xiàn)要求。依據猴子的編號數據化將猴子用以上方式存儲
18、。并進行報數入隊,與出隊操作。最終輸出最后一位猴子編號,該猴子為此次當選的猴王。</p><p><b> B、課程設計性質</b></p><p> 數據結構課程設計是重要地實踐性教學環(huán)節(jié)。在進行了程序設計語言課和《數據結構》課程教學的基礎上,設計實現(xiàn)相關的數據結構經典問題,有助于加深對數據結構課程的認識。本課程設計是數據結構中的一個關于數組、鏈表等算法的實現(xiàn),
19、包括在存儲結構中添加、刪除操作,最后把結果輸出。此課程設計要求對數組存儲結構和鏈表存儲結構非常熟悉,并能熟練使用它們。</p><p><b> C、課程設計目的</b></p><p> 其目的是讓我們在學習完C++、數據結構等課程基礎上,掌握數據的存儲結構、掌握數據相應的存儲,添加,更新等操作,并用輸出結果。進一步掌握設計、實現(xiàn)較大系統(tǒng)的完整過程,包括系統(tǒng)分析
20、、編碼設計、系統(tǒng)集成、以及調試分析,熟練掌握數據結構的選擇、設計、實現(xiàn)以及操作方法,為進一步的應用開發(fā)打好基礎。</p><p><b> 1 需求分析</b></p><p><b> 1.1任務與分析</b></p><p> 猴子選大王,眾多猴子紛紛想成為大王,以一統(tǒng)群族。更便享有最高的地位與權利,因而導致猴子
21、間慘重的事件發(fā)生。在現(xiàn)代發(fā)展的社會中不管人類還是猴子都不想看到如此不幸的畫面。故利用計算機軟件來解決血腥的沖突。</p><p> 即將編號為1,2,……n的一群猴子按照1-n的順序圍坐成一個圈,所以可以用數組將其以循環(huán)的方式存儲,輸入猴子的總數m與要報的數n,且保證n<m。還用rear表示數組尾front數組頭,并進行報數,將未報到指定數的猴子加到rear;用鏈表時可以用指針結點將一個猴子作為一個結點存
22、儲,也用front表示鏈表頭,rear表示鏈表尾。將未到報數的猴子加到鏈表尾;循環(huán)鏈表就將鏈表的頭尾連接,不用將未報到n的猴子加到尾部,只需將報到n的猴子結點刪除。最后輸出最后一個猴子的信息,便得出該猴子為此次選舉的猴子大王。具體步驟如下:</p><p> 第一步 建立數組(鏈表),填入猴子編號及猴子出局時報的數;</p><p> 第二步 從第一個猴子報數;</p>
23、<p> 第三步 數組存儲中將數m的猴子不作操作,將未數到的猴子循環(huán)存在數組中,可以將報過數的信息猴子覆蓋。鏈表中將報到的猴子結點刪除;</p><p> 第四步 繼續(xù)報數,重復第三步。到只剩一個猴子編號;</p><p> 第五步 輸出此猴子的信息。</p><p><b> 1.2測試數據 </b></p>
24、<p> 1)、輸入猴子數與出局報數</p><p><b> 5 2</b></p><p><b> 第3個猴子是大王</b></p><p> 2)、輸入猴子數與出局報數</p><p><b> 43 13</b></p><
25、p><b> 第10個猴子是大王</b></p><p> 3)、輸入猴子數與出局報數</p><p><b> 121 31</b></p><p><b> 第84個猴子是大王</b></p><p><b> 2 概要設計</b>&
26、lt;/p><p><b> 2.1 ADT描述</b></p><p><b> ADT Node{</b></p><p> 數據對象:D={ai|ai∈ElemSet,i=1,2,3,…,m}</p><p> 數據關系:R={<ai-1,ai>|ai-1,ai∈≥D,i=2,
27、3,…,m}</p><p><b> 基本操作:</b></p><p><b> 創(chuàng)建數組,鏈表</b></p><p> 輸入編號猴子信息,進入存儲于數組,鏈表中</p><p> 報數開始,報到出局數的猴子出局</p><p> 輸出選出的猴子大王信息<
28、;/p><p><b> 等等</b></p><p><b> }ADT Node</b></p><p> 2.2程序模塊結構 </p><p> 圖2.1 猴子選大王系統(tǒng)模塊結構圖</p><p> 2.21 結構體定義</p><p>
29、 如下是三種不同存儲方式的存儲結構概要設計</p><p><b> a).數組定義:</b></p><p> 如下是對數組方式的定義,包含數組的大小,元素的定義,并用類對其進行封裝。</p><p> #include <iostream.h> //命名空間</p><p> const ma
30、x=100; //宏定義數組的大小</p><p> typedef int ElemType; //定義一個元素類型為整型</p><p> class seq //創(chuàng)建一個類將其進行封裝</p><p><b> {private:</b></p><p> ElemType elem[
31、max]; //存儲數組為私有</p><p> int front,rear; //在此建立私有的隊列頭、尾</p><p><b> public:};</b></p><p> b).單向鏈表定義:</p><p> 如下是單向鏈式的結構體包含一個數域和一個指下的指針域,數值域。并也對
32、其用類進行封裝,使其更佳。</p><p> struct Node //單向鏈表中每個結點包含一個數域和一個指下的指針域 </p><p> { int data; //數值域</p><p> Node *next;}; //指針域,指向鏈表的下一個結點</p><p> class da
33、nx //建類進行封裝</p><p> {private: </p><p> Node *top; //創(chuàng)建頭指針 </p><p> public:}; </p><p> c).循環(huán)鏈表定義:</p><p> 如下是單向鏈式的結構體包含一個數域和一個指下的指針域,數值域
34、。并也對其用類進行封裝,使其更佳。其中含有一個頭指針,用于對其中初始結點的指向。</p><p> struct NodeType //鏈表結點的結構體</p><p> { int num; //數值域,存儲猴子編號</p><p> NodeType *next; }; //指針域,指向下一個猴子結點</p&
35、gt;<p> class xunh { </p><p><b> private: </b></p><p> NodeType *Head; // 將頭指針設為私有</p><p><b> public:};</b></p><p><b> 2.
36、3 各功能模塊</b></p><p> 1、數組方式包含有構造函數,析構函數,還有進行創(chuàng)建(即錄入操作),與報數輸出操作。各功能模塊如下:</p><p> class seq //數組存儲的類</p><p><b> {private:</b></p><p><b>
37、public:</b></p><p> seq(){} // 數組存儲的構造函數</p><p> ~seq(){}; //析構函數</p><p> void jin(); //輸入存儲操作</p><p> void chu(); //報數輸出操作</p><p>
38、;<b> };</b></p><p> 2、單向鏈表方式包含有構造函數,析構函數,還有進行創(chuàng)建(即錄入操作),與報數輸出操作。各功能模塊如下:</p><p> class danx // 單向鏈表的類</p><p> { private: </p><p><b>
39、; public:</b></p><p> danx( ){ }; //單向鏈表操作的構造函數</p><p> ~danx(){ }; //析構函數</p><p> void creat(); //創(chuàng)建鏈表,輸入猴子信息</p><p> void outs(); //報數輸出操作</p&
40、gt;<p><b> };</b></p><p> 3、循環(huán)鏈表方式包含有構造函數,析構函數,還有進行創(chuàng)建(即錄入操作),與報數輸出操作。各功能模塊如下:</p><p> class xunh //循環(huán)鏈表的類 </p><p><b> { </b><
41、/p><p> private: </p><p><b> public:</b></p><p> xunh( ){ }; //循環(huán)鏈表的構造函數</p><p> ~xunh(){ }; //析構函數</p><p> void creat(); //創(chuàng)建循環(huán)鏈表
42、,輸入信息</p><p> void outs();}; //報數輸出大王信息</p><p><b> 3 詳細設計</b></p><p><b> 3.1結構體定義</b></p><p> 1、數組結構體定義如下:</p><p> 對數組的大小進行
43、限制在100,并定義一個整型元素。</p><p> const max=100; //宏定義數組上線大小為100</p><p> typedef int ElemType; //定義整型元素類型ElemType</p><p> 2、單向鏈表結構體定義如下:</p><p> 單向鏈表中每個結點包含一個數域和一個指
44、下的指針域,定義值域,存儲猴子編號,還定義一個指針域用與連接操作。</p><p> struct Node //單向鏈表中每個結點包含一個數域和一個指下的指針域 </p><p> {int data; // 定義值域,存儲猴子編號</p><p> Node *next; }; //定義指針域指向下一個結點
45、</p><p> 3、循環(huán)鏈表結構體定義如下:</p><p> struct NodeType //也包含數值域和一個指針域 </p><p> { int num; //值域,存儲猴子編號 </p><p> NodeType *next; }; //指針域指向下一個結點<
46、/p><p><b> 3.2 初始化</b></p><p> 其數組中表示頭與尾的指針進行初始化:</p><p> 只要在數組類的構造函數中將定義的頭與尾初始化到第一個數。</p><p><b> class seq</b></p><p><b>
47、{</b></p><p><b> private:</b></p><p><b> public:</b></p><p> seq(){front=0;rear=0;} //將數組中頭尾指針初始化指向第一個數</p><p><b> };</b&g
48、t;</p><p><b> 3.3 插入操作</b></p><p> 1、如下是對數組方式功能的操作:</p><p><b> 創(chuàng)建,錄入數組:</b></p><p> void seq::jin() //創(chuàng)建操作</p><p><b> {
49、</b></p><p> cout<<"\n..........歡迎使用數組方式選取大王........"<<endl;</p><p> int m; //猴子的總數</p><p><b> do{</b></p><p> cout<&
50、lt;"\n 請輸入猴子的總數(<100):";</p><p><b> cin>>m;</b></p><p> if(m>100||m<0) //判斷猴子的總數是否正確,輸出提示</p><p><b> {</b></p>&l
51、t;p> cout<<" 數據輸入出錯!";</p><p><b> }</b></p><p> }while(m>100||m<0); //do{}while語句使得m的值輸入正確</p><p> for(int i=0;i<m;i++) //將編號存
52、入數組</p><p><b> {</b></p><p> elem[i]=i+1; </p><p><b> }</b></p><p> rear=m-1; //將尾指針指向數組的尾</p><p><b> }</b><
53、/p><p><b> 報數輸出結果:</b></p><p> void seq::chu() //報數輸出操作</p><p><b> {</b></p><p> int n; //定義出局報的數</p><p> cout<<
54、"\n 輸入報數值n(n>=2):"; </p><p> cin>>n; //輸入報數的值</p><p> cout<<"\n根據報數值"<<n<<",開始選猴大王..."<<endl;</p><p> if(
55、front==rear) //判斷隊列是否為空</p><p> cout<<" 存儲錯誤!隊列為空!"<<endl;</p><p> else //當數組存儲不為空時</p><p><b> {</b></p><
56、;p> cout<<"\n報數結束,最終成為猴子大王的是(編號):";</p><p> while(front!=rear) //頭尾相等表示報數結束</p><p><b> {</b></p><p> for(int i=1;i<n;i++) //對出局報數循環(huán),
57、使報到的猴子出局</p><p><b> {</b></p><p> rear=(rear+1)%max; //實現(xiàn)在數組中循環(huán)存儲,讓尾指向下一個,但不出數組</p><p> elem[rear]=elem[front]; //實現(xiàn)讓隊頭報數后的猴子接在隊尾</p><p> front
58、=(front+1)%max; //在循環(huán)中頭指針不出數組</p><p><b> }</b></p><p> front=front+1; //正好報到數的猴子出隊</p><p><b> }</b></p><p> cout<<elem[front]
59、; //選擇猴王結束,輸出猴王編號</p><p><b> }</b></p><p> cout<<endl;</p><p><b> }</b></p><p> 2、如下是對單向鏈表方式功能的操作:</p><p> void dan
60、x::creat() //創(chuàng)建操作</p><p><b> { </b></p><p> cout<<"\n..........歡迎使用單向鏈表方式選取大王........"<<endl;</p><p> int i=0, m; //猴子總數m</p><
61、;p> Node *newp, *pre; //新聲明兩結點,創(chuàng)建時pre作為尾結點</p><p> cout<<"\n 請輸入猴子的總數: "; </p><p><b> cin>>m;</b></p><p> for(i=0;i<m;i++)
62、 //用循環(huán)方式創(chuàng)建鏈表 </p><p><b> { </b></p><p> newp=new Node; //對newp初始化</p><p> newp->next=NULL; </p><p> newp->data=i+1;
63、 </p><p> if(i==0) //如果鏈表中還沒有數據存入,將存入第一個數據</p><p><b> {</b></p><p> top=newp; //及將其在頭結點</p><p> pre= top; </p><p><b> }</b>
64、;</p><p><b> else</b></p><p><b> {</b></p><p> pre->next=newp; //如果頭結點有元素,就存在為結點的下一個</p><p> pre=newp; //將尾結點指向下一個</p><p&g
65、t;<b> }</b></p><p> } </p><p><b> } </b></p><p> void danx::outs( ) //單向鏈表的輸出操作</p><p><b> { </b></
66、p><p> int n,i; //n為報數值,i為局部循環(huán)數值</p><p> Node *q=top;</p><p> while(q->next!=NULL) //將p指針指向連尾</p><p><b> {</b></p><p> q=q->next;
67、 //如果q還不是尾結點,就下移</p><p><b> }</b></p><p> cout<<"\n 輸入報數值n(n>=2):"; </p><p><b> cin>>n;</b></p><p> cout
68、<<"\n根據報數值"<<n<<",開始選猴大王..."<<endl;</p><p> cout<<"\n報數結束,最終成為猴子大王的是(編號):";</p><p> while(top->next!=NULL) //當頭結點的下一個為空時,表示報數結
69、束</p><p><b> {</b></p><p> Node *p; //創(chuàng)建一個指針,進行報數操作</p><p> for(i=1;i<n;i++) //循環(huán)方式將報完數的猴子接到連尾</p><p><b> {</b></p><p>
70、 p=top; //p指向頭結點</p><p> top=top->next; //報數時將頭指針下移</p><p> p->next=NULL; //令p的指針域指空</p><p> q->next=p; //將p連接到連表尾</p><p> q=p; //q下移</
71、p><p><b> }</b></p><p><b> p=top;</b></p><p> top=top->next; //top頭指針下移</p><p> delete p; //刪除報到指定數的結點</p><p><b>
72、 }</b></p><p> cout<<top->data<<endl; //輸出當選猴大王猴子的編號</p><p><b> } </b></p><p> 3、如下是對循環(huán)鏈表方式功能的操作:</p><p> void xunh::creat()
73、 //創(chuàng)建操作</p><p><b> { </b></p><p> cout<<"\n...........歡迎使用循環(huán)鏈表方式選取大王........."<<endl;</p><p> int i=0, m; //猴子總數m</p><p>
74、 NodeType *newp, *pre; //新聲明兩結點,創(chuàng)建時pre作為尾結點</p><p> cout<<"\n 請輸入猴子的總數: "; </p><p> cin>>m; //輸入猴子總數</p><p> for(i=0;i<m;i++) //創(chuàng)
75、建循環(huán)鏈表</p><p><b> { </b></p><p> newp=new NodeType; </p><p> newp->next=NULL;</p><p> newp->num=i+1; </p><p> if(i==0) //如果鏈表中
76、還沒有數據存入,將存入第一個數據</p><p><b> {</b></p><p> Head=newp;</p><p> pre= Head;</p><p><b> }</b></p><p> else //如果頭結點有元素,就存在為結點
77、的下一個</p><p><b> {</b></p><p> newp->next=Head; //將尾與頭連接構成循環(huán)</p><p> pre->next=newp;</p><p> pre=newp; </p><p><b> }</b&g
78、t;</p><p> } </p><p><b> } </b></p><p> void xunh::outs( ) //循環(huán)鏈表的輸出操作 </p><p><b> { </b></p><p> in
79、t n,i; //猴子總數m,局部數值i</p><p> NodeType *q=Head, *p; //新建結點q并指向頭</p><p> cout<<"\n 輸入報數值n(n>=2):"; </p><p> cin>>n; //輸入要報的數</p><p>
80、 cout<<"\n根據報數值"<<n<<",開始選猴大王..."<<endl;</p><p> cout<<"\n報數結束,最終成為猴子大王的是(編號):";</p><p> while(q->next!=q) //判斷:當qd的下一個為空時,
81、則報數結束</p><p><b> {</b></p><p> for(i=1;i<n;i++)</p><p><b> {</b></p><p> p=q; q=q->next; //在循環(huán)中將不對未報到出局數的結點操作,進行下一個報數</p><
82、;p> } </p><p> p->next=q->next; //將報到出局數的結點取出</p><p> delete q; //刪除報到數的結點</p><p> q=p->next; //將斷點連接</p><p><b> }&l
83、t;/b></p><p> cout<<q->num<<endl; //輸出最后結點信息,為當選猴王</p><p> delete q; //刪除結點</p><p><b> } </b></p><p> 4、如下是主函數的實現(xiàn)調用操作:</p>
84、<p> 在主函數中使用switch…case語句將上述三個功能進行界面處理顯示,并對用戶人性化設計,并創(chuàng)建三個相應類的對象,在switch…case語句中,能根據用戶的選項作出相應的函數調用。體如下:</p><p> int main()</p><p><b> { </b></p><p> int k; //在
85、switch語句中用到的選擇值</p><p> seq s; //創(chuàng)建數組方式的對象</p><p> danx f; //創(chuàng)建單向鏈表的對象</p><p> xunh d; //創(chuàng)建循環(huán)方式的對象</p><p> cout<<"\n.............歡迎進入猴子選大王系統(tǒng).......
86、...."<<endl;</p><p> cout<<"\n************************************************ ";</p><p> do //對用戶界面進行美化 ,并提供相關的選項供用戶選擇</p><p><b> {</b>
87、;</p><p> cout<<"\n\n| 1.使用數組方式選取大王 |";</p><p> cout<<"\n\n| 2.使用單向鏈表方式選取大王 |";</p><p> cout<<"
88、\n\n| 3.使用循環(huán)鏈表方式選取大王 |";</p><p> cout<<"\n\n| 4.結束程序 |";</p><p> cout<<"\n**********************************
89、**************";</p><p> cout<<"\n 請輸入你的選擇(1,2,3,4): "; </p><p> cin>>k; //用戶輸入選擇</p><p><b> switch(k)</b></p><p>&
90、lt;b> {</b></p><p> case 1: //選擇1就調用數組類的方式</p><p><b> {</b></p><p> s.jin(); //創(chuàng)建</p><p> s.chu(); //報數,輸出</p><p>
91、; cout<<endl;</p><p> cout<<endl;</p><p><b> }break;</b></p><p> case 2://選擇2就調用單向鏈表的操作</p><p><b> {</b></p><p>
92、 f.creat(); //創(chuàng)建</p><p> f.outs(); //報數,輸出</p><p> cout<<endl;</p><p> cout<<endl;</p><p><b> }break;</b></p><p> ca
93、se 3: //選擇3就調用循環(huán)方式的操作</p><p><b> { </b></p><p> d.creat(); //創(chuàng)建</p><p> d.outs(); //報數,輸出</p><p> cout<<endl;</p><p> cout
94、<<endl;</p><p><b> }break;</b></p><p> default:break; //其他就結束} </p><p> cout<<"\n************************************************ ";</p>
95、<p> }while(k>=1&&k<4);</p><p> cout<<"\n 再見!";</p><p> cout<<"\n 按任意鍵,返回。"<<endl;</p><p> return 0;}</
96、p><p><b> 4 調試分析</b></p><p> 由于此次的課程設計題目所需要的相關知識大多數可在《數據結構》書中找到,或借鑒。所以在完成代碼后運行時,沒出現(xiàn)嚴重錯誤和問題。只是有點小問題,即局部變量用錯:沒定義的也用了。調試并找出錯誤,進行修改。最后獲得成功。</p><p><b> 5 用戶使用說明</b&g
97、t;</p><p> 該系統(tǒng)具有簡單、明了、使用等特點,能夠方便、準確的計算出眾多猴子編號選舉大王的結果。當使用該系統(tǒng)時,系統(tǒng)會給出相關的提示信息,用戶只需根據提示信息,即可完成系統(tǒng)提供的所有功能。</p><p><b> 6 測試結果</b></p><p> 6.1 界面運行結果</p><p> 系統(tǒng)運
98、行主界面如圖6.1所示:</p><p><b> 圖6.1 主界面</b></p><p> 6.2子功能測試運行結果: </p><p> A)數組方式選取大王, 如圖6.21所示:</p><p> 圖6.2數組方式選舉大王</p><p> B) 單向鏈表方式選取大王,如
99、圖6.22:</p><p> 圖6.3 單向選舉大王</p><p> C) 循環(huán)方式選舉,如圖6.23所示:</p><p> 圖6.4 循環(huán)方式選舉大王</p><p> 6.3 結束界面(如下圖)</p><p><b> 圖6.5 結束界面</b></p><
100、;p><b> 結 論</b></p><p> 在課程設計中,首先要看清問題,將問題要求理解透徹,在構思要如何實現(xiàn),要用到哪些函數,要用什么算法,在課程設計構思中選算法是一個很重要的概念。只有確定用什么算法后才能接下來的工作,將流程圖畫在紙上,再進行代碼的編寫。在程序設計中編寫代碼只是一個方面,調試才是關鍵,它是一個相當繁瑣的過程。有許多新的問題需要被解決,但同時它也是個比較重
101、要的過程,在調試中,你會學到很多新的東西,從而增加你編程能力和經驗。</p><p> 通過本次實習,溫固了數據結構的相關知識,加深了對課內所學的有關數據的邏輯結構和存儲表示、數據結構的選擇合應用、算法的設計和時空效率分析等內容的理解,進一步熟悉了C++的應用與編程環(huán)境,鞏固并提高了分析問題,解決問題的能力。</p><p><b> 致 謝</b></p
102、><p> 在本次課程設計過程中,首先感謝學校相關領導給了我一次提升實力的機會。其次要感謝監(jiān)督我完成該實驗的老師,是她在我需要必要幫助時,申出了援助之手。還要感謝教過我C++語言和數據結構的各位老師,是他們的授課,讓我打下了完成該實驗的基礎。最后,感謝身邊的同學們、朋友們以及網友們,是你們給了我完成該實驗的思路、方法。</p><p><b> 參考文獻 </b>&l
103、t;/p><p> [1]楊寶剛.開展企業(yè)管理信息化工作的步驟[J].企業(yè)管理.2002.(11).12~15</p><p> ?。?]Islamabad. Software tools for forgery detection[J]. Business line.2001. (5). 29~32 </p><p> ?。?]王立柱.C/C++與數據結構.北京:清
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論