軟件課程設(shè)計總結(jié)報告_第1頁
軟件課程設(shè)計總結(jié)報告_第2頁
軟件課程設(shè)計總結(jié)報告_第3頁
軟件課程設(shè)計總結(jié)報告_第4頁
軟件課程設(shè)計總結(jié)報告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編號: 字 號?軟件課程設(shè)計?報告班級:信科07-3班姓名:鄭志安學(xué)號:08073625講師:葛欣中國礦業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院2021年 11 月軟件課程設(shè)計任務(wù)書專業(yè)年級:電子信息科學(xué)與技術(shù)2007級學(xué)生姓名: 鄭志安 任務(wù)下達(dá)日期:2021年11月14日課程設(shè)計日期:2021年11月14日至2021年1月4日課程設(shè)計題目: 類別題目序號面向過程1,2,3,4,5,7, 面向?qū)ο?,2,3,4,5,6,圖形界面1數(shù)據(jù)構(gòu)造1,2,3,4 軟件課程設(shè)計指導(dǎo)教師評閱書指導(dǎo)教師評語根底理論及根本技能的掌握;獨立解決實際問題的能力;研究內(nèi)容的理論依據(jù)和技術(shù)方法;取得的主要成果及創(chuàng)新點;工作態(tài)度及工

2、作量;總體評價及建議成績;存在問題等:成 績: 指導(dǎo)教師簽字: 年 月 日目 錄=第一局部 根底題1面向過程 第3題:使用如下所謂的簡單變量“數(shù)據(jù)平移方法來求出Fibonacci數(shù)列的第n項顯示在屏幕上.71.1 需求分析11.2 概要設(shè)計.11.3 詳細(xì)設(shè)計與編碼.11.4 調(diào)試分析.21.5 用戶使用說明 .31.6 設(shè)計心得.3 第7題3.32.2 概要設(shè)計.32.3 詳細(xì)設(shè)計與編碼.42.4 調(diào)試分析.42.5 用戶使用說明 .52.6 設(shè)計心得.52面向?qū)ο?第3題利用虛函數(shù)手段,按照3種不同的計算方法來求出Fibonacci數(shù)列的第n項的具體項值并輸出。.5.53.2 概要設(shè)計.5

3、3.3 詳細(xì)設(shè)計與編碼.63.4 調(diào)試分析.63.5 用戶使用說明 .73.6 設(shè)計心得.7 第8題編寫程序?qū)崿F(xiàn)一個簡單的 記錄簿,要求記錄的個人信息包括:姓名,單位,家庭 ,移動 ,并包含保存、輸出、查詢、修改等功能.7.74.2 概要設(shè)計.74.3 詳細(xì)設(shè)計與編碼.84.4 調(diào)試分析.84.5 用戶使用說明 .94.6 設(shè)計心得.103可視化編程 第1題實現(xiàn)計算器編程。該計算器需要實現(xiàn)根底的數(shù)學(xué)運算,如加,減,乘,除。.115.2 概要設(shè)計.125.3 詳細(xì)設(shè)計與編碼.135.4 調(diào)試分析.145.5 用戶使用說明 .155.6 設(shè)計心得.15 第2題使用Visual C+ 6.0實現(xiàn)以下

4、繪圖程序可以參考附件中的程序代碼。.156.2 概要設(shè)計.156.3 詳細(xì)設(shè)計與編碼.156.4 調(diào)試分析.166.5 用戶使用說明 .166.6 設(shè)計心得.16 4數(shù)據(jù)構(gòu)造 第2題假設(shè)有一個循環(huán)鏈表的長度大于1,且表中既無頭結(jié)點也無頭指針。p為指向鏈表中某結(jié)點的指針,試編寫算法在鏈表中刪除結(jié)點p 的前趨結(jié)點。.177.2 概要設(shè)計.177.3 詳細(xì)設(shè)計與編碼.177.4 調(diào)試分析.187.5 用戶使用說明 187.6 設(shè)計心得.18 第3題求A矩陣的轉(zhuǎn)置矩陣B.198.2 概要設(shè)計.198.3 詳細(xì)設(shè)計與編碼.198.4 調(diào)試分析.198.5 用戶使用說明 .198.6 設(shè)計心得.201面向

