數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告算術(shù)表達(dá)式處理算法實(shí)現(xiàn)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告算術(shù)表達(dá)式處理算法實(shí)現(xiàn)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告算術(shù)表達(dá)式處理算法實(shí)現(xiàn)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告算術(shù)表達(dá)式處理算法實(shí)現(xiàn)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告算術(shù)表達(dá)式處理算法實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、長(zhǎng)沙理工大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 *學(xué) 院 計(jì)算機(jī)與通信工程 專 業(yè) 網(wǎng)絡(luò)工程 班 級(jí) 網(wǎng)絡(luò)0902 學(xué) 號(hào) 24 學(xué)生姓名 指導(dǎo)教師 課程成績(jī) 完成日期 2011年2月27日課程設(shè)計(jì)成績(jī)?cè)u(píng)定學(xué) 院 計(jì)算機(jī)與通信工程學(xué)院 專 業(yè) 網(wǎng)絡(luò)工程 班 級(jí) 0902班 學(xué) 號(hào) 200958080224 學(xué)生姓名 指導(dǎo)教師 完成日期 2011年2月27日 指導(dǎo)教師對(duì)學(xué)生在課程設(shè)計(jì)中的評(píng)價(jià)評(píng)分項(xiàng)目?jī)?yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動(dòng)手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對(duì)課程設(shè)計(jì)的評(píng)定意見綜合成績(jī) 指導(dǎo)教師簽字 2011年2月27日課程設(shè)計(jì)

2、任務(wù)書計(jì)算機(jī)與通信工程學(xué)院 網(wǎng)絡(luò)工程專業(yè) 課程名稱數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)時(shí)間20102011學(xué)年第2學(xué)期12周學(xué)生姓名吳繼征指導(dǎo)老師陳倩詒題 目算術(shù)表達(dá)式處理算法實(shí)現(xiàn)主要內(nèi)容: 用c+語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)思想解決算術(shù)表達(dá)式處理算法實(shí)現(xiàn)問題。要求:(1)通過實(shí)際課題的分析、設(shè)計(jì)、編碼、測(cè)試等工作,掌握用c+語(yǔ)言來開發(fā)和維護(hù)軟件。(2)按要求編寫課程設(shè)計(jì)報(bào)告書,能正確編寫分析、設(shè)計(jì)、編碼、測(cè)試等技術(shù)文檔和用戶使用手冊(cè)。應(yīng)當(dāng)提交的文件:(1)課程設(shè)計(jì)論文。(2)課程設(shè)計(jì)附件(主要是源程序)。摘 要算數(shù)表達(dá)式處理算法實(shí)現(xiàn)是我們計(jì)算某些問題非常有用的方法,是一種非常重要的分析表達(dá)式所需的西藥手段。本文對(duì)如何求一個(gè)算

3、術(shù)表達(dá)式的運(yùn)算過程做了詳細(xì)的說明,包括需求數(shù)據(jù)輸入、表達(dá)式分析、表達(dá)式輸出、測(cè)試與分析、總結(jié)、源程序清單等。首先,做了數(shù)據(jù)輸入,輸入數(shù)據(jù)后程序需要辨析是否有錯(cuò)誤,然后再進(jìn)行下一步運(yùn)算。然后給出表達(dá)式的運(yùn)算步驟,包括程序中用到的所有計(jì)算的優(yōu)先級(jí),主程序的流 程以及各程序模塊之間關(guān)系在正文會(huì)有詳細(xì)說明。在概要設(shè)計(jì)的基礎(chǔ)上,又給出了詳細(xì)的算法設(shè)計(jì),實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有函數(shù),對(duì)每個(gè)函數(shù)寫出核心算法,并畫出了流程圖。然后對(duì)編碼進(jìn)行了測(cè)試與分析(并在最后附上c語(yǔ)言編寫的程序代碼)。最后對(duì)整個(gè)設(shè)計(jì)過程進(jìn)行了總結(jié)關(guān)鍵詞:棧;優(yōu)先級(jí);流程圖;目錄1緒論- 1 -11前言- 1 -12研究意義- 1 -2 需

