數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--利用棧求表達式的值-可供小學生作業(yè)-并能給出分數(shù)14頁_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--利用棧求表達式的值-可供小學生作業(yè)-并能給出分數(shù)14頁_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--利用棧求表達式的值-可供小學生作業(yè)-并能給出分數(shù)14頁_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--利用棧求表達式的值-可供小學生作業(yè)-并能給出分數(shù)14頁_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--利用棧求表達式的值-可供小學生作業(yè)-并能給出分數(shù)14頁_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖 南 工 學 院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告班級學號:姓名:目 錄1 需求分析需求分析.11.1 問題的提出 .11.2 任務(wù)與分析 .12 程序運行平臺程序運行平臺.23 概要設(shè)計概要設(shè)計.33.1 主要技術(shù)線路主要技術(shù)線路.33.2 程序運行結(jié)構(gòu)圖程序運行結(jié)構(gòu)圖.34 詳細設(shè)計詳細設(shè)計.44.1 詳細設(shè)計思想詳細設(shè)計思想.44.2 本程序定義的數(shù)據(jù)結(jié)構(gòu)本程序定義的數(shù)據(jù)結(jié)構(gòu).54.3 程序運行原理圖程序運行原理圖.64.44.4 測試模塊測試模塊 .74.54.5 歷史成績查詢模塊歷史成績查詢模塊 .84.64.6 主函數(shù)與菜單函數(shù)模塊主函數(shù)與菜單函數(shù)模塊.85 調(diào)試分析調(diào)試分析.106 測試結(jié)果

2、測試結(jié)果.107 結(jié)論結(jié)論.198 附錄附錄.20摘 要 設(shè)計題目:利用棧求表達式的值,可供小學生作業(yè),并能給出分數(shù)主要內(nèi)容:主要內(nèi)容:設(shè)計一個小學生自測程序,能輸入一個表達式后,由學生輸入結(jié)果,再與正確答案對比。1 需求分析1.1 輸入形式,數(shù)值范圍輸入形式,數(shù)值范圍 直接輸入數(shù)學表達式,回車。本程序可以使用 0 到 9 以及加減乘除等運算符包括() 。1.2 任務(wù)與分析任務(wù)與分析 建立試題庫文件,隨機產(chǎn)生 n 個題目;題目涉及加減乘除,帶括弧的混合運算;隨時可以退出;保留歷史分數(shù),能回顧歷史,給出與歷史分數(shù)比較后的評價2 程序運行平臺Microsoft Visual C+ 6.0具體操作如

3、下:1.源程序的編輯在 Visual C+ 6.0 開發(fā)環(huán)境下編輯一個簡單、完整的 C+程序,這是開發(fā)各種軟件必須進行的軟件開發(fā)過程。2.源程序的編譯、連接與運行在 Visual C+ 6.0 環(huán)境下,對任務(wù) 1 所編輯的 C+源程序進行編譯、連接和運行,觀察程序的執(zhí)行過程和個變量的值。3.Debug 調(diào)試功能對任務(wù) 1 所完成的源程序設(shè)置若干斷點,掌握 Visual C+ 6.0 環(huán)境下斷點的設(shè)置與取消方法,在 Debug 調(diào)試狀態(tài)下,學習程序調(diào)試的各種相關(guān)方法,并通過 Debug 狀態(tài)下的 Variable 窗口和 Watch 裝口觀察成粗的執(zhí)行過程和結(jié)果。3 概要設(shè)計3.1 程序運行結(jié)構(gòu)

4、圖主程序界面開始測試歷史成績查詢隨機選取題目進行測試得出成績并給出評價顯示歷次測試成績并給出評價4 詳細設(shè)計4.14.1 詳細設(shè)計思想詳細設(shè)計思想 首先建立三個文件,分別為 shujuku.txt,markrec.txt,n_rec.txt。其中shujuku.txt 中存放試題;markrec.txt 存放歷史分數(shù);n_rec.txt 存放總共測試次數(shù)。創(chuàng)建試題庫模塊:首先在主函數(shù)中調(diào)用創(chuàng)建試題庫函數(shù),將試題存入到試題庫文件shitiku.txt 中,然后將該調(diào)用從主函數(shù)中刪除。創(chuàng)建試題庫函數(shù):創(chuàng)建指向 xuanti 類型的指針,利用循環(huán)將輸入的測試題該指針的 xuanti 單元中,最后將該

