c語言中進制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)實訓報告_第1頁
c語言中進制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)實訓報告_第2頁
c語言中進制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)實訓報告_第3頁
c語言中進制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)實訓報告_第4頁
c語言中進制轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)實訓報告_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE21第0頁共15頁《進制之間轉(zhuǎn)換》數(shù)據(jù)結(jié)構(gòu)程序設計報告專業(yè):計算機網(wǎng)絡技術班級:姓名:學號:二○一二年四月三十日PAGE3 第0頁共15頁目錄1.需求分析…………………12.概要設計…………………23.采用的算法(流程圖)……24.詳細設計………………25.調(diào)試分析…………………36.用戶使用說明………………37.測試結(jié)果……………………38.附錄……………………13第2頁共15頁第1頁共15頁1、需求分析(1)輸入的形式和輸入值的范圍:不大于4位的十六進制數(shù)不大于16位的二進制數(shù)十進制數(shù)(2)輸出的形式:同上(3)程序的功能:十六進制轉(zhuǎn)化為十進制 十六進制轉(zhuǎn)化為二進制 十六進制轉(zhuǎn)化為八進制 十進制轉(zhuǎn)化為二進制 十進制轉(zhuǎn)化為八進制 二進制轉(zhuǎn)化為十進制 二進制轉(zhuǎn)化為十六進制(4)測試數(shù)據(jù)十六進制轉(zhuǎn)化為十進制、十六進制轉(zhuǎn)化為二進制:十六進制轉(zhuǎn)化為八進制、十進制轉(zhuǎn)化為二進制、十進制轉(zhuǎn)化為八進制、二進制轉(zhuǎn)化為十進制:二進制轉(zhuǎn)化為十六進制、輸入輸入出錯:2、概要設計:一,進制之間的轉(zhuǎn)換用到頭文件包match.h、stdio.h、stdlib.h。問題要求根據(jù)輸入的不同字符,執(zhí)行不同的功能。轉(zhuǎn)換過程中需要各個函數(shù)之間進行調(diào)用二,輸入合適的數(shù)據(jù)得出轉(zhuǎn)換的數(shù)據(jù),其重要考慮到輸入數(shù)據(jù)的范圍。顯示迷宮3.采用的算法(流程圖)開始選擇轉(zhuǎn)換方式十六轉(zhuǎn)為十十六轉(zhuǎn)為二十六轉(zhuǎn)為八顯示迷宮開始選擇轉(zhuǎn)換方式十六轉(zhuǎn)為十十六轉(zhuǎn)為二十六轉(zhuǎn)為八十轉(zhuǎn)為二十轉(zhuǎn)為八二轉(zhuǎn)為十二轉(zhuǎn)為八默認退出輸出對應的轉(zhuǎn)換結(jié)果12345670程序結(jié)束Tentwo(Tentwo()Htwo()Height()Hten()Teneightsetnull(s)Empty(s)push(seqstack*s,intx,intN)pop(s)Twoten()5.調(diào)試分析:首先是亂碼問題。由于使用中文所以出現(xiàn)了亂碼,把中文改成英文就好了。如果選擇0直接退出根本看不到goodbye所以加getch()可以停留在執(zhí)行屏幕在這次設計中,首先,我發(fā)現(xiàn)了很多問題,由于自己基本的語句掌握的不是十分熟練,所以在一開始不知道怎樣把松散的函數(shù)調(diào)用緊湊地聯(lián)系起來,經(jīng)過仔細的看書以及向同學請教,終于將基本框架搭好,在調(diào)整細節(jié)時就相對輕松一些了,所以經(jīng)過這次課程設計,我總結(jié)出了自己在學習數(shù)據(jù)結(jié)構(gòu)中的不足,并且為其他類似語言打下了良好的基礎,十分感謝老師以及同學的幫助,在此過程中還鍛煉了我們與別人溝通的能力,使我們受益匪淺。6、用戶使用說明:(1)運行程序選擇自己要轉(zhuǎn)換的形式(2)輸入對應數(shù)據(jù)(3)輸入0退出7、測試結(jié)果:輸入1———>輸入1A1——>輸出417輸入2——>輸入1A1——>輸出110100001B輸入3——>輸入1A1——>輸出641Q輸入4——>輸入12——>輸出1100B輸入5——>輸入12——>輸出14K輸入6——>輸入11011010——>輸出218輸入7——>輸入101——>輸出5H輸入0——>退出第7頁共15頁 第5頁共15頁8、附錄(源代碼):#include<stdio.h>#include<stdlib.h>#include<math.h>intHten(){inti=0,j=0,m=0;charx[10];charf=0;printf("Pleaseenternomorethan4digithexadecimalnumbersixteen\n");while(f!='\n') { scanf("%c",&x[i]); f=x[i]; m++; i++; }for(i=0;i<m-1;i++) { if(x[i]>='A'&&x[i]<='F')x[i]=x[i]-55; else if(x[i]>='0'&&x[i]<='9') x[i]=x[i]-48; else {printf("Pleaseinputthecorrectform\n"); return0; } } for(i=0;i<m-1;i++) j=j+x[i]*pow(16,m-1-i-1);returnj;}typedefintdatatype;#definemaxsize64typedefstruct{ datatypedata[maxsize];inttop;}seqstack;setnull(seqstack*s) {s->top=-1;}intEmpty(seqstack*s){if(s->top>=0)return0;/*false*/else return1;/*ture*/}intFull(seqstack*s){if(s->top==maxsize-1)return1;elsereturn0;}seqstack*push(seqstack*s,intx,intN){intn;if(Full(s)) { printf("overfull\n");returnNULL; }else { while(x!=0) {n=x%N; x=x/N; s->top++; s->data[s->top]=n; } returns; }}intpop(seqstack*s){ intx;if(Empty(s)) {printf("empty\n");return0;}else { x=s->data[s->top];s->top--;returnx; }}Htwo(){ seqstack*s;intk;s=(seqstack*)malloc(sizeof(seqstack)); setnull(s); k=Hten(); if(k!=0){push(s,k,2);} else return; printf("Convertedtoabinaryoutcomefor\n");while(!Empty(s)) { printf("%d",pop(s)); } printf("B\n");}Height(){ intk; seqstack*s;s=(seqstack*)malloc(sizeof(seqstack)); setnull(s);k=Hten(); if(k!=0)push(s,k,8); elsereturn; printf("Convertedtooctalresults\n");while(!Empty(s)) {printf("%d",pop(s)); }printf("Q\n");}Tentwo(){seqstack*s;intk;s=(seqstack*)malloc(sizeof(seqstack)); setnull(s); printf("Pleaseenteradecimalnumber\n"); scanf("%d",&k); push(s,k,2); printf("Convertedtoabinaryoutcomefor\n");while(!Empty(s)) { printf("%d",pop(s)); } printf("B\n");}Teneight(){seqstack*s;intk;s=(seqstack*)malloc(sizeof(seqstack)); setnull(s); printf("Pleaseenteradecimalnumber\n"); scanf("%d",&k); push(s,k,8); printf("Convertedtooctalresults\n");while(!Empty(s)) { printf("%d",pop(s)); } printf("Q\n");}intTwoten(){inti=0,j=0,m=0;charx[10];charf=0;printf("Pleaseenternomorethan16bitsofthebinarynumber\n");while(f!='\n') { scanf("%c",&x[i]); f=x[i]; m++; i++; } for(i=0;i<m-1;i++) { if(x[i]=='0'||x[i]=='1') x[i]=x[i]-48; else {printf("Pleaseinputthecorrectform!\n"); return0; } } for(i=0;i<m-1;i++) j=j+x[i]*pow(2,m-1-i-1); returnj;}Twoh(){intk,y;seqstack*s;s=(seqstack*)malloc(sizeof(seqstack)); setnull(s); k=Twoten();if(k!=0){push(s,k,16);} else return; printf("Intosixteendecimalresults\n");while(!Empty(s)) {y=pop(s);if(y<10)printf("%d",y);elseprintf("%c",y+55); } printf("H\n");}main(){inta,k;INDEX: printf("**************************************\n"); printf("0:\texit\n"); printf("1:\tSixteenhexadecimalconversiontodecimal\n"); printf("2:\tSixteenhexadecimalintobinary\n"); printf("3:\tSixteenhexadecimalconvertedtooctal\n"); printf("4:\tDecimaltobinary\n"); printf("5:\tDecimaltooctal\n"); printf("6:\tBinarytodecimalconversion\n"); printf("7:\tBinaryconversionofsixteenhexadecimal\n"); printf("\t\tcopyright2008-2018\n"); printf("**************************************\n");SCANI: printf("Whatareyougoingtodo?Pleaseselectamenu\n"); scanf("%d",&a); getchar(); switch(a) { case0:gotoEXT; case1:gotoSET1; case2: gotoSET2; case3: gotoSET3; case4:gotoSET4; case5:gotoSET5; case6:gotoSET6; case7:gotoSET7;default:gotoINDEX; } SET1:k=Hten(); if(k!=0) { printf("Theresultisconvertedtodecimal\n"); printf("%d\n",k); } gotoSCANI; SET2:Htwo();gotoSCANI;SET3:Height();gotoSC

溫馨提示

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

評論

0/150

提交評論