5、過程 第3題 編程序,使用如下所謂的簡單變量“數(shù)據(jù)平移方法來求出Fibonacci數(shù)列的第n項的具體項值并顯示在屏幕上正整數(shù)n通過鍵盤輸入 需求分析:當(dāng)我們在生活中或者數(shù)學(xué)、物理等學(xué)習(xí)過程中,往往會遇到累加問題,即新的項是由于它距離最近的兩項的加和,不斷的生成新項,實現(xiàn)了累加,進(jìn)展所謂的“數(shù)據(jù)平移,因此實現(xiàn)此類算法是很有必要的。1.2 概要設(shè)計: 說明變量old1=1,old2=1,newItem;新的Fibonacci項newItem總是“距它最近的前兩項old1與old2的累加和。而后通過“old1=old2; old2=newItem;進(jìn)展所謂的“數(shù)據(jù)平移。接著計算另一個新的Fibona

6、cci項newItem,依次循環(huán),直到求出數(shù)列的第n項時為止。Fibonacci數(shù)列的計算公式如下: fib1 = 1;fib2 = 1;fibn = fibn-1 + fibn-2; /對大于等于3的任意n1.3詳細(xì)設(shè)計與編碼:流程圖old1=1,old2=1 真 假NewItem=Old1+old2Old1的值賦給K把old2的值賦給old1, newItem的值賦給old2實現(xiàn)移位返回錯誤 最終代碼及必要說明 #include using namespace std;int main()int old1=1,old2=1,newItem,n,k; /定義變量,newItem是總是靠近他的

7、前兩項cout-endl請輸入數(shù)列的項n;for(int i=0;in;i+) /設(shè)循環(huán),使i按循環(huán)向上加,直到NnewItem=old1+old2; /newItem等于它的前兩項之和k=old1; /累加和算法,在每一次循環(huán)過程中將其值前移old1=old2;old2=newItem;coutkendl; /輸出計算后的Kreturn 0;截圖如下一定要確定old1,old2, 1.newItem,n,k的類型是int型2賦值過程中一定是newItem=old1+old2; 而不是old1+old2 =newItem3. 注意體會嘗試程序的強健性。4嘗試用其他方法完成該程序用戶可直接通過鍵

8、盤向界面輸入你要求的Fibonacci數(shù)列的第n項,按回車鍵即可得到答案。1.6 設(shè)計心得:在這個程序設(shè)計中,所用的都是最根本的知識,對于最根本的知識一定要到達(dá)熟練的程度,才能熟中生巧,設(shè)計出高質(zhì)量的程序。2.面向過程 第7題將輸入的羅馬數(shù)據(jù)化為10進(jìn)制數(shù)。假設(shè)羅馬數(shù)據(jù)中只使用如下7個“基值字母:M、D、C、L、X、V、I,分別用來表示1000、500、100、50、10、5、1。2.1需求分析:我們在生活中常會遇見用羅馬數(shù)字表示的代碼或者數(shù)學(xué)、物理等學(xué)習(xí)過程中,往往會遇到將羅馬數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)的計算,設(shè)計一個簡單的轉(zhuǎn)換程序是很有意義的將輸入的10進(jìn)制正整數(shù)轉(zhuǎn)換為羅馬數(shù)據(jù)。假設(shè)羅馬數(shù)據(jù)中只使

9、用“基值字母:M、D、C、L、X、V、I,分別用來表示1000、500、100、50、10、5、1。顯然是一個翻譯程序,肯定是將一種表達(dá)形式換算成另一種表達(dá)形式。該題是把羅馬數(shù)字轉(zhuǎn)換成十進(jìn)制數(shù),初步設(shè)想:輸入一個字符數(shù)組,即一個羅馬數(shù)字,然后按照其位數(shù)上的權(quán)值展開后輸出,即輸出一個十進(jìn)制數(shù)。2.3詳細(xì)設(shè)計與編碼: 流程圖a=1000*m+500*d+100*c+50*l+10*x+5*v+1*i; /將翻譯的數(shù)付給a執(zhí)行判斷句,即else if語句輸入字符串,即羅馬數(shù)字判斷字符的表達(dá)和字符的初始化,m,d,c,等設(shè)0 輸入輸出 任意一個步驟出錯輸出錯誤 運行結(jié)果:1程序開場不可少語句 int