4、求分析- 2 -21問題分析- 2 -22基本要求- 2 -23目的- 2 -3 概要設(shè)計(jì)- 3 -31算法分析- 3 -32算法步驟- 3 -33基本思路及主要程序代碼- 4 -4 詳細(xì)設(shè)計(jì)- 5 -41主要函數(shù)的核心代碼- 5 -42程序流程圖- 5 -5 測(cè)試- 6 -51開始界面- 6 -52支持+,-,/,( )等符號(hào) - 6 -53支持運(yùn)算符的優(yōu)先級(jí)- 7 -54支持括號(hào)的嵌套- 7 -55查錯(cuò)功能- 8 -56支持小數(shù)點(diǎn)與負(fù)數(shù)- 9 -6 總結(jié)- 10 -參考文獻(xiàn)- 11 -附錄:源程序清單- 12 -1緒論11前言 我們通常把算數(shù)表達(dá)問題處理的過于簡(jiǎn)單,并沒有認(rèn)真的思考算術(shù)表達(dá)

5、式與算法實(shí)現(xiàn)的問題。實(shí)際上問題并沒有我們想的那么簡(jiǎn)單,這次這個(gè)程序是初步分析表達(dá)式的運(yùn)算過程,同時(shí)處理優(yōu)先級(jí)與算法的實(shí)現(xiàn),而且還具有本身的查錯(cuò)功能是一個(gè)可以讓我們理解算法的程序。 我們通常使用計(jì)算器為我們的生活帶來方便,但是我們并不理解計(jì)算器的運(yùn)算實(shí)質(zhì),其實(shí)計(jì)算機(jī)本身就是一個(gè)算術(shù)表達(dá)式的算法實(shí)現(xiàn),它其實(shí)就是一個(gè)簡(jiǎn)單的程序可以實(shí)現(xiàn)初步的計(jì)算功能,并能夠查錯(cuò)。在計(jì)算機(jī)中,算術(shù)表達(dá)式由常量、變量、運(yùn)算符和括號(hào)組成。由于不同的運(yùn)算符具有不同的優(yōu)先級(jí),又要考慮括號(hào),因此,算術(shù)表達(dá)式的求值不可能嚴(yán)格地從左到右進(jìn)行。因而在程序設(shè)計(jì)時(shí),借助棧實(shí)現(xiàn)。算法輸入:一個(gè)算術(shù)表達(dá)式,由常量、變量、運(yùn)算符和括號(hào)組成(以字

6、符串形式輸入)。為簡(jiǎn)化,規(guī)定操作數(shù)只能為正整數(shù),操作符為+、-*、/,()等。算法輸出:表達(dá)式運(yùn)算結(jié)果。算法要點(diǎn):設(shè)置運(yùn)算符棧和運(yùn)算數(shù)棧輔助分析算符優(yōu)先關(guān)系。在讀入表達(dá)式的字符序列的同時(shí),完成運(yùn)算符和運(yùn)算數(shù)的識(shí)別處理,以及相應(yīng)運(yùn)算。12 研究意義 算術(shù)表達(dá)式處理算法實(shí)現(xiàn)以很方便的幫助我們?cè)谌粘I钪刑幚碛?jì)算問題,以及大型工程中哪些活動(dòng)發(fā)揮重大作用,由于計(jì)算科學(xué)在生活生產(chǎn)中的重要作用,該程序又是算法中的基礎(chǔ),熟練掌握它可以對(duì)生產(chǎn)設(shè)計(jì),科學(xué)研究,計(jì)算研究,工業(yè)規(guī)劃等工作中發(fā)揮重大作用。-1-2 需求分析21問題分析 算數(shù)表達(dá)式是常用的數(shù)學(xué)計(jì)算,在計(jì)算機(jī)計(jì)算中是非常普遍的,為了更加方便的進(jìn)行此類運(yùn)算