5、指針中的測試題寫入試題庫文件shitiku.txt 中。試題測試模塊: 試題計算:建立兩個棧,分別存放數(shù)字、運算符,建立一個二維數(shù)組,存放任意兩個運算符之間的優(yōu)先級關(guān)系,通過比較符號棧中后兩個運算符的優(yōu)先級關(guān)系,決定數(shù)字棧中后兩個數(shù)據(jù)是直接入棧還是運算之后入棧,最后在數(shù)字棧中得到最后的運算結(jié)果。 通過比較用戶輸入的結(jié)果與程序計算的結(jié)果來決定測試者的分數(shù) mark 是否加分,測試完成時,將分數(shù) mark 寫入記錄分數(shù)文件 markrec.txt 中,并將總共的測試次數(shù)記錄如 n_rec.txt 中。查看歷史分數(shù)模塊: 通過查看 n_rec.txt 中總共的測試次數(shù) n,得到 markrec.tx

6、t 中 n 個歷史分數(shù),將結(jié)果顯示個用戶。隨時退出模塊: 測試完或?qū)⒉榭礆v史分數(shù)后,按任意鍵將返回到菜單,菜單中輸入 0 即可退出。4.24.2 本程序定義的數(shù)據(jù)結(jié)構(gòu)本程序定義的數(shù)據(jù)結(jié)構(gòu)typedef struct shiti /*定義表達式*/ char a20; /*存放表達式*/ long result; /*存放用戶輸入的答案*/xuanti;typedef struct SqStack1 /*建立數(shù)字棧*/ int *base; int *top; int stacksize;SqStack1; typedef struct SqStack2 /*建立運算符棧*/ char *bas

7、e; char *top; int stacksize;SqStack2;4.34.3 程序運行原理圖程序運行原理圖開始結(jié)束ai!=Precede(ai,top)top = aiCharPop(top);i+top aiCharPush(OPTR,ai+top aiIntPush(OPND,Operate(b,top,d)Y IntPush(OPND,Operate(b,top,d)N 4.4.4 4 測試模塊測試模塊測試模塊的流程圖為圖所示:開始選擇進行測試程序隨機調(diào)用題庫中 10 道題目依次給出用戶答題程序計算用戶得分,并根據(jù)得分給出相應(yīng)評價結(jié)束4.54.5 歷史成績查詢模塊歷史成績查詢模

8、塊歷史成績查詢模塊的流程圖為圖所示:開始選擇歷史成績查詢程序給出歷次測試成績,并根據(jù)成績給出評價。結(jié)束4.64.6 主函數(shù)與菜單函數(shù)模塊主函數(shù)與菜單函數(shù)模塊主函數(shù)與菜單函數(shù)模塊的源代碼為:void main() int m=0; int *RN; char ch;RN=(int *)malloc(1*sizeof(int); RN0=0; system(cls); /*清屏*/ LookN(RN,1); RN0+=m; fflush(stdin); menu: page_title(); /*輸出菜單*/ RN0+=m; m=0; switch(getch() case 1 : m=excer

9、sice_begin(); break; case 2 : Look_Mark(RN0); break; case 0 : RecN(RN,1); exit(0); system(cls); goto menu;5 調(diào)試分析本程序定義函數(shù)較多,調(diào)試時特別注意各個函數(shù)的調(diào)用。處學會靈活的運用F10 和 F11 的調(diào)試功能,就能達到事半功倍的效果。6 測試結(jié)果6.1 開始菜單此時選擇 1 直接開始測試,選擇 2 則查看歷史分數(shù),選擇 0 退出程序。6.2 選擇 1 開始測試舉例如下: 填入答案 221,結(jié)果如下:接著進行完本次測試:做完全部題目后得出得分,并有評價給出6.3 此時選 Y 繼續(xù)測試選 N 則回到主菜單:6.4 選擇 2 查看歷史得分及評價本次測試結(jié)果檢驗了該程序的功能和效果7 結(jié)論對本程序的總

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論