10、a,m=0,d=0,c=0,l=0,x=0,v=0,i=0; /設(shè)“基值并作零初始化,假設(shè)不做初始化,字母輸出任意值。2將對應(yīng)的權(quán)值相乘,將各位加和賦給a輸出,除了對應(yīng)之外沒有其他難點3嘗試著用其他方法編寫2.5用戶使用說明: 用戶可意直接根據(jù)提示從鍵盤輸入羅馬數(shù)字,按回車鍵可以方便得到結(jié)果2.6設(shè)計心得:此程序在設(shè)計之前,一定要分析好設(shè)計思路,巧妙運用循環(huán)語句。同時也要注意時間復(fù)雜度的分析,盡量使程序高效運行。3面向?qū)ο?第3題利用虛函數(shù)手段,按照3種不同的計算方法來求出Fibonacci數(shù)列的第n項的具體項值并輸出。具體地說,可通過在基類baseCla及其派生類fib1Cla、fib2Cl

11、a和fib3Cla中說明如下的同一個虛函數(shù)“virtual double fib(int n);,來實現(xiàn)求Fibonacci數(shù)列第n項值并返回的3種不同求解方法。運用對象實現(xiàn)該算,法雖是遞歸算法,對于實現(xiàn)大規(guī)模,繁多數(shù)據(jù)的處理是很有必要的。 主要函數(shù)列表,每條記錄應(yīng)包括函數(shù)名及功能簡要說明1.class baseCla /自定義基類baseCla2.virtual double fib(int n)=0 /在基類中說明一個虛函數(shù)fib,且為純虛函數(shù)3.class fib1Cla:public baseCla /基類class baseCla中派生出的fib1Cla4.virtual doubl

12、e fib(int n) /派生類中說明同一個虛函數(shù)fib 5.void fun(baseCla *p, int n) /定義函數(shù),用n指明項6.void main() /主函數(shù)調(diào)用輸出代碼略 截屏如下:定義基類baseCla的位置很重要。2基類class baseCla中派生出的fib1Cla的表達(dá)式的寫法不可些錯 為class fib1Cla:public baseCla寫程序時的位置對應(yīng),以便查錯。函數(shù)對應(yīng)的調(diào)用順序要正確,不但容易閱讀而且容易查錯??紤]程序的強健性,并不斷嘗試不同的更簡潔的算法使我們當(dāng)前的工作。3.5用戶使用說明:屏幕直接顯示。3.6設(shè)計心得:通過此題,我對上學(xué)期所學(xué)類

13、的定義以及應(yīng)用到達(dá)了復(fù)習(xí)的效果,熟悉了函數(shù)的調(diào)用等編程,F(xiàn)iboccas數(shù)列由于上學(xué)期就學(xué)過,對于期原理有一定的掌握,所以這個程序設(shè)計倒是不難。4面向?qū)ο?第8題編寫程序?qū)崿F(xiàn)一個簡單的 記錄簿,要求記錄的個人信息包括:姓名,單位,家庭 ,移動 。具體功能如下: 1.創(chuàng)立信息鏈表并以磁盤文件保存。2.讀取磁盤文件并顯示輸出所有人的移動 。 3.按姓名或單位查詢家庭 。 4.通過姓名和單位確定個人,修改其 信息并存盤. 把家庭 本用軟件的形式實現(xiàn),可以實現(xiàn)記錄,查找,修改以及反響有關(guān)信息更加自動化,而且以管理等優(yōu)點,特別是在 和信息很多很復(fù)雜是更會顯示出其優(yōu)點,因此實現(xiàn) 本系統(tǒng)是很有必要的。按要求

14、實現(xiàn)一個簡單的 簿,不難想到定義功能類,實現(xiàn)輸入,保存,讀取,查詢,修改等功能。初步設(shè)計:1.struct phonelist/信息輸入類2.phonelist *creat()/創(chuàng)立 簿3.find(phonelist *head,char name) /信息查詢類 4.change(phonelist *head,char name ) /信息改變類5.int main()/ 主函數(shù)調(diào)用,代碼略 截屏如下:1編程前一定要在整體考慮其構(gòu)造和實現(xiàn)功能方面做足功夫3程序時的位置對應(yīng),以便查錯。4函數(shù)對應(yīng)的調(diào)用順序要正確,不但容易閱讀而且容易查錯。5考慮程序的強健性,并不斷嘗試不同的更簡潔的算法使

