C語(yǔ)言實(shí)習(xí)實(shí)例經(jīng)典版_第1頁(yè)
C語(yǔ)言實(shí)習(xí)實(shí)例經(jīng)典版_第2頁(yè)
C語(yǔ)言實(shí)習(xí)實(shí)例經(jīng)典版_第3頁(yè)
C語(yǔ)言實(shí)習(xí)實(shí)例經(jīng)典版_第4頁(yè)
C語(yǔ)言實(shí)習(xí)實(shí)例經(jīng)典版_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

/目錄\o"1-3"\h\z":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)習(xí)步驟 271455606\h2":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)習(xí)報(bào)告規(guī)范 271455607\h4":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)習(xí)報(bào)告樣例1最大公因數(shù) 271455608\h5":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)習(xí)報(bào)告樣例2進(jìn)制轉(zhuǎn)換 271455609\h11":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"調(diào)試方法簡(jiǎn)介 271455610\h18":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"6.0調(diào)試方法簡(jiǎn)介 271455611\h24":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)用書(shū)推薦 271455612\h28":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"預(yù)備實(shí)驗(yàn)1字符串處理 271455613\h30":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"預(yù)備實(shí)驗(yàn)2文件讀取 271455614\h31":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"預(yù)備實(shí)驗(yàn)3隨機(jī)數(shù)生成 271455615\h32":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"預(yù)備實(shí)驗(yàn)4遞歸函數(shù) 271455616\h33":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"預(yù)備實(shí)驗(yàn)5字符串?dāng)?shù)組的查找 271455617\h34":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)1約瑟夫環(huán)問(wèn)題 271455618\h35":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)2一元多項(xiàng)式的運(yùn)算 271455619\h36":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)3逆波蘭表達(dá)式求值 271455620\h37":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)4楊輝三角顯示 271455621\h39":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)5四則運(yùn)算表達(dá)式求值 271455622\h40":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)6 271455623\h41":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)7優(yōu)先隊(duì)列與堆 271455624\h42":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)8哈夫曼編/譯碼器 271455625\h44":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)9圖的遍歷問(wèn)題 271455626\h45":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)10教學(xué)計(jì)劃編制問(wèn)題 271455627\h47":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)11最短路徑問(wèn)題 271455628\h48":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)12最小生成樹(shù)問(wèn)題 271455629\h50":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)13快速排序 271455630\h51":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)14基數(shù)排序 271455631\h53":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)15散列表 271455632\h54":\\\\\\\\數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)(2015年春劉君)"實(shí)驗(yàn)16自組織線性表 271455633\h56