7、,在此設(shè)計(jì)了一個(gè)簡(jiǎn)單的算術(shù)表達(dá)式,用于對(duì)算術(shù)表達(dá)式進(jìn)行創(chuàng)建,輸出,以及各成員的相加,相減和相乘。該程序簡(jiǎn)單,清晰,明了,用戶易懂易用,能較好得實(shí)現(xiàn)計(jì)算分析功能。 22基本要求 (1) 從鍵盤輸入一個(gè)表達(dá)式,如(23-(45.2-2.8)/5=(2) 支持+,-,/,( )等符號(hào) (3) 支持運(yùn)算符的優(yōu)先級(jí)(4) 支持括號(hào)的嵌套(5) 支持小數(shù)點(diǎn)及負(fù)數(shù) (6) 有查錯(cuò)功能,如非法字符,小數(shù)點(diǎn)過多(如3.44.3),括號(hào)不匹配等錯(cuò)誤。 23目的本程序是主要運(yùn)用運(yùn)算符的優(yōu)先級(jí)、棧和運(yùn)算符轉(zhuǎn)換,其中在運(yùn)算符優(yōu)先級(jí)時(shí)優(yōu)先括號(hào)內(nèi)運(yùn)算、先乘(除)后加(減)分析輸出。-2-3 概要設(shè)計(jì)31算法分析(1) 首先

8、,構(gòu)建一個(gè)for循環(huán)判斷是否有非法字符加入。(2)其次利用for循環(huán) ,同時(shí)構(gòu)建一個(gè)switch語(yǔ)句來實(shí)現(xiàn)符號(hào)判定;(3)在分析-時(shí),要確定該符號(hào)代表“負(fù)” 還是“減號(hào)” ; (4)最后輸出結(jié)果。32算法步驟(1) 構(gòu)建輸入界面,如:cout 算術(shù)表達(dá)式的詞法分析程序endl要求。(2)判斷是否有非法字符。(3)判斷符號(hào)與優(yōu)先級(jí)。(4)最后結(jié)果輸出。-3-33基本思路及部分程序代碼1. 首先構(gòu)建初始界面。如:int a;string m;cout 算術(shù)表達(dá)式的詞法分析程序endl要求:endl1.從鍵盤輸入一個(gè)正確的算術(shù)表達(dá)式:如(23-(4*5.2-2.8)/-5。endl2.支持 * /

9、()等符號(hào)。endl3.支持運(yùn)算符的優(yōu)先級(jí)。endl4.支持括號(hào)的嵌套。endl5.支持小數(shù)。endl6.有查錯(cuò)功能,如非法字符,小數(shù)點(diǎn)過多(如3.44.3),括號(hào)不匹配等錯(cuò)誤。endlendl;cout m;2. 構(gòu)建判斷函數(shù),實(shí)現(xiàn)查錯(cuò)功能。如:intk=sizeof(k);for(int j=0;jk;j+) for(int x=0;xk;x+) if(mj=mx&mj=.) printf(輸入有錯(cuò),請(qǐng)重新輸入);3.構(gòu)建函數(shù)實(shí)現(xiàn)符號(hào)判斷。如:a=m.length();cout 結(jié)果為:;for (int i=0;ia;i+)switch (mi)case +:cout +、;break;

10、-4-4 詳細(xì)設(shè)計(jì)41主要函數(shù)的核心代碼1. 構(gòu)建輸入界面,如:cout 算術(shù)表達(dá)式的詞法分析程序endl要求。2. 寫主函數(shù)void main,以及for 和switch語(yǔ)句 。即函數(shù)switch()3. 編寫函數(shù)mian()對(duì)函數(shù)switch()和函數(shù)length()進(jìn)行調(diào)用,實(shí)現(xiàn)程序判斷等功能。 具體代碼請(qǐng)見附錄:源程序清單。42程序流程圖算術(shù)表達(dá)式處理與算法實(shí)現(xiàn) 數(shù)據(jù)輸入 表達(dá)式計(jì)算 表達(dá)式分析輸出輸出圖4.2 程序流程圖-5-5 測(cè)試51開始界面開始界面如圖5.1所示圖5.1 開始界面圖52支持+,-,/,( )等符號(hào)輸入表達(dá)式后,如圖5.2,開始進(jìn)入程序圖5.2 輸入表達(dá)式界面圖-

11、6-53支持運(yùn)算符的優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí),如圖5.3所示圖5.3 運(yùn)算符優(yōu)先級(jí)圖54支持括號(hào)的嵌套輸入括號(hào)。同時(shí)支持套嵌,如圖5.4所示圖5.4 輸入括號(hào)圖-7-55查錯(cuò)功能查錯(cuò)功能,過程如圖5.5所示圖5.5 查錯(cuò)功能圖-8-56支持小數(shù)點(diǎn)及負(fù)數(shù)支持小數(shù)點(diǎn)與負(fù)數(shù),如圖5.6所示圖5.6 支持負(fù)數(shù)與小數(shù)點(diǎn)-9-6 總結(jié)歷時(shí)兩周的課程設(shè)計(jì)終于結(jié)束了,現(xiàn)在來做一下總結(jié)。通過陳老師的指導(dǎo),算法表達(dá)式與算法實(shí)現(xiàn)基本完成,通過二個(gè)多星期的設(shè)計(jì)與開發(fā),算術(shù)表達(dá)式簡(jiǎn)單計(jì)算系統(tǒng)基本開發(fā)完畢。本系統(tǒng)所用到的知識(shí)與數(shù)據(jù)結(jié)構(gòu)這本書密切相關(guān)。進(jìn)行測(cè)試運(yùn)行后,發(fā)現(xiàn)程序運(yùn)行良好,在此謝謝陳老師的指導(dǎo)。首先,發(fā)現(xiàn)自己對(duì)知識(shí)的

12、掌握不是很牢固,對(duì)課程的設(shè)計(jì)很困難。自己對(duì)知識(shí)的掌握和運(yùn)用是相當(dāng)?shù)牟睿杏X自己的知識(shí)就是白學(xué)了,做這樣的題目還是有困難的,尤其是指針的運(yùn)用很不熟練。而做這個(gè)題目恰恰運(yùn)用了大量的指針。所以很困難。由于時(shí)間問題和知識(shí)水平有限,系統(tǒng)還存在一些問題,比如:系統(tǒng)的界面比較單調(diào),整個(gè)程序的功能還不完善,還有界面做的有些簡(jiǎn)單,菜單沒有做好,可進(jìn)行的操作太少,這些都有待進(jìn)一步改善。-10-參考文獻(xiàn)1 楊路明. c語(yǔ)言程序設(shè)計(jì)教程 .北京:北京郵電大學(xué)出版社,2000.12 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu) . 北京:清華大學(xué)出版社,20063 譚浩強(qiáng). c程序設(shè)計(jì) .北京:北京清華大學(xué)出版社,1999.14 北京金