15、我們當(dāng)前的4.5用戶使用說明:用戶可以根據(jù)提示從鍵盤先選擇功能鍵,然后一步一步根據(jù)提示輸入信息,程序系統(tǒng)會自動在屏幕上生成用戶想要的信息4.6設(shè)計心得:通過該程序的設(shè)計,更體會到在大規(guī)模的信息調(diào)用類以及生成類會更好,更進(jìn)一步培養(yǎng)自己的編程風(fēng)格,先整體規(guī)劃,然后一步一步實現(xiàn);出錯處理的能力;算法復(fù)雜度分析,期待著更大的進(jìn)步 5 可視化編程 計算器5.1用你熟悉的一種可視化編程語言實現(xiàn)如下列圖所示的計算器。該計算器需要實現(xiàn)根底的數(shù)學(xué)運算,如加,減,乘,除。小型計算器的可視化編程程序是用mfc制作,在進(jìn)入mfc時選擇根本對話框來建立工程,然后根據(jù)題目圖形的需求,在工作區(qū)的Resourceview中的

16、Dialog進(jìn)展框架的設(shè)計,如上圖所示的圖形進(jìn)展按鈕的拖放,當(dāng)按鈕都拖放完畢后就進(jìn)展按鈕函數(shù)的設(shè)計實現(xiàn)過程:加法的實現(xiàn),如7+8=15的操作如下:2.乘法的實現(xiàn),如8*9=72的操作如下:減法和除法的實現(xiàn)就不再表示了。本程序的設(shè)計過程是根據(jù)學(xué)校所給的范例程序仿制而成,當(dāng)將程序?qū)戇M(jìn)去后,在調(diào)試時出現(xiàn)的主要問題就是不能顯示點擊的數(shù)字和結(jié)果,經(jīng)過本程序是簡單的計算器程序使用很簡單,直接點擊按鈕和相應(yīng)的算術(shù)符號就能得到結(jié)果。5.6設(shè)計心得 可視化編程編程由于以前沒接觸過所以較難,許多函數(shù)都要查資料,或上網(wǎng)搜尋。6可視化編程使用Visual C+ 6.0實現(xiàn)以下繪圖程序可以參考附件中的程序代碼。要求:(

17、1)程序中包含圖中所示菜單項和工具欄;(2)先選擇菜單項或單擊工具欄上的命令按鈕,然后在窗體空白區(qū)域單擊鼠標(biāo)后,繪制相應(yīng)菜單項或命令按鈕指定的圖形、文字。學(xué)習(xí)使用編程實現(xiàn)繪圖程序是用MFC制作,在進(jìn)入MFC時選擇根本對話框來建立工程,然后根據(jù)題目圖形的需求,在工作區(qū)的Resourceview中的Dialog進(jìn)展框架的設(shè)計,跟著視頻思路往下走。第一步:初步界面第二步:圖形界面第三步:實現(xiàn)文字輸出第四部:實現(xiàn)繪圖第五步:圖形與文字:本程序的設(shè)計過程是根據(jù)學(xué)校所給的范例程序仿制而成,操作較簡單,寫入程序后較容易調(diào)試。根據(jù)窗口上面的提示用鼠標(biāo)左鍵單擊即可得到用戶所用的圖形和文字。6.6設(shè)計心得通過花一

18、定的時間看完MFC視頻跟著提示的步驟制作,熟練了可視化編程的步驟,為以后的學(xué)習(xí)積累根底。7數(shù)據(jù)構(gòu)造第二題假設(shè)有一個循環(huán)鏈表的長度大于1,且表中既無頭結(jié)點也無頭指針。p為指向鏈表中某結(jié)點的指針,試編寫算法在鏈表中刪除結(jié)點p 的前趨結(jié)點。在數(shù)據(jù)構(gòu)造的學(xué)習(xí)中,鏈表是最常見的存儲方式,鏈表的插入,刪除,改正也就是很常用的操作,對它的學(xué)習(xí)就顯得很有必要而且很有意義。1. 對節(jié)點的刪除,無疑先要定義一個構(gòu)造體和指針,運來存放和查找要刪除的節(jié)點struct Node *next2.設(shè)計一個類求前驅(qū)節(jié)點:Node* getPriorNode(Node *node)3. 刪除指向結(jié)點的前驅(qū)結(jié)點:deletePriorNode(Node *node) 4. 輸出原始鏈表:printList(Node *node) 5.主函數(shù)將操作后的鏈表輸出。代碼略截圖如下;1.我在首次調(diào)試時錯將指向前驅(qū)節(jié)點的指針分開寫了,這顯然是一個錯,指針是一個具有整體性的符號,不能分裂。2.編寫過程要細(xì)心,缺分號,括號的現(xiàn)象也有時發(fā)生程序中的數(shù)字是從編程時輸入的,平心而論該

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論