版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(共16頁)-本頁僅作為文檔封面,使用時請直接刪除即可-內(nèi)頁可以根據(jù)需求調(diào)整合適字體及大小-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告書題目:數(shù)制轉(zhuǎn)換系別:計算機科學(xué)與應(yīng)用系學(xué)號:學(xué)生姓名:指導(dǎo)教師:完成日期:20136117數(shù)制轉(zhuǎn)換1 .需求分析任意給定一個M進制的數(shù)x,實現(xiàn)如下要求1)求出此數(shù)x的10進制值(用MD表示)2)實現(xiàn)對x向任意的一個非M進制的數(shù)的轉(zhuǎn)換。3)至少用兩種或兩種以上的方法實現(xiàn)上述要求(用棧解決,用數(shù)組解決,其它方法解決)。2 .概要設(shè)計程序流程可以用以下流程圖來刻畫:A用數(shù)組實現(xiàn)陰棧實現(xiàn)3 .詳細設(shè)計A.用數(shù)組實現(xiàn)該問題D2M()函數(shù)和M2D()函數(shù)是實現(xiàn)該問題的主
2、要函數(shù)。D2M()函數(shù)是實現(xiàn)十進制轉(zhuǎn)換為其他進制的函數(shù),它是將輸入的十進制數(shù)x首先對需要轉(zhuǎn)換的進制M取余,然后在對其取整,接著通過遞歸調(diào)用D2M()函數(shù)一次將得到的整數(shù)部分一次先取余后取整,并將所得的余數(shù)依次存入下一數(shù)組,然后逆向去除數(shù)組中的元素,即得到轉(zhuǎn)換后的結(jié)果。而M2D()函數(shù)是實現(xiàn)其他進制M轉(zhuǎn)換為十進制,并將其轉(zhuǎn)換為非M進制。M進制轉(zhuǎn)十進制則是從該M進制數(shù)的最后一位開始運算,依次列為第0、1、2、.N位并分別乘以M的0、1、2、.小次方,將得到的次方相加便得到對應(yīng)的十進制數(shù),再調(diào)用D2M()函數(shù)將其轉(zhuǎn)換為非M進制的數(shù)。B用棧實現(xiàn)棧具有后進先出的性質(zhì),具體實現(xiàn)方法和數(shù)組的方法有很大聯(lián)系,
3、不再過多解釋。4 .調(diào)試分析(1) 構(gòu)造棧的方法通過查閱書籍知道了。(2) 數(shù)組的遞歸調(diào)用查閱相關(guān)書籍了解了。(3) 為了讓界面表達更清晰,多次調(diào)試完善了界面。5 .測試結(jié)果下面是我的測試函數(shù)及運行結(jié)果:A數(shù)組測試結(jié)果B棧實現(xiàn)測試結(jié)果1選管一宜宜慘m霜LrzFE-iaurzdrzFEkFks-M選為力軍3的強冊吸器選請要講進邊全土工2J?SS遙出聾怏青主裔修種任意鋌維續(xù)百r#請N%'清一擇丁選神八-USR全出Tm售¥音旺他堀心選果果<梟梟富如nC>=H>=2J請按任意遢維續(xù).一回口新建文件夾Pfbugu后<e'八擇8的球預(yù)三K¥12里
4、J+fi-JTX.南請"4,IH-Y要講aa全出汴二一想退皆一直宜行霜-送<異泉果#-士耳口口口口口-F-TA-K-.攵0.3i2擇H色書市-#?需六擇十選JXII:耳舒請整進全出tn售¥舌乃體霜心Ek二3p5tulh-s.身耳身n<>-0>-23iiejoiiiiii詰椅任意鋌維續(xù)6 .總結(jié)通過數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,我了解到數(shù)據(jù)結(jié)構(gòu)是計算機科學(xué)中一門綜合性的專業(yè)基礎(chǔ)課。這次的課程設(shè)計使我對數(shù)組及棧有了初步的認識,雖然課程設(shè)計的不完善,但是在設(shè)計過程中我受益匪淺,通過查資料、網(wǎng)上搜索例子,讓我學(xué)到了很多以前不知道的東西,提高我的分析和解決問題的能力,進一
5、部掌握了應(yīng)用系統(tǒng)設(shè)計的方法和不步驟,也讓我意識到自己所掌握的實在是太少了,只靠課本知識是不夠的,應(yīng)該多多上機調(diào)試,這樣才能提高自己。7 .附源程序A.數(shù)組實現(xiàn)#include<>#include<>#defineN1000inti,j,y,n,s;intm,r,reminder;intx;2M2M2M2M2Mase=(SElement*)malloc(STACK_INIT_SIZE*sizeof(SElement);if(!(*S).base)exit(OVERFLOW);S->top=S->base;S->stacksize=STACK_INIT_S
6、IZE;returnOK;intDestroyStack(SqStack*S)free(S->base);S->base=NULL;S->top=NULL;S->stacksize=0;returnOK;intClearStack(SqStack*S)S->top=S->base;returnOK;intStackEmpty(SqStackS)ase,(*S).stacksize+STACKINCREMENT*sizeof(SElement);if(!S->base)exit(OVERFLOW);S->top=S->base+S->s
7、tacksize;S->stacksize+=STACKINCREMENT;*(S->top)=e;S->top+;returnOK;intPop(SqStack*S,int*e)/*若棧不空,則刪除S的棧頂元素,用e返回其值并返回OK;否則返回ERROR*/if(*S).top=(*S).base)returnERROR;*e=*-(*S).top;returnOK;intStackTraverse(SqStackS,int(*visit)(int)/while>)visit(*+);printf("n");returnOK;voidconvers
8、ion8(SqStacks)unsignedn;inte;InitStack(&s);/初始化棧printf("n(>=0)=");scanf("%u",&n);while(n)/當(dāng)n不為0Push(&s,n%8);n=n/8;while(!StackEmpty(s)/當(dāng)棧不為空Pop(&s,&e);printf("%d",e);printf("n");voidconversion2(SqStacks)unsignedn;inte;InitStack(&s);/
9、初始化棧printf("n(>=0)=");scanf("%u",&n);while(n)/當(dāng)n不為0Push(&s,n%2);n=n/2;while(!StackEmpty(s)/當(dāng)棧不為空Pop(&s,&e);printf("%d",e);printf("n");voidconversion16(SqStacks)unsignedn;chard;inte;InitStack(&s);/初始化棧printf("n(>=0)=");scanf(
10、"%u",&n);while(n)/當(dāng)n不為0Push(&s,n%2);n=n/2;while(!StackEmpty(s)/當(dāng)棧不為空Pop(&s,&e);switch(e)case0:e=0;printf("%d",e);break;case1:e=1;printf("%d",e);break;case2:e=2;printf("%d",e);break;case3:e=3;printf("%d",e);break;case4:e=4;printf("
11、;%d",e);break;case5:e=5;printf("%d",e);break;case6:e=6;printf("%d",e);break;case7:e=7;printf("%d",e);break;case8:e=8;printf("%d",e);break;case9:e=9;printf("%d",e);break;case10:d='a'printf("%c",d);break;case11:d='b'print
12、f("%c",d);break;case12:d='c'printf("%c",d);break;case13:d='d'printf("%c",d);break;case14:d='e'printf("%c",d);break;case15:d='f'printf("%c",d);break;printf("%d",e);printf("n");/選擇intchoose()intd;prin
13、tf("請選擇你要進行的進制的轉(zhuǎn)換:n");printf("如果是十進制轉(zhuǎn)換為八進制請選擇1n");printf("如果是十進制轉(zhuǎn)換為二進制請選擇2n");printf("如果是十進制轉(zhuǎn)換為十六進制請選擇3n");printf("如果您想全部轉(zhuǎn)換請選擇9n");printf("如果想退出請選擇0n");printf("n");scanf("%d",&d);returnd;voidmain()intf=0;SqStacks;while(!f)switch(choose()case1:conversion8(s);break;case2:conversio
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自然類研學(xué)旅行課程設(shè)計
- 自制香薰蠟燭課程設(shè)計
- 2024年電影項目策劃與制作全權(quán)委托協(xié)議3篇
- 二零二五年出租車司機駕駛疲勞檢測與雇傭合同3篇
- 池州學(xué)院《大數(shù)據(jù)挖掘及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 承德應(yīng)用技術(shù)職業(yè)學(xué)院《歌曲寫作1》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都銀杏酒店管理學(xué)院《城市河湖水生態(tài)與水環(huán)境》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度個人住宅裝修貸款延期還款合同3篇
- 2024年走讀生交通安全保障合同版B版
- 2025版中央空調(diào)安裝與智能化控制系統(tǒng)合同范本3篇
- 2023年高爾夫球車行業(yè)市場突圍建議及需求分析報告
- 陵水黎族自治縣食品公司椰林屠宰場生豬定點屠宰項目環(huán)評報告
- 迎新年卡拉OK比賽主持詞
- 2023叉車使用安全管理規(guī)范
- 膠粘劑行業(yè)銷售人員工作匯報
- 3-6歲兒童學(xué)習(xí)與發(fā)展指南語言領(lǐng)域解讀
- 2023-2024學(xué)年浙教版科學(xué)九年級上冊期末測試+
- 國開02181-混凝土結(jié)構(gòu)設(shè)計原理機考復(fù)習(xí)資料
- 兒科佝僂病中醫(yī)診療規(guī)范診療指南2023版
- 2023建筑業(yè)10項新技術(shù)
- 2023-2024學(xué)年二年級數(shù)學(xué)上冊期末樂考 非紙筆測試B方案 人教版
評論
0/150
提交評論