13、洪恩電腦有限公司. c/c+程序設(shè)計(jì)入門 .天津:天津電子出版社,2003.4-11-附錄:源程序清單#include #include using namespace std;void main()int a;string m;cout 算術(shù)表達(dá)式的詞法分析程序endl要求:endl1.從鍵盤輸入一個(gè)正確的算術(shù)表達(dá)式:如(23-(4*5.2-2.8)/-5。endl2.支持 * / ()等符號(hào)。endl3.支持運(yùn)算符的優(yōu)先級(jí)。endl4.支持括號(hào)的嵌套。endl5.支持小數(shù)。endl6.有查錯(cuò)功能,如非法字符,小數(shù)點(diǎn)過多(如3.44.3),括號(hào)不匹配等錯(cuò)誤。endlendl;cout m; intk=sizeof(k);for(int j=0;jk;j+) for(int x=0;xk;x+) if(mj=mx&mj=.) printf(輸入有錯(cuò),請(qǐng)重新輸入); a=m.length();cout 結(jié)果為:;for (int i=0;ia;i+)switch (mi)-12-case +:cout +、;break;case -:if (i=0)cout -;elseif (mi-1=+|mi-1=-|mi-1=*|mi-1=/|mi-1=(|mi-1=)cout -;elsecout -、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論