版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計報告設(shè)計題目:進制轉(zhuǎn)換問題學生姓名:專 業(yè):信息安全班 級:信息安全 10-02學 號:指導(dǎo)教師:完成日期: 2011 年 12 月課程設(shè)計報告的內(nèi)容及要求一、問題描述 :任意給定一個 M進制的數(shù)x,請實現(xiàn)如下要求:1求出此數(shù)x的10進制值(用MD表示)2、實現(xiàn)對x向任意的一個非M進制的數(shù)的轉(zhuǎn)換3、至少用兩種或兩種以上的方法實現(xiàn)上述要求(用棧解決,用數(shù)組解決,其它方法解決) 軟件環(huán)境: Vc6.0 編程軟件二、實驗環(huán)境運行平臺: Win32 硬件:普通個人 pc 機 軟件環(huán)境: VC+6.0 編程軟件三、解決辦法 :1、用數(shù)組實現(xiàn)該問題:ten_else() 函數(shù)是實現(xiàn)十進制轉(zhuǎn)換為其它
2、進制的函數(shù), 先設(shè)置一個 while 循環(huán), 當十進 制數(shù)g等于零時停止,再將輸入的十進制數(shù)x取首先對需要轉(zhuǎn)換的進制M取余,然后再對其取整, 并將所得的余數(shù)依次存入一個數(shù)組中, 然后逆向取出數(shù)組中的元素, 即得到轉(zhuǎn)換后的 結(jié)果。將其他進制 M轉(zhuǎn)換為十進制,并將其轉(zhuǎn)換為非M進制數(shù)是在主函數(shù)中實現(xiàn)的。M進制轉(zhuǎn)十進制則是從該 M進制數(shù)的最后一位開始算,依次列為第0、1、2n位并分別乘以M的0、1、2n次方,將得到的次方相加便得到對應(yīng)的十進制數(shù),再調(diào)用ten_else ()函數(shù)將其轉(zhuǎn)換為非 M進制的數(shù)。實際上十進制起到了一個橋梁作用。2、用棧實現(xiàn)該問題:與數(shù)組方法核心思想相同, stack 定義棧,初
3、始化一個空棧,然后判斷是否為空,接著 是去棧頂元素(用 z表示棧頂元素),數(shù)據(jù)入棧,出棧的操作。棧具有后進先出的性質(zhì),故 其用 s.pop() 取數(shù)較數(shù)組的逆向取數(shù)較為方便,體現(xiàn)了棧的優(yōu)越性。四、設(shè)計和編碼的回顧討論和分析(1) 函數(shù) ten_else() 的作用體現(xiàn)在將任意 10 進制數(shù)轉(zhuǎn)換為非 10 進制數(shù),程序能實現(xiàn) 116 進制的相互轉(zhuǎn)換。在 10 進制以上的數(shù)需要用字母表示,由此設(shè)計了 switch 函數(shù),當出現(xiàn)余數(shù)大與10的情況可以調(diào)用相應(yīng)的字母。考慮到最終結(jié)果是所求余數(shù)的倒序,添加新的整型變量j,通過一個for循環(huán)實現(xiàn)倒序。(2) 編程初期設(shè)計了 else_ten函數(shù),后幾經(jīng)修改
4、將其融入main函數(shù)中較為直觀。(3) 當輸入10進制以下的數(shù)向10進制轉(zhuǎn)換時候較為簡單,程序中設(shè)計char型數(shù)組smaxnum 來統(tǒng)計所輸入數(shù)據(jù)的位數(shù),不需要用戶輸入。在求10進制的時候通過for循環(huán)求一個累和即 可。(4) 當輸入10進制以上的數(shù)設(shè)計字母較為復(fù)雜,通過對ASCH表的理解設(shè)計程序。(5) 在用棧法實現(xiàn)非10進制向10進制轉(zhuǎn)換的時候遇到了些麻煩, 當輸入8A的時候程序?qū)? 當成字符類型,將其編譯為數(shù)字 56,導(dǎo)致最終轉(zhuǎn)換結(jié)果出現(xiàn)錯誤。于是通過查閱ASCH表對程序做出了修正,設(shè)計了條件語句if(z=65)z-=65;z+=10;五、程序框圖六、經(jīng)驗和體會(1) 我們在寫程序的時候
5、要多角度考慮問題,比如題目中要求棧法與數(shù)組方法同時去實現(xiàn)進制轉(zhuǎn)換問題。在編譯過程中我們可以將特殊的問題逐漸的化為一般問題,比如10進制轉(zhuǎn)換到16進制是,我舉的例子是 200轉(zhuǎn)換為C&(2) 通過此次課程設(shè)計的考驗,讓我們回顧了算法與數(shù)據(jù)結(jié)構(gòu)這門課的主要內(nèi)容。掌握了如 何分別用數(shù)組和棧來實現(xiàn)數(shù)據(jù)存儲與轉(zhuǎn)換,加深了對棧的掌握和操作,以及棧先進后出的特 點。(3) 在程序的調(diào)試初期,我們遇到了許多問題,暴露了對編譯軟件不熟悉的弊端,如設(shè)置斷點和單步調(diào)試,讓我們意識到要想學好編程,就得多上機調(diào)試。一個星期時間自己用VC+實現(xiàn)了進制轉(zhuǎn)換問題,收獲很大同時在編寫代碼過程中也出現(xiàn)了很多的問題,最大的問題就是
6、 對程序設(shè)計框架結(jié)構(gòu)的不了解,在實現(xiàn)代碼與功能的連接時經(jīng)常會出現(xiàn)各種不同的錯誤,在 實現(xiàn)一些功能時系統(tǒng)常常會報錯,許多錯誤不知從哪修改。課程設(shè)計中,回顧了很多以前的 東西,收獲很大。(4) 每一次的課程設(shè)計,都是讓我們對原有的知識從了解表面到深入本質(zhì),從個體學習到整 體把握的跳躍,對新知識的汲取,更是把課本的知識應(yīng)用到實際中,讓我們了解了我們的學 習有什么用,能夠解決什么樣的問題,增加了自信和學習的動力??傊?,我們收獲匪淺首先由衷感謝老師提供這樣一個鍛煉自己的機會,感受到學來的知 識不只是用來完成試卷的。一向慣于獨立思考的自己學會了積極的同同學、朋友交流,取長 補短,共同進步。課程設(shè)計使自己發(fā)
7、現(xiàn)考試并不是最重要,最重要的是能運用所學的知識。 在整個課程設(shè)計的學習過程中,不再是用學到的知識解題,而是在實際運用時遇到什么學什 么,重在把知識應(yīng)用于實際。五、附錄代碼框架/ 實現(xiàn) 116 進制之間的相互轉(zhuǎn)化(數(shù)組方法)/ 實現(xiàn) 116 進制之間的相互轉(zhuǎn)化(數(shù)組方法)#include#include/#include#define N 100#define max_num 10int y,n,s;int m,r,x;void ten_else(int g,int h) /十進制數(shù)轉(zhuǎn)換為其他進制數(shù)int cN,mod;int i=0,j;while(g!=0)mod = g % h;g = g
8、/h;ci = mod;i+;for(j=i-1;j=0;j-)switch(cj)case 10: coutA; break;case 11: coutB; break;case 12: coutC; break;case 13: coutD; break;case 14: coutE; break;case 15: coutF; break;default: cout=0;j-)if(cj = 9) coutcj;elseprintf(%c,(A+(cj-10); /cout(A+(cj-9); */void main()coutm;if(m10) /29進制轉(zhuǎn)換成 10 進制存儲十進制數(shù)
9、,j表示輸入m進制數(shù)的位數(shù)。char smax_num; int k,z=0,j=0;/z for(int i=0;imax_num;i+)si=u;cout請輸入一個ms;for(i=1;imax_num;i+) if(si!=u) j+;k=j;/ 保存輸入位數(shù)for(i=0;ij;i+) z=z+(si-0)*(pow(m,-k);cout轉(zhuǎn)換后的10進制數(shù)MD為:zendl; coutr;cout 輸出轉(zhuǎn)換成 r 進制的結(jié)果 :;ten_else(z,r);coutendl;else if(m=11)/1116進制轉(zhuǎn)換成 10進制char smax_num;int k,z=0,j=0;
10、/z 存儲十進制數(shù), j 表示輸入 16 進制數(shù)的位數(shù)。 for(int i=0;imax_num;i+)si=u;cout請輸入一個ms; for(i=1;imax_num;i+) if(si!=u) j+;k=j;/ 保存輸入位數(shù) for(i=0;i=A&si=a&si=0&si=9) z=z+(si-0)*(pow(m,-k);cout 轉(zhuǎn)換后的 10 進制數(shù)為 :zendl;coutr;cout 輸出轉(zhuǎn)換成 r 進制的結(jié)果 :;ten_else(z,r);coutendl;else if(m=10)/十進制轉(zhuǎn)換成其它進制int x;coutx;coutr;if(r=10)cout 輸出
11、轉(zhuǎn)換成 r 進制的結(jié)果 :;ten_else(x,r);coutendl;elsecout 輸出轉(zhuǎn)換成 r 進制的結(jié)果 :;ten_else(x,r);coutendl;/ 實現(xiàn) 116 進制之間的相互轉(zhuǎn)化(堆棧方法)#include #include enum error_codesuccess,overflow,underflow;const maxlen=100;int a,n,h;class stackpublic:stack();bool empty()const;bool full()const;error_code get_top(int &x)const;error_code
12、push(int x);error_code pop();int seesize()return count;private:int count;int datamaxlen;/ 初始化鏈棧stack:stack()count = 0;bool stack:empty()const /if(count = 0) return true;return false;error_code stack:get_top(int &x)const if ( empty() ) return underflow; elsex = datacount - 1; return success;error_cod
13、e stack:push(int x) /if( full() ) return underflow; datacount = x;count +;return success;error_code stack:pop() /if ( empty() ) return underflow; count -;return success;bool stack:full()constif( count = maxlen ) return true; return false;void ten_else(int g,int h) /int a,x;判斷棧是否為空/ 取棧頂元素入棧出棧十進制數(shù) g 轉(zhuǎn)
14、換為其他進制 (h 進制 )數(shù)int mod; stack s; mod = g % h; if(mod9) a=mod+55;if(a=65) switch(a - 55) case 10: coutA; break; case 11: coutB; break; case 12: coutC; break; case 13: coutD; break;case 14: coutE; break;case 15: cout0) ten_else(g,h);while(!s.empty()s.get_top(x); s.pop(); coutx;int main()int m,a,z,sum;int i = 1;int j = 0;sum=0;stack s;coutm;cout請輸入mx;cout10 進制數(shù) MD即為:xendl;couth;ten_else(x,h);coutendl;else if(mx;while(x!=0)a = x % 10;x = x/10;s.push(a);while(!s.empty()s.get_top(z);sum = sum + z*pow(m,s.seesize()-1); s.pop();cout 轉(zhuǎn)換的 10 進制數(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省瀘州市瀘縣第五中學2025屆高三上學期第一次診斷性考試(一模)政治試題 含解析
- 清遠2025年廣東清遠市公安局第一次警務(wù)輔助人員招聘5人筆試歷年參考題庫附帶答案詳解
- 深圳2025年上半年廣東深圳法院勞動合同制審判輔助人員招錄109人筆試歷年參考題庫附帶答案詳解
- 二零二五年度寵物貓進出口貿(mào)易合同范本4篇
- 汕頭2025年廣東汕頭市龍湖區(qū)司法局招聘司法協(xié)理員專項臨聘人員筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州桐廬縣機關(guān)事務(wù)服務(wù)中心招聘編外工作人員筆試歷年參考題庫附帶答案詳解
- 2025年華師大新版九年級歷史下冊階段測試試卷含答案
- 二零二五年度跨境電商進口大宗商品購銷合同2篇
- 2025年浙科版必修2化學下冊月考試卷含答案
- 2025年度綠色建筑改造承攬工程施工合同4篇
- 開展課外讀物負面清單管理的具體實施舉措方案
- 2025年云南中煙工業(yè)限責任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動力學課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測試與裝調(diào)》電子教案
- 客戶分級管理(標準版)課件
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 固定資產(chǎn)盤點報告醫(yī)院版
評論
0/150
提交評論