導航:首頁 > 源碼編譯 > 演算法與數據結構課程設計實驗報告

演算法與數據結構課程設計實驗報告

發布時間:2024-07-15 14:44:27

演算法課程設計報告

題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:

課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績

這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。

Ⅱ 《數據結構 課程設計》表達式求值 實驗報告


算術表達式求值演示
一、概述
數據結構課程設計,要求學生在數據結構的邏輯特性和物理表示、數據結構的選擇和應用、演算法的設計及其實現等方面,加深對課程基本內容的理解。同時,在程序設計方法以及上機操作等基本技能和科學作風方面受到比較系統和嚴格的訓練。
在這次的課程設計中我選擇的題目是算術表達式求值演示。表達式計算是實現程序設計語言的基本問題之一,也是棧的應用的一個典型例子。設計一個程序,演示用算符優先法對算術表達式求值的過程。深入了解棧和隊列的特性,以便在解決實際問題中靈活運用它們,同時加深對這種結構的理解和認識。
二、 系統分析

1. 以字元列的形式從終端輸入語法正確的、不含變數的整數表達式。利用已知的算符優先關系,實現對算術四則混合運算表達式的求值,並仿照教科書的例子在求值中運算符棧、運算數棧、輸入字元和主要操作的變化過程。
2. 一般來說,計算機解決一個具體問題時,需要經過幾個步驟:首先要從具體問題抽象出一個適當的數學模型,然後設計一個解決此數學模型的演算法,最後編出程序,進行測試,調試直至得到想要的答案。對於算術表達式這個程序,主要利用棧,把運算的先後步驟進行分析並實現簡單的運算!為實現算符優先演算法,可以使用兩個棧,一個用以寄存運算符,另一個用以寄存操作數和運算結果。
3. 演示程序是以用戶於計算機的對話方式執行,這需要一個模塊來完成使用者與計算機語言的轉化。 4. 程序執行時的命令
本程序為了使用具體,採用菜單式的方式來完成程序的演示,幾乎不用輸入什麼特殊的命令,只需按提示輸入表達式即可。(要注意輸入時格式,否者可能會引起一些錯誤) 5. 測試數據。

2

算術表達式求值演示
一、概述
數據結構課程設計,要求學生在數據結構的邏輯特性和物理表示、數據結構的選擇和應用、演算法的設計及其實現等方面,加深對課程基本內容的理解。同時,在程序設計方法以及上機操作等基本技能和科學作風方面受到比較系統和嚴格的訓練。
在這次的課程設計中我選擇的題目是算術表達式求值演示。表達式計算是實現程序設計語言的基本問題之一,也是棧的應用的一個典型例子。設計一個程序,演示用算符優先法對算術表達式求值的過程。深入了解棧和隊列的特性,以便在解決實際問題中靈活運用它們,同時加深對這種結構的理解和認識。
二、 系統分析

1. 以字元列的形式從終端輸入語法正確的、不含變數的整數表達式。利用已知的算符優先關系,實現對算術四則混合運算表達式的求值,並仿照教科書的例子在求值中運算符棧、運算數棧、輸入字元和主要操作的變化過程。
2. 一般來說,計算機解決一個具體問題時,需要經過幾個步驟:首先要從具體問題抽象出一個適當的數學模型,然後設計一個解決此數學模型的演算法,最後編出程序,進行測試,調試直至得到想要的答案。對於算術表達式這個程序,主要利用棧,把運算的先後步驟進行分析並實現簡單的運算!為實現算符優先演算法,可以使用兩個棧,一個用以寄存運算符,另一個用以寄存操作數和運算結果。
3. 演示程序是以用戶於計算機的對話方式執行,這需要一個模塊來完成使用者與計算機語言的轉化。 4. 程序執行時的命令:
本程序為了使用具體,採用菜單式的方式來完成程序的演示,幾乎不用輸入什麼特殊的命令,只需按提示輸入表達式即可。(要注意輸入時格式,否者可能會引起一些錯誤) 5. 測試數據。

操作集合:
(1)void InitStack1(SqStack1 &S1);//聲明棧建立函數 (2)void InitStack2(SqStack2 &S2);//聲明棧建立函數
(3)void evaluate(SqStack1 &S1,SqStack2 &S2);//確定如何入棧函數 (4)void Push1(SqStack1 &S1,char e);//聲明入棧函數 (5)void Push2(SqStack2 &S2,float e);//聲明入壓棧函數 (6)char GetTop1(SqStack1 &S1);//聲明取棧頂元素函數 (7)float GetTop2(SqStack2 &S2);//聲明取棧頂元素函數 (8)char Pop1(SqStack1 &S1);//聲明出棧函數 (9)float Pop2(SqStack2 &S2);//聲明出棧函數 (10)char Compare(char m,char n);//聲明比較函數
(11)float Operate(float a,char rheta,float b);//聲明運算函數 (12)void DispStack1(SqStack1 &S1);//從棧底到棧頂依次輸出各元素 (13)void DispStack2(SqStack2 &S2);//從棧底到棧頂依次輸出各元素 }ADT SqStack
結構分析:
棧中的數據節點是通過數組來存儲的。因為在C語言中數組是用下標從零開始的,因此我
們在調用他們的數據是要特別注意。指針變數的值要麼為空(NULL),不指向任何結點;要麼其值為非空,即它的值是一個結點的存儲地址。注意,當P為空值時,則它不指向任何結點,此時不能通過P來訪問結點,否則會引起程序錯誤。如果輸入的數字不符合題目要求,則會產生錯誤結果。
演算法的時空分析:
時間和空間性能分析:時間上,對於含n個字元的表達式,無論是對其進行合法性檢測還是對其進行入棧出棧操作n次,因此其時間復雜度為O(n)。空間上,由於是用數組來存儲輸入的表達式,用棧來存儲運算中的數據和運算符,而棧的本質也用到的數組,數組在定義時必須確定其大小。在不知表達式長度的情況下確定數組的長度確非易事,此時極易造成空間的浪費,因此空間性能不是很好。

閱讀全文

與演算法與數據結構課程設計實驗報告相關的資料

熱點內容
java課表 瀏覽:555
如何在pdf裡面修改 瀏覽:929
橙光製作器檔案框在哪個文件夾 瀏覽:991
php如何抓取網頁數據 瀏覽:642
計數器單片機 瀏覽:966
游戲aoi演算法 瀏覽:844
phpmysqlint 瀏覽:912
怎麼從appstore商城買東西 瀏覽:184
大秀直播平台源碼 瀏覽:424
java視屏 瀏覽:934
電腦中如何給程序加密 瀏覽:240
java排序容器 瀏覽:942
職稱證書在哪個app下載 瀏覽:362
四九演算法算男女 瀏覽:659
javawindows8 瀏覽:498
2021世界程序員節 瀏覽:485
php翼支付 瀏覽:884
盈通伺服器ip地址 瀏覽:791
3des演算法的c語言實現 瀏覽:875
網上怎樣購買伺服器地址 瀏覽:815