重慶大學本科學生課程設(shè)計任務(wù)書——長整數(shù)運算_第1頁
重慶大學本科學生課程設(shè)計任務(wù)書——長整數(shù)運算_第2頁
重慶大學本科學生課程設(shè)計任務(wù)書——長整數(shù)運算_第3頁
重慶大學本科學生課程設(shè)計任務(wù)書——長整數(shù)運算_第4頁
重慶大學本科學生課程設(shè)計任務(wù)書——長整數(shù)運算_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計方案設(shè)計重慶大學本科學生課程設(shè)計任務(wù)書課程設(shè)計題目長整數(shù)運算學院軟件學院專業(yè)軟件工程年級16級已知參數(shù)和設(shè)計要求問題描述設(shè)計一個程序?qū)崿F(xiàn)兩個任意長的整數(shù)求和運算。學生應(yīng)完成的工作基本要求利用雙項循環(huán)鏈表實現(xiàn)長整數(shù)的存儲,每個結(jié)點含一個整型變量。任何整型變量的范圍是(2151)(2151)。輸入和輸出形式按中國對于長整數(shù)的表示習慣,每四位一組,組間用逗號隔開。測試數(shù)據(jù)(1)0;0;應(yīng)輸出“0”。(2)2345,6789;7654,3211;應(yīng)輸出“1,0000,0000”。(3)9999,9999;1,0000,0000,0000;應(yīng)輸出“9999,0000,0001”。(4)1,0001,000;1,0001,0001;應(yīng)輸出“0”。(5)1,0001,0001;1,0001,0000;應(yīng)輸出“1”。目前資料收集情況(含指定參考資料)1ROBERTLKRUSE編DATASTRUCTURESANDPROGRAMDESIGNINC高等教育出版社,20012嚴蔚敏編數(shù)據(jù)結(jié)構(gòu)清華大學出版社,20003李春葆編數(shù)據(jù)結(jié)構(gòu)教程清華大學出版社,20024CLIFFORDASHAFFER著張銘,劉曉丹等譯數(shù)據(jù)結(jié)構(gòu)與算法分析第三版電子工業(yè)出版社,201310課程設(shè)計的工作計劃第14天完成方案設(shè)計與程序框圖第410天編寫程序代碼第1015天程序調(diào)試分析和結(jié)果第1520天課程設(shè)計報告和總結(jié)任務(wù)下達日期2017年12月15日完成日期2018年1月12日指導教師文俊浩(簽名)學生陳勇(簽名)說明1、學院、專業(yè)、年級均填全稱,如光電工程學院、測控技術(shù)、2003。2、本表除簽名外均可采用計算機打印。本表不夠,可另附頁,但應(yīng)在頁腳添加頁碼。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計方案設(shè)計1方案設(shè)計11問題描述利用雙項循環(huán)鏈表實現(xiàn)長整數(shù)的存儲,每個結(jié)點含一個整型變量。任何整型變量的范圍是(2151)(2151)。輸入和輸出形式按中國對于長整數(shù)的表示習慣,每四位一組,組間用逗號隔開。12需求分析核心問題長整形數(shù)的進行拆分再加減數(shù)據(jù)模型(邏輯結(jié)構(gòu))類似匯編的帶進位加法和帶進位減法存儲結(jié)構(gòu)循環(huán)鏈表,字符數(shù)組核心算法字符數(shù)組提取數(shù)字,鏈表的加減輸入數(shù)據(jù)兩個長整形數(shù)字輸出數(shù)據(jù)加減結(jié)果通過以上分析,該程序具有可行性。13運行環(huán)境硬件開發(fā)環(huán)境PC機軟件開發(fā)環(huán)境VS2015操作系統(tǒng)環(huán)境WINDOW14概要設(shè)計整個設(shè)計的流程圖數(shù)據(jù)結(jié)構(gòu)課程設(shè)計方案設(shè)計主函數(shù)輸入數(shù)據(jù)存入鏈表判斷運算輸出運算圖11數(shù)據(jù)結(jié)構(gòu)課程設(shè)計算法設(shè)計2算法設(shè)計21算法設(shè)計思想用兩個字符數(shù)組儲存輸入的字符串,再將字符串中的每個4位整數(shù)轉(zhuǎn)入成鏈表的關(guān)鍵節(jié)點分別儲存到兩個鏈表中,這樣就讓長整數(shù)分割開來,使得儲存成為現(xiàn)實,然后再分別把兩個鏈表的節(jié)點相加儲存到另一個鏈表中,用FLAG來判斷有無進位與借位,有進位FLAG置為1,無進位FLAG置為1,最后將結(jié)果鏈表按照要求的格式輸出即可22算法設(shè)計的對應(yīng)方式如1,1111,4444,5555,3334,0000,0001與1,0000,2321,9000,5555,0000相加圖2長整數(shù)1111144445555333400000001長整數(shù)100002321900055550000FLAG0001有進位000相加1111244447877233455550001數(shù)據(jù)結(jié)構(gòu)課程設(shè)計詳細設(shè)計3詳細設(shè)計31設(shè)計思想用字符數(shù)組來存儲輸入的數(shù),用循環(huán)鏈表的儲存整數(shù)的節(jié)點,以及計算的結(jié)果。用鏈表的好處可以節(jié)約空間,它可以隨著數(shù)據(jù)的長短來調(diào)整大小,同時,雙向循環(huán)鏈表也方便了查找和刪除。32設(shè)計關(guān)鍵算法節(jié)點類PUBLICEELEMENT/VALUEFORTHISNODELINKNEXT/POINTTONEXTNODEINLISTLINKPREV/POINTERTOPREVIOUSNODE/CONSTRUCTORSLINKCONSTENEXTNEXTVALPREVPREVPLINKLINKPREVPNULL,LINKNEXTVALNULLNEXTNEXTVALPREVPREVP雙向循環(huán)鏈表類TEMPLATECLASSDOUBLELLISTPRIVATELINKHEAD/POINTERTOLISTHEADERLINKTAIL/POINTERTOLASTELEMENTLINKCURR/ACCESSTOCURRENTELEMENTINTCNT/SIZEOFLISTPUBLICVOIDINIT/INTIALIZATIONHELPERMETHODCURRTAILHEADNEWLINK0,NULL,NULLTAILNEXTHEADHEADPREVTAIL數(shù)據(jù)結(jié)構(gòu)課程設(shè)計詳細設(shè)計CNT1VOIDREMOVEALL/RETURNLINKNODESTOFREESTOREWHILEHEADTAILCURRHEADHEADHEADNEXTDELETECURRDELETEHEAD/DOUBLELLISTINIT/CONSTRUCTORDOUBLELLISTCONSTETAILNEXTHEADHEADPREVTAILCNT0DOUBLELLIST/CONSTRUCTOR,MAKETHEHEADELEMENTWITH0CURRTAILHEADNEWLINK0,NULL,NULLHEADNEXTHEADPREVHEADCNT1/DESTRUCTORDOUBLELLISTREMOVEALLVOIDCLEARREMOVEALLINIT/CLEARLIST/INSERT“IT“ATCURRENTPOSITIONVOIDINSERTCONSTEIFTAILHEADTAILCURRNEXTCNT數(shù)據(jù)結(jié)構(gòu)課程設(shè)計詳細設(shè)計VOIDAPPENDCONSTEELSETAILHEADPREVTAILNEXTNEWLINKIT,TAIL,HEADCNT輸入VOIDINPUTCHARA,CHARB/輸入字符串COUTACOUTB轉(zhuǎn)化(將輸入的輸入轉(zhuǎn)化到鏈表中)/將儲存在字符串數(shù)組中的整數(shù)轉(zhuǎn)化到鏈表中VOIDCHARTRANSFORMLISTDOUBLELLIST/TEMP用于存儲中間每個4位整數(shù),R用于表示在4位整數(shù)的哪個位上,COUNT用于表示A的字符串長度,FLAG0表示整數(shù),1表示負數(shù)COUNTSTRLENAIFA0FLAG1FORINTICOUNT1,J0I0FLAGI,JINTMJ/5/M用于記錄第幾個數(shù)RJ5IFR4CONTINUEELSEIFR4ELSEIFA0IBIRETURN1BREAKIFAI1BI1RETURN1BREAKIFAISTRLENB|A0ELSEIFA0BREAKIFAI1BI1RETURN1BREAKIFAI/保存是否有進位或則是借位,進位為1,未進位為0,借位為1TEMP用為暫時存儲鏈表相加的結(jié)果COUT10000/處理進位FLAG1TEMPTEMP10000L3APPENDTEMPIFIL1LENGTH2ELSEIFL1LENGTHL2LENGTH/當L1的長度大于L2的長度L1MOVETOSTARTL2MOVETOSTARTFORINTI0I10000FLAG1TEMP10000L3APPENDTEMPIFIL1LENGTH2ELSE/當L2的長度大于L1的長度L1MOVETOSTARTL2MOVETOSTARTFORINTI0I10000FLAG1TEMP10000L3APPENDTEMPIFIL2LENGTH2ELSE/當符號不相同時IFABOLUTEVALUECHARARRAY1,CHARARRAY20/如果兩個整數(shù)絕對值大小相等,結(jié)果為0L3APPEND0ELSEIFABOLUTEVALUECHARARRAY1,CHARARRAY20/如果第一個整數(shù)絕對值大于數(shù)據(jù)結(jié)構(gòu)課程設(shè)計詳細設(shè)計第二個整數(shù)的絕對值L1MOVETOSTARTL2MOVETOSTARTFORINTI0IL2GETVALUETEMPL1GETVALUEL2GETVALUEFLAGFLAG0/沒有借位ELSETEMPL1GETVALUE10000L2GETVALUEFLAG1/有借位ELSEIFL1GETVALUEFLAG0TEMPL1GETVALUEFLAGFLAG0/沒有借位ELSETEMPL1GETVALUEFLAG10000FLAG1/有借位L3APPENDTEMP/第二個整數(shù)大于第一個整數(shù)絕對值的時候ELSEL1MOVETOSTARTL2MOVETOSTARTFORINTI0IL1GETVALUETEMPL2GETVALUEL1GETVALUEFLAGFLAG0/沒有借位ELSETEMPL2GETVALUEFLAG10000L1GETVALUEFLAG1/有借位ELSE/L1中整數(shù)遍歷完后,只剩下L2的整數(shù)IFL2GETVALUEFLAG0TEMPL2GETVALUEFLAGFLAG0/沒有借位ELSETEMPL2GETVALUEFLAG10000FLAG1/有借位L3APPENDTEMP輸出VOIDRESULTPRINTDOUBLELLISTL3,INTFLAG/L3存儲了相加的結(jié)果,F(xiàn)LAG儲存了結(jié)果的正負,結(jié)果顯示到屏幕上IFFLAG1000COUT100COUT10COUT“00“L3GETVALUEELSECOUT“000“L3GETVALUECOUTENDL數(shù)據(jù)結(jié)構(gòu)課程設(shè)計調(diào)試分析4調(diào)試分析_圖6數(shù)據(jù)結(jié)構(gòu)課程設(shè)計參考文獻5總結(jié)通過半個多月的學習和實踐,解決實際問題,讓我對鏈表有了更深的了解,對數(shù)據(jù)結(jié)構(gòu)產(chǎn)生了濃厚的興趣,同時也讓我提高了解決實際問題的能力。我們要不斷的通過上機來提高自己的學習水平,在上機的同時改正了自己對某些算法的錯誤使用,使自己在通過程序解決問題時抓住關(guān)鍵算法,有了算法設(shè)計思想和流程圖,并用C語言描繪出關(guān)鍵算法。以前我對數(shù)據(jù)結(jié)構(gòu)(C語言描述)的一些標準庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。讓自己有一定的能力去改正一些常見的錯誤語法,很高興這半個多月的學習讓我對數(shù)據(jù)結(jié)構(gòu)(C語言描述)有了新的認識,所以后在學習過程中,我會更加注視實踐操作,使自己便好地學好計算機。在這次課程設(shè)計的實驗中,我收獲了許多知識,通過查找大量資料,請教老師,以及不懈的努力,也培養(yǎng)了獨立思考、動手操作的能力。我也學會了許多學習和解決實際問題的方法,讓我受益匪淺。時間的緊缺成為一個很大的問題。也希望老師可以為我們知道一下以后的發(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論