實(shí)習(xí)步驟(一)問(wèn)題分析和任務(wù)定義 在進(jìn)行設(shè)計(jì)之前,首先應(yīng)該充分地分析和理解問(wèn)題,明確問(wèn)題要求做什么?限制條件是什么。注意:本步驟強(qiáng)調(diào)的是做什么?而不是怎么做。主要完成三個(gè)方面的工作:分析并確定問(wèn)題要處理的對(duì)象(數(shù)據(jù))是什么。例如:輸入數(shù)據(jù)的類(lèi)型、值的范圍以及輸入的形式。分析并確定要實(shí)現(xiàn)的功能是什么。也就是說(shuō)要對(duì)輸入的數(shù)據(jù)進(jìn)行什么樣的處理。注意:對(duì)問(wèn)題中描述的需要實(shí)現(xiàn)的功能,應(yīng)避開(kāi)算法(具體的實(shí)現(xiàn)方法)和所涉及的數(shù)據(jù)類(lèi)型,僅需對(duì)所需完成的任務(wù)做出明確的定義。分析并確定處理后的結(jié)果如何顯示。這一步還應(yīng)該為調(diào)試程序準(zhǔn)備好測(cè)試數(shù)據(jù),包括合法的輸入數(shù)據(jù)和非法形式的輸入數(shù)據(jù);以及相應(yīng)的輸出結(jié)果。(二)數(shù)據(jù)類(lèi)型和系統(tǒng)設(shè)計(jì) 當(dāng)需求分析結(jié)束,明確問(wèn)題要求后,開(kāi)始為編寫(xiě)程序設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu)和算法。本步驟分概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩步實(shí)現(xiàn)。概要設(shè)計(jì)指的是,對(duì)問(wèn)題描述中涉及的操作對(duì)象定義相應(yīng)的抽象數(shù)據(jù)類(lèi)型,并設(shè)計(jì)合適的算法;以及定義程序各個(gè)功能模塊和模塊之間的關(guān)系。在這個(gè)過(guò)程中,要根據(jù)問(wèn)題的功能需求綜合考慮,設(shè)計(jì)時(shí)空復(fù)雜度最優(yōu)的抽象數(shù)據(jù)結(jié)構(gòu)和算法(注意:實(shí)現(xiàn)提示和給出的部分代碼中以及給出了建議)。抽象數(shù)據(jù)類(lèi)型的實(shí)現(xiàn)盡可能做到數(shù)據(jù)封裝,基本操作的規(guī)格說(shuō)明盡可能明確具體,算法思想和過(guò)程明確有效,程序結(jié)構(gòu)清晰、合理、簡(jiǎn)單和易于調(diào)試。作為概要設(shè)計(jì)的結(jié)果,應(yīng)寫(xiě)出每個(gè)抽象數(shù)據(jù)類(lèi)型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個(gè)基本操作的規(guī)格說(shuō)明),主要模塊的算法思想,并畫(huà)出模塊之間的調(diào)用關(guān)系圖。詳細(xì)設(shè)計(jì)則定義相應(yīng)的物理存儲(chǔ)結(jié)構(gòu)(抽象數(shù)據(jù)類(lèi)型的物理實(shí)現(xiàn))并寫(xiě)出各基本操作的偽碼算法,以及主要模塊算法的具體步驟。詳細(xì)設(shè)計(jì)的結(jié)果是對(duì)數(shù)據(jù)結(jié)構(gòu)和基本操作的規(guī)格說(shuō)明做出進(jìn)一步的求精,寫(xiě)出數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的類(lèi)型定義,算法書(shū)寫(xiě)規(guī)范(采用文字性的步驟描述或者算法流程圖的形式都行)。在求精的過(guò)程中,應(yīng)盡量避免陷入語(yǔ)言細(xì)節(jié),不必過(guò)早描述輔助數(shù)據(jù)結(jié)構(gòu)和局部變量。(三)編碼實(shí)現(xiàn)和靜態(tài)檢查 在實(shí)驗(yàn)過(guò)程中,題目中會(huì)給出程序的部分源代碼,根據(jù)實(shí)習(xí)第二步的設(shè)計(jì)結(jié)果以及源代碼的提示,編碼實(shí)現(xiàn)程序的其余部分。編碼是把詳細(xì)設(shè)計(jì)的結(jié)果進(jìn)一步求精為程序設(shè)計(jì)語(yǔ)言程序。對(duì)于編程很熟練的讀者,如果基于詳細(xì)設(shè)計(jì)的偽碼算法就能直接在鍵盤(pán)上輸入程序的話,則可以不必用筆在紙上寫(xiě)出編碼,而將這一步的工作放在上機(jī)準(zhǔn)備之后進(jìn)行,即在上機(jī)調(diào)試之前直接用鍵盤(pán)輸入。寫(xiě)出編碼的程序后,在上機(jī)(編譯和調(diào)試)之前,認(rèn)真的靜態(tài)檢查是必不可少的。多數(shù)初學(xué)者在編好程序后處于以下兩種狀態(tài)之一:一種是對(duì)自己的“精心作品”的正確性確信不疑;另一種是認(rèn)為糾查錯(cuò)誤是編譯器的工作。這兩種態(tài)度是極為有害的。事實(shí)上,非訓(xùn)練有素的程序設(shè)計(jì)者編寫(xiě)的程序長(zhǎng)度超過(guò)50行時(shí),極少不含有除語(yǔ)法錯(cuò)誤以外的錯(cuò)誤。上機(jī)動(dòng)態(tài)調(diào)試決不能代替靜態(tài)檢查,否則調(diào)試效率是極低的。靜態(tài)檢查主要有兩種方法,一是用一組測(cè)試數(shù)據(jù)手工執(zhí)行程序(通常應(yīng)先分模塊檢查);二是通過(guò)閱讀或給別人講解自己的程序而深入全面地理解程序邏輯,在這個(gè)過(guò)程中再加入一些注解和斷言。如果程序中邏輯概念清楚,后者將比前者有效。(四)上機(jī)準(zhǔn)備和上機(jī)調(diào)試 上機(jī)準(zhǔn)備包括一下幾個(gè)方面:熟悉機(jī)器的操作系統(tǒng)和語(yǔ)言集成環(huán)境的用戶(hù)手冊(cè),尤其是最常用的命令操作,以便順利進(jìn)行上機(jī)的基本活動(dòng)。上機(jī)調(diào)試程序時(shí)要帶一本高級(jí)語(yǔ)言教材或手冊(cè)。掌握調(diào)試工具,考慮調(diào)試方案,設(shè)計(jì)測(cè)試數(shù)據(jù)并手工得出正確結(jié)果?!澳サ恫徽`砍柴工”。計(jì)算機(jī)各專(zhuān)業(yè)的學(xué)生應(yīng)該能夠熟練運(yùn)用高級(jí)語(yǔ)言的程序調(diào)試器調(diào)試程序。上機(jī)調(diào)試程序時(shí)要帶一本高級(jí)語(yǔ)言教材或手冊(cè)。調(diào)試最好分模塊進(jìn)行,自底向上,即先調(diào)試底層函數(shù)。必要時(shí)可以另寫(xiě)一個(gè)調(diào)用驅(qū)動(dòng)程序。這種表面上的工作實(shí)際上可以大大降低調(diào)試所面臨的復(fù)雜性,提高調(diào)試工作效率。在調(diào)試過(guò)程中可以不斷借助的各種功能,提高調(diào)試效率。調(diào)試中遇到的各種異?,F(xiàn)象往往是預(yù)料不到的,此時(shí)不應(yīng)“冥思苦想”,而應(yīng)動(dòng)手確定疑點(diǎn),通過(guò)修改程序來(lái)證實(shí)它或繞過(guò)它。調(diào)試正確后,認(rèn)真整理源程序及其注釋?zhuān)〕鰩в型暾⑨尩那腋袷搅己玫脑闯绦蚯鍐魏徒Y(jié)果。(五)總結(jié)和整理實(shí)習(xí)報(bào)告 按照實(shí)習(xí)報(bào)告的格式完成整個(gè)實(shí)習(xí)報(bào)告。同時(shí)總結(jié)和思考,回味設(shè)計(jì)的過(guò)程,體會(huì)調(diào)試的過(guò)程,總結(jié)編程中的收獲,記錄實(shí)習(xí)過(guò)程的體會(huì),交流程序設(shè)計(jì)各個(gè)步驟的心得?!皩W(xué)而不思則罔,思而不學(xué)則殆。”在程序設(shè)計(jì)中,只有做到勤思考、善總結(jié),才能不斷進(jìn)步。

實(shí)習(xí)報(bào)告規(guī)范實(shí)習(xí)報(bào)告的開(kāi)頭應(yīng)給出題目、班級(jí)、姓名、學(xué)號(hào)和完成日期,并包括以下七個(gè)內(nèi)容:需求分析以無(wú)歧義的陳述說(shuō)明程序設(shè)計(jì)的任務(wù),強(qiáng)調(diào)的是程序要做什么?明確規(guī)定:輸入的形式和輸入值的范圍;輸出的形式;程序所能達(dá)到的功能;測(cè)試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。概要設(shè)計(jì)說(shuō)明本程序中用到的所有抽象數(shù)據(jù)類(lèi)型的定義、算法的基本思想、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類(lèi)型(物理數(shù)據(jù)結(jié)構(gòu)),對(duì)每個(gè)操作只需要寫(xiě)出偽碼算法;算法的具體步驟;算法的時(shí)空分析和改進(jìn)設(shè)想;畫(huà)出函數(shù)的調(diào)用關(guān)系圖。輸入和輸出的格式。調(diào)試分析調(diào)試過(guò)程中遇到的問(wèn)題,以及如何解決的;測(cè)試結(jié)果根據(jù)實(shí)驗(yàn)提供的測(cè)試數(shù)據(jù),列出你所編寫(xiě)的程序的測(cè)試結(jié)果。用戶(hù)使用說(shuō)明(可選)說(shuō)明如何使用編寫(xiě)的程序,詳細(xì)列出每一步的操作步驟。實(shí)驗(yàn)心得(可選)對(duì)實(shí)驗(yàn)設(shè)計(jì)與實(shí)現(xiàn)過(guò)程的回顧和分析,以及經(jīng)驗(yàn)和體會(huì)。附錄(可選)帶注釋的源程序。如果是提交源程序電子版,只需列出程序文件名的清單。

實(shí)習(xí)報(bào)告樣例1最大公因數(shù)題目部分背景因數(shù)分解,求最大公因數(shù)和公倍數(shù)等問(wèn)題都是數(shù)學(xué)中古老而又重要德問(wèn)題,這些問(wèn)題在代數(shù)學(xué)、""\o"密碼學(xué)"密碼學(xué)、""\o"計(jì)算復(fù)雜性理論"計(jì)算復(fù)雜性理論和""\o"量子計(jì)算機(jī)"量子計(jì)算機(jī)等領(lǐng)域中有重要意義。問(wèn)題描述兩個(gè)整數(shù)的最大公因數(shù)是同時(shí)整除二者的最大整數(shù)。試設(shè)計(jì)一個(gè)計(jì)算兩個(gè)整數(shù)的最大公因數(shù)的程序。基本要求用戶(hù)輸入兩個(gè)正整數(shù),其取值范圍為(0,216),要求采用歐幾里德算法,計(jì)算最大公因數(shù)。測(cè)試數(shù)據(jù) 輸入 759 1035輸出 69實(shí)現(xiàn)提示注意題目給出的正整數(shù)的取值范圍,定義變量時(shí),選擇合適的數(shù)據(jù)類(lèi)型。歐幾里德算法計(jì)算最大公因數(shù),編寫(xiě)成一個(gè)獨(dú)立的函數(shù),并注意該算法對(duì)兩個(gè)數(shù)據(jù)的大小關(guān)系有要求,在設(shè)計(jì)函數(shù)的輸入?yún)?shù)以及函數(shù)處理代碼時(shí)要注意處理。選作內(nèi)容設(shè)計(jì)一個(gè)求取n個(gè)正整數(shù)的最大公因數(shù)的函數(shù)。如果用戶(hù)輸入的正整數(shù)的取值范圍為(0,232)、(0,264),請(qǐng)?jiān)O(shè)計(jì)求取兩個(gè)大的正整數(shù)的最大公因數(shù)的函數(shù)。源程序及填空部分“”;歐幾里德算法計(jì)算最大公因數(shù)函數(shù)(M,N){ 填空}(){ a,b,g; 輸入 (“\n本程序可以求取兩個(gè)正整數(shù)的最大公因數(shù)\n”); (“\n請(qǐng)輸入第一個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000):”); (“”,);(“\n請(qǐng)輸入第二個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000):”); (“”,); (a,b); 輸出 (“\n兩者的最大公因數(shù)是:”,g);}

實(shí)驗(yàn)報(bào)告部分課程實(shí)習(xí)報(bào)告題目:最大公因數(shù) 學(xué)生姓名學(xué)生學(xué)號(hào) 專(zhuān)業(yè)班級(jí) 指導(dǎo)老師 一、需求分析本程序要求采用歐幾里德算法,計(jì)算并輸出用戶(hù)輸入的兩個(gè)正整數(shù)的最大公因數(shù)。兩個(gè)正整數(shù)由用戶(hù)通過(guò)鍵盤(pán)輸入,其取值范圍為(0,216)。不對(duì)非法輸入做處理,即假設(shè)輸入都是合法的。在界面輸出最大公因數(shù)。測(cè)試數(shù)據(jù) 輸入 759 1035輸出 69二、概要設(shè)計(jì) 抽象數(shù)據(jù)類(lèi)型為實(shí)現(xiàn)上述程序的功能,應(yīng)以整數(shù)存儲(chǔ)用戶(hù)的輸入,以及計(jì)算出的結(jié)果。算法的基本思想根據(jù)題目要求,采用歐幾里德算法計(jì)算兩個(gè)正整數(shù)的最大公因數(shù)。該算法的基本思想是輾轉(zhuǎn)相除法。設(shè)兩數(shù)為a、b(b<a),求它們最大公約數(shù)(a、b)的步驟如下:1.a÷b,令r為所得余數(shù)(0≤r<b) 若r=0,算法結(jié)束;b即為答案。2.互換:置a←b,b←r,并返回第一步。程序的流程程序由三個(gè)模塊組成:輸入模塊:完成兩個(gè)正整數(shù)的輸入,存入變量a和b中。計(jì)算模塊:設(shè)計(jì)一個(gè)最大公因數(shù)函數(shù),(M,N),兩個(gè)整數(shù)作為函數(shù)參數(shù),計(jì)算結(jié)果通過(guò)函數(shù)名返回。輸出模塊:屏幕上顯示計(jì)算的最大公因數(shù)。三、詳細(xì)設(shè)計(jì)物理數(shù)據(jù)類(lèi)型題目要求輸入的正整數(shù)的取值范圍在(0,216)之間,為了能夠存儲(chǔ),采用C語(yǔ)言中的長(zhǎng)整型定義變量。算法的具體步驟歐幾里德算法計(jì)算兩個(gè)正整數(shù)的最大公因數(shù)的算法流程圖如下算法的時(shí)空分析算法的運(yùn)行時(shí)間依賴(lài)與確定余數(shù)序列有多長(zhǎng)。可以證明,在兩次迭代后,余數(shù)最多是原始值的一半。則迭代次數(shù)是2N=O(N)。輸入和輸出的格式輸入本程序可以求取兩個(gè)正整數(shù)的最大公因數(shù) 提示 請(qǐng)輸入第一個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000):提示 等待輸入 請(qǐng)輸入第二個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000):提示 等待輸入 輸出 提示兩者的最大公因數(shù)是:輸出結(jié)果的位置四、調(diào)試分析 略。五、測(cè)試結(jié)果 輸入 50 15 輸出 5 輸入 19891590輸出 3 六、用戶(hù)使用說(shuō)明(可選)1、本程序的運(yùn)行環(huán)境為操作系統(tǒng),執(zhí)行文件為2、運(yùn)行程序時(shí)提示輸入兩個(gè)整數(shù)本程序可以求取兩個(gè)正整數(shù)的最大公因數(shù) 請(qǐng)輸入第一個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000): 請(qǐng)輸入第二個(gè)正整數(shù)(注意輸入的數(shù)要小于2100000000): 輸出 兩者的最大公因數(shù)是:七、實(shí)驗(yàn)心得(可選)略。七、附錄(可選) 主程序

實(shí)習(xí)報(bào)告樣例2進(jìn)制轉(zhuǎn)換題目部分背景機(jī)制轉(zhuǎn)換是計(jì)算機(jī)實(shí)現(xiàn)計(jì)算的基本問(wèn)題。問(wèn)題描述十進(jìn)制數(shù)N和其他d進(jìn)制數(shù)的轉(zhuǎn)換是計(jì)算機(jī)實(shí)現(xiàn)計(jì)算的基本問(wèn)題。請(qǐng)編制一個(gè)滿(mǎn)足下列要求的進(jìn)制轉(zhuǎn)換程序?;疽笥脩?hù)輸入一個(gè)非負(fù)的十進(jìn)制整數(shù),其取值范圍為(0,216),打印輸出與其等值的八進(jìn)制數(shù)。測(cè)試數(shù)據(jù) 輸入 1000 輸出 1750實(shí)現(xiàn)提示利用求模取余法,N=(Nd)×d+Nd公式實(shí)現(xiàn)。由于上述計(jì)算過(guò)程是從低位到高位順序產(chǎn)生八進(jìn)制數(shù)的各個(gè)數(shù)位,而打印輸出正好相反,利用堆棧的后進(jìn)先出的特性正好實(shí)現(xiàn)。選作內(nèi)容設(shè)計(jì)一個(gè)能處理小數(shù)的進(jìn)制轉(zhuǎn)換程序。設(shè)計(jì)一個(gè)能處理負(fù)數(shù)的進(jìn)制轉(zhuǎn)換程序。源程序及填空部分<><>/*包含動(dòng)態(tài)內(nèi)存分配函數(shù)的頭文件*/;{ ; *;};{ *; ;};(*S)構(gòu)造一個(gè)空棧S。{ >; >0;}(*S)若棧S為空棧,則返回,否則返回{ (>0) 1; 0返回1表示 ,否則返回0表示}(*S,e)新元素e入棧{ 填空}(*S,*e)棧頂元素出棧,并以e返回其值{ 填空}(*S,N)進(jìn)制轉(zhuǎn)換,保存(入棧)在S中{ 填空}(*S)輸出,把S中元素出棧,并顯示{ 填空}(){ *; N; d; (*)(());關(guān)鍵的初始化 ("",); (); (,N); ();}

實(shí)驗(yàn)報(bào)告部分課程實(shí)習(xí)報(bào)告題目:進(jìn)制轉(zhuǎn)換 學(xué)生姓名學(xué)生學(xué)號(hào) 專(zhuān)業(yè)班級(jí) 指導(dǎo)老師 一、需求分析本程序要求對(duì)用戶(hù)輸入一個(gè)非負(fù)的十進(jìn)制整數(shù),打印輸出與其等值的八進(jìn)制數(shù)。十進(jìn)制整數(shù)由用戶(hù)通過(guò)鍵盤(pán)輸入,其取值范圍為(0,28)。不對(duì)非法輸入做處理,即假設(shè)輸入都是合法的。在界面輸出其等值的八進(jìn)制數(shù)。測(cè)試數(shù)據(jù) 輸入 1348輸出 2504二、概要設(shè)計(jì) 抽象數(shù)據(jù)類(lèi)型為實(shí)現(xiàn)上述程序的功能,應(yīng)以整數(shù)存儲(chǔ)用戶(hù)的輸入。為了實(shí)現(xiàn)求模取余法,利用堆棧保存計(jì)算的結(jié)果。堆棧定義如下: 數(shù)據(jù)對(duì)象:整數(shù)基本操作: ()構(gòu)造一個(gè)空棧S。(S)若棧S為空棧,則返回,否則返回 (S,)新元素e入棧 (,)棧頂元素出棧,并以e返回其值算法的基本思想根據(jù)題目要求,用求模取余法,N=(Nd)×d+Nd公式實(shí)現(xiàn)。由于上述計(jì)算過(guò)程是從低位到高位順序產(chǎn)生八進(jìn)制數(shù)的各個(gè)數(shù)位,而打印輸出正好相反,利用堆棧的后進(jìn)先出的特性正好實(shí)現(xiàn)。程序的流程程序由三個(gè)模塊組成:輸入模塊:完成正整數(shù)的輸入,存入變量N中。轉(zhuǎn)換模塊:實(shí)現(xiàn)求模取余法,余數(shù)依次入堆棧中。輸出模塊:從堆棧中取數(shù),并顯示在屏幕上。三、詳細(xì)設(shè)計(jì)物理數(shù)據(jù)類(lèi)型題目要求輸入的正整數(shù)的取值范圍在(0,28)之間,為了能夠存儲(chǔ),變量N采用C語(yǔ)言中的定義變量。因?yàn)槎褩P璐鎯?chǔ)的元素個(gè)數(shù)和十進(jìn)制數(shù)N的大小直接相關(guān),其長(zhǎng)度變化很大,所以堆棧采用單鏈表來(lái)實(shí)現(xiàn)其物理數(shù)據(jù)結(jié)構(gòu)。堆棧的每個(gè)元素只需存儲(chǔ)0-8的字符,所以棧中元素類(lèi)型定義為字符型。{ ; *;};{ *; ;};(*S)構(gòu)造一個(gè)空棧S。{ >=; >0;}(*S)若棧S為空棧,則返回,否則返回{ 若>=0返回1表示 ,否則返回0表示} (*S,e)新元素e入棧 {分配新空間,建立一個(gè)新結(jié)點(diǎn)L=(*)(());若L==返回0表示;入棧失敗>=e;>=>;插入

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論