C語言課程設(shè)計(jì)-進(jìn)制轉(zhuǎn)換_第1頁
C語言課程設(shè)計(jì)-進(jìn)制轉(zhuǎn)換_第2頁
C語言課程設(shè)計(jì)-進(jìn)制轉(zhuǎn)換_第3頁
C語言課程設(shè)計(jì)-進(jìn)制轉(zhuǎn)換_第4頁
C語言課程設(shè)計(jì)-進(jìn)制轉(zhuǎn)換_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.PAGE.XX航空航天大學(xué)課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)名稱:C語言課程設(shè)計(jì)課程設(shè)計(jì)題目:二、八、十、進(jìn)制轉(zhuǎn)換程序院〔系:計(jì)算機(jī)學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)<物聯(lián)網(wǎng)方向>班級(jí):34010105學(xué)號(hào):__指導(dǎo)完成日期:20XX3月7日..目錄TOC\o"1-3"\h\z第1章需求設(shè)計(jì)11.1課程設(shè)計(jì)任務(wù)11.2設(shè)計(jì)環(huán)境與開發(fā)語言1第2章程序設(shè)計(jì)22.1概要設(shè)計(jì)2總體模塊圖2函數(shù)22.2詳細(xì)設(shè)計(jì)2第3章程序調(diào)試分析43.1出現(xiàn)的錯(cuò)誤43.2運(yùn)行的結(jié)果4第4章用戶手冊(cè)54.1程序功能54.2存在的缺陷5參考文獻(xiàn)6附錄〔程序清單7..第1章需求設(shè)計(jì)1.1課程設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)簡單的程序,可以實(shí)現(xiàn)以下各進(jìn)制之間的轉(zhuǎn)換。1.因?yàn)橐M(jìn)行進(jìn)制間的6次轉(zhuǎn)換所以要采用switch語句有選擇的進(jìn)行進(jìn)制轉(zhuǎn)換程序。2.二進(jìn)制到八進(jìn)制;直接將二進(jìn)制轉(zhuǎn)化為八進(jìn)制需要三位一截取不足三位補(bǔ)零,較為麻煩所以采用先將二進(jìn)制轉(zhuǎn)化為十進(jìn)制再轉(zhuǎn)化為八進(jìn)制的方法解決問題。二進(jìn)制轉(zhuǎn)化為十進(jìn)制將輸入的二進(jìn)制數(shù)存入字符數(shù)組中,存入多少位數(shù),求出相應(yīng)位數(shù)2的冪次再乘以1或0將每一位對(duì)應(yīng)得到的十進(jìn)制數(shù)累加,即可得到相應(yīng)的十進(jìn)制數(shù)。將十進(jìn)制數(shù)轉(zhuǎn)化為八進(jìn)制數(shù),將0到7存到一個(gè)字符數(shù)組中判斷輸入的數(shù)是否大于7若大于7,則將該數(shù)除8,再次進(jìn)行判斷,直到輸入的數(shù)小于等于7,輸出該數(shù)對(duì)8取余數(shù)對(duì)應(yīng)的一維數(shù)組中的字符,即可得到八進(jìn)制數(shù)。3.二進(jìn)制到十進(jìn)制;二進(jìn)制轉(zhuǎn)化為十進(jìn)制將輸入的二進(jìn)制數(shù)存入字符數(shù)組中,存入多少位數(shù),求出相應(yīng)位數(shù)2的冪次再乘以1或0將每一位對(duì)應(yīng)得到的十進(jìn)制數(shù)累加,即為十進(jìn)制數(shù)。4.二進(jìn)制到十六進(jìn)制;與二進(jìn)制轉(zhuǎn)化為八進(jìn)制類似,先將二進(jìn)制轉(zhuǎn)化為十進(jìn)制。再將十進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制數(shù),將0到9,A到F存到一個(gè)字符數(shù)組中判斷輸入的數(shù)是否大于15若大于15,則將該數(shù)除16,再次進(jìn)行判斷,直到輸入的數(shù)小于等于15,輸出該數(shù)對(duì)16取余數(shù)對(duì)應(yīng)的一維數(shù)組中的字符,即可得到十六進(jìn)制數(shù)。5.八進(jìn)制到十進(jìn)制;八進(jìn)制轉(zhuǎn)化為十進(jìn)制將輸入的八進(jìn)制數(shù)存入字符數(shù)組中,存入多少位數(shù),求出相應(yīng)位數(shù)8的冪次再乘以該位數(shù)上的數(shù),再將每一位對(duì)應(yīng)得到的十進(jìn)制數(shù)累加,即為十進(jìn)制數(shù)。6.十六進(jìn)制到十進(jìn)制;十六進(jìn)制轉(zhuǎn)化為十進(jìn)制將輸入的十六進(jìn)制數(shù)存入字符數(shù)組中,存入多少位數(shù),求出相應(yīng)位數(shù)16的冪次再乘以該位數(shù)上的數(shù),再將每一位對(duì)應(yīng)得到的十進(jìn)制數(shù)累加,即為十進(jìn)制數(shù)。因?yàn)檩斎胧M(jìn)制數(shù)會(huì)有A到F大小寫之分,所以要分情況用到if語句的嵌套。要注意A到F字符減掉‘A’后要加10,再乘以16的對(duì)應(yīng)次冪。7.十進(jìn)制到二進(jìn)制;采用遞歸語句和if嵌套語句,當(dāng)輸入的數(shù)大于1時(shí)除以2再次進(jìn)行判斷,直到輸入的數(shù)小于等于1,輸出該數(shù)對(duì)2取余的值,因?yàn)檫\(yùn)用遞歸,所以會(huì)不斷輸出1或0,即可得到二進(jìn)制數(shù)。要求:<1>使用C語言完成編碼和調(diào)試,通過檢查;<2>使程序在VC++6.0下運(yùn)行;1.2設(shè)計(jì)語言與開發(fā)環(huán)境設(shè)計(jì)環(huán)境:〔1WINDOWS7系統(tǒng)〔2VisualC++開發(fā)環(huán)境開發(fā)語言:C語言..第2章程序設(shè)計(jì)2.1概要設(shè)計(jì)2.1.1總體模塊圖進(jìn)制轉(zhuǎn)換進(jìn)制轉(zhuǎn)換二進(jìn)制到十六進(jìn)制十進(jìn)制到二進(jìn)制八進(jìn)制到十進(jìn)制二進(jìn)制到八進(jìn)制十六進(jìn)制到十進(jìn)制二進(jìn)制到十進(jìn)制2.1.2函數(shù)主函數(shù)〔main的功能是調(diào)用menu函數(shù),實(shí)現(xiàn)各函數(shù)的運(yùn)行。二進(jìn)制到八進(jìn)制函數(shù)〔TwotoE的功能是將二進(jìn)制轉(zhuǎn)換到八進(jìn)制。二進(jìn)制到十進(jìn)制函數(shù)〔hs的功能是將二進(jìn)制轉(zhuǎn)化到十進(jìn)制。二進(jìn)制到十六進(jìn)制函數(shù)〔TwotoS的功能是將二進(jìn)制轉(zhuǎn)化到十六進(jìn)制。十進(jìn)制到二進(jìn)制函數(shù)〔showbit的功能是將十進(jìn)制轉(zhuǎn)化為二進(jìn)制。八進(jìn)制轉(zhuǎn)化成十進(jìn)制函數(shù)〔EtoT的功能是將八進(jìn)制轉(zhuǎn)化成十進(jìn)制。十六進(jìn)制轉(zhuǎn)化成十進(jìn)制函數(shù)〔StoTen的功能是將十六進(jìn)制轉(zhuǎn)化成十進(jìn)制。2.2詳細(xì)設(shè)計(jì)主函數(shù):控制整個(gè)程序的運(yùn)行,控制菜單操作,通過主函數(shù)分別調(diào)用各個(gè)模塊,實(shí)現(xiàn)各項(xiàng)功能,如下圖2.1所示。開始開始輸入1-6或其他數(shù)字選擇操作g調(diào)用函數(shù)EtoT調(diào)用函數(shù)StoTen調(diào)用函數(shù)showbit調(diào)用函數(shù)hs調(diào)用函數(shù)TwotoE調(diào)用函數(shù)TwotoS結(jié)束g=1g=2g=3g=4g=5g=6g=其他數(shù)顯示退出顯示退出圖2.1主函數(shù)流程圖注釋:〔1先定義整型變量g;〔2用switchcase語句選擇操作,調(diào)用函數(shù);〔3g等于1,則調(diào)用EtoT函數(shù);〔4g等于2,則調(diào)用StoTen函數(shù);〔5>g等于3,則調(diào)用showbit函數(shù);〔6>g等于4,則調(diào)用hs函數(shù);〔7>g等于5,則調(diào)用TwotoE函數(shù);〔8>g等于6,則調(diào)用TwotoS函數(shù)?!?g等于其他數(shù)字,顯示退出程序。EtoT函數(shù):將八進(jìn)制轉(zhuǎn)化為十進(jìn)制,如下圖2.2所示。開始開始定義輸入的字符個(gè)數(shù)為l,s等于l輸入的字符串保存在ch中n為8的〔s-l次冪,每個(gè)字符轉(zhuǎn)換為十進(jìn)制的大小保存在num中num=num+<ch-‘0’>*n判斷l(xiāng)是否大于等于0判斷字符是否介于0和7之間輸入八進(jìn)制存到字符串中輸入八進(jìn)制存到字符串中否是是否I減一輸出十進(jìn)制數(shù)num\結(jié)束結(jié)束圖2.2EtoT函數(shù)流程圖StoTen函數(shù):將十六進(jìn)制轉(zhuǎn)化到十進(jìn)制,如下圖2.3所示。開始開始定義輸入的字符個(gè)數(shù)為l,s等于l輸入十六進(jìn)制數(shù)存在字符串中i減一i減一判斷字符是否介于0和7之間輸入的字符串保存在ch中n=pow<16,s-l>判斷l(xiāng)是否大于等于0num=num+<ch-‘0’>*n判斷字符是否介于a和f之間判斷字符是否介于A和F之間num=num+<ch-‘0’+10>*nnum=num+<ch-‘0’+10>*n否是否是否是否是輸出num輸出num結(jié)束圖2.3StoTen函數(shù)流程圖Showbit函數(shù):將十進(jìn)制轉(zhuǎn)化為二進(jìn)制,如下圖2.4所示。開始開始n是否大于1Showbit<n/2>輸出n對(duì)2取余數(shù)輸入的數(shù)為n結(jié)束否是圖2.4showbit函數(shù)流程圖hs函數(shù):將二進(jìn)制轉(zhuǎn)化為十進(jìn)制。如下圖2.5所示。開始開始i為輸入的字符數(shù),p=1,s為輸入的字符數(shù)組,二進(jìn)制每一位轉(zhuǎn)化的十進(jìn)制存在x中x=x+<s[i-1]-‘0’>*pi減一輸出xi是否大于0結(jié)束輸入二進(jìn)制字符串否是圖hs函數(shù)流程圖TwotoE函數(shù):將二進(jìn)制轉(zhuǎn)化為八進(jìn)制,如下圖2.6所示。開始開始S=l,l為字符串個(gè)數(shù)l減一定義字符數(shù)組a[]ch=a[l]n=pow<2,s-l>num=num+<ch-'0'>*nl是否大于等于0l是大于等于0輸入二進(jìn)制數(shù)否是n是否大于7n是否大于7n/8輸出a[n%8]結(jié)束否是圖2.6TwotoE函數(shù)流程圖TwotoS函數(shù):將二進(jìn)制轉(zhuǎn)化為十六進(jìn)制,如下圖2.7所示。開始開始輸入二進(jìn)制數(shù)l是否大于等于0S=l,l為字符串個(gè)數(shù)ch=a[l]n=pow<2,s-l>num=num+<ch-'0'>*nl減一定義字符數(shù)組a[]n是否大于15輸出a[n%16]n/16結(jié)束否是否是圖2.7TwotoS函數(shù)流程圖..第3章程序調(diào)試分析3.1出現(xiàn)的錯(cuò)誤1.菜單中調(diào)用的函數(shù)在編譯后顯示出"unidentify"的錯(cuò)誤;在主函數(shù)前面定義了調(diào)用的函數(shù),就解決了問題。2.在進(jìn)行進(jìn)制轉(zhuǎn)換時(shí)每次轉(zhuǎn)換完都要重新運(yùn)行,通過增加一個(gè)死循環(huán),可以一直進(jìn)行進(jìn)制轉(zhuǎn)換,當(dāng)輸入不在定義中的數(shù)時(shí)顯示退出程序。3.charch;intl,s,num=0,n;l=strlen<a>-1;s=l;for<;l>=0;l-->{ ch=a[l]; n=pow<8,s-l>;當(dāng)輸入二進(jìn)制數(shù)位數(shù)很多時(shí)n定義為整型數(shù)輸出,將n定義為double時(shí)就會(huì)將得數(shù)完整輸出。3.2運(yùn)行的結(jié)果程序運(yùn)行后顯示出菜單,輸入1-6選擇操作,先選擇1,將八進(jìn)制轉(zhuǎn)化為十進(jìn)制。然后輸入八進(jìn)制數(shù),按enter得到十進(jìn)制數(shù)。在主菜單中選擇2,將十六進(jìn)制轉(zhuǎn)化為十進(jìn)制。然后輸入十六進(jìn)制數(shù),按enter鍵得到十進(jìn)制數(shù)。在主菜單中選擇3,將十進(jìn)制轉(zhuǎn)化為二進(jìn)制。然后輸入十進(jìn)制數(shù),按enter鍵得到二進(jìn)制數(shù)。在主菜單中選擇4,將二進(jìn)制轉(zhuǎn)化為十進(jìn)制。然后輸入二進(jìn)制數(shù),按enter鍵得到十進(jìn)數(shù)在主菜單中選擇5,將二進(jìn)制轉(zhuǎn)化為八進(jìn)制。輸入二進(jìn)制數(shù),按enter鍵顯示八進(jìn)制數(shù)。在主菜單中選擇6,將二進(jìn)制轉(zhuǎn)化為十六進(jìn)制。輸入二進(jìn)制數(shù),輸入enter鍵顯示相對(duì)應(yīng)的十六進(jìn)制數(shù)。..第4章課程設(shè)計(jì)總結(jié)4.1程序的功能實(shí)現(xiàn)1.二進(jìn)制轉(zhuǎn)化為八進(jìn)制2.二進(jìn)制轉(zhuǎn)化為十進(jìn)制3.二進(jìn)制轉(zhuǎn)化為十六進(jìn)制4.八進(jìn)制轉(zhuǎn)化為十進(jìn)制5.十六進(jìn)制轉(zhuǎn)化為十進(jìn)制6.十進(jìn)制轉(zhuǎn)化為二進(jìn)制的功能4.2存在的缺陷無法進(jìn)行二、八、十、十六進(jìn)制間有關(guān)小數(shù),負(fù)數(shù)的轉(zhuǎn)換。二進(jìn)制轉(zhuǎn)換能輸入的數(shù)的位數(shù)有限,不能進(jìn)行很多位的二進(jìn)制轉(zhuǎn)換。..參考文獻(xiàn)[1]張長海.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,2006[2]吳啟武.C語言課程設(shè)計(jì)案例精編.北京:清華大學(xué)出版社,2011.[3]郭翠英.C語言課程設(shè)計(jì)案例精編.北京:中國水利水電出版社,2004.[4]姜靈芝,余鍵.C語言課程設(shè)計(jì)案例精編.北京:清華大學(xué)出版社,2008.[5]黃明,梁旭,萬洪莉.C語言課程設(shè)計(jì).北京:電子工業(yè)出版社,2006..附錄〔程序清單#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#defineMAX8#defineN100voidEtoT<chara[]>;voidStoTen<chara[]>;voidshowbit<intn>;voidhs<chars[MAX]>;voidTwotoS<chara[]>;voidTo_sixteen<intn>;voidTwotoE<chara[]>;voidTo_eight<intn>;voidEtoT<chara[]>{ charch; intl,s,num=0; doublen; l=strlen<a>-1; s=l; for<;l>=0;l--> { ch=a[l]; n=pow<8,s-l>; if<ch>='0'&&ch<='7'> num+=<ch-'0'>*n; } printf<"%d\n",num>;}voidStoTen<chara[]>{ charch; intl,s,num=0; doublen; l=strlen<a>-1; s=l; for<;l>=0;l--> { ch=a[l]; n=pow<16,s-l>; if<ch>='0'&&ch<='9'> num+=<ch-'0'>*n; elseif<ch>='a'&&ch<='f'> num+=<ch-'a'+10>*n; elseif<ch>='A'&&ch<='F'> num+=<ch-'A'+10>*n; } printf<"%d\n",num>;}voidshowbit<intn>{ if<n>1> { showbit<n/2>; printf<"">; } printf<"%d",n%2>;}voidhs<chars[MAX]>{charx=0; intl,p=1;for<i=strlen<s>;i>0;i--> { x=x+<s[i-1]-'0'>*p; p*=2; }printf<"得到的十進(jìn)制數(shù)是:%d\n",x>;}voidTwotoE<chara[]>{ charch; intl,s,num=0; doublen; l=strlen<a>-1; s=l; for<;l>=0;l--> { ch=a[l]; n=pow<2,s-l>; num+=<ch-'0'>*n; } To_eight<num>; printf<"\n">;}voidTo_eight<intn>{ chara[]={'0','1','2','3','4','5','6','7'};if<n>7>To_eight<n/8>;printf<"%c",a[n%8]>;}voidTwotoS<chara[]>{ charch; intl,s,num=0; doublen; l=strlen<a>-1; s=l; for<;l>=0;l--> { ch=a[l]; n=pow<2,s-l>; num+=<ch-'0'>*n; } To_sixteen<num>; printf<"\n">;}voidTo_sixteen<intn>{ chara[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};if<n>15>To_sixteen<n/16>;printf<"%c",a[n%16]>;}voidmain<>{ intc,g;chara[N],b[N],e[N],f[N],d[N]; for<;;> { printf<"將八進(jìn)制轉(zhuǎn)換為十進(jìn)制輸入1\n將十六進(jìn)制轉(zhuǎn)化為十進(jìn)制輸入2\n將十進(jìn)制轉(zhuǎn)化為二進(jìn)制輸入3\n將二進(jìn)制轉(zhuǎn)化為十進(jìn)制輸入4\n將二進(jìn)制轉(zhuǎn)化為八進(jìn)制輸入5\n將二進(jìn)制轉(zhuǎn)化為十六進(jìn)制輸入6\n退出系統(tǒng)輸入其他數(shù)\n">; scanf<"%d",&g>; if<g>0&&g<7> { switch<g> { case1:printf<"請(qǐng)輸入一個(gè)八進(jìn)制數(shù):">; scanf<"%s",a>; EtoT<a>; break; case2:printf<"請(qǐng)輸入一個(gè)十六

溫馨提示

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

評(píng)論

0/150

提交評(píng)論