《數(shù)制轉(zhuǎn)換 實驗報告》由會員分享,可在線閱讀,更多相關(guān)《數(shù)制轉(zhuǎn)換 實驗報告(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)制轉(zhuǎn)換 實驗報告
實驗報告
實驗名稱:數(shù)制轉(zhuǎn)換
班級:
信管 131
姓名:
學(xué)號:
同實驗者:
實驗時間:
成績:
指導(dǎo)老師:
一、實驗?zāi)康模?
將一個整數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的 d 進(jìn)制數(shù)(小數(shù)部分有精確度的要求)
二、實驗設(shè)備及主要內(nèi)容
一 實驗
題目:數(shù)制轉(zhuǎn)換,將一個整數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的 d 進(jìn)制數(shù) 二 需求分析^p :(1)d 的取值從鍵盤上輸入,可以是 2,8,16 三種情況。
(2)十進(jìn)制數(shù)可以是從鍵盤上輸入的任意一個。
(3)演示程序以用戶和計算機(jī)的對話方式執(zhí)行。
(4)程序編寫在 VC 環(huán)境下編譯運行
概要設(shè)計:
基本操
2、作:
StackInit(sqstack _s)
操作結(jié)果:構(gòu)造一個空棧
Push(sqstack _s,int e)
操作結(jié)果:將元素 e 壓入到棧中
Pop(sqstack _s,int e)
操作結(jié)果:棧中 e 中出棧 conversion(sqstack _s)
操作結(jié)果:轉(zhuǎn)換數(shù)值,以目標(biāo)進(jìn)制輸出
本程序包含 5 個函數(shù):
① 主函數(shù) main
② 構(gòu)造空棧函數(shù) StackInit(sqstack _s)
③ 壓入棧函數(shù) Push(sqstack _s,int e)
④ 出棧函數(shù) Pop(sqstack _s,int e) ⑤
判斷棧是否為空 stack
3、empty(sqstack _s) ⑥ 轉(zhuǎn)換函數(shù) conversion(sqstack _s) 詳細(xì)設(shè)計:
實現(xiàn)概要設(shè)計中定義的所有的數(shù)據(jù)類型,對每個操作給出偽碼算法。對主程序和其他模塊也都需要寫出偽碼算法。
int StackInit(sqstack _s) int Push(sqstack _s,int e) int Pop(sqstack _s,int e)
int stackempty(sqstack _s) int conversion(sqstack _s) 詳細(xì)設(shè)計:
#include
#include
#include
#define stack_init_
4、size 100
#define stackincrement 10
typedef struct sqstack
{
int _base;
int _top;
int stacksize;
} sqstack;
int StackInit(sqstack _s)
{
s->base=(int _)malloc(stack_init_size _sizeof(int));
if(!s->base)
return 0;
s->top=s->base;
s->stacksize=stack_init_size;
return 1;
}
int Push(sqsta
5、ck _s,int e)
{
if(s->top-s->base>=s->stacksize)
{s->base=(int _)realloc(s->base,(s->stacksize+stackincrement)_sizeof(int));
if(!s->base)
return 0;
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}
_(s->top++)=e;
return e;
}
int Pop(sqstack _s,int e)
{
if(s->top==s->base)
re
6、turn 0;
e=_--s->top;
return e;
}
int stackempty(sqstack _s)
{ if(s->top==s->base)
{
return 1;
}
else
{
return 0;
}
}
int conversion(sqstack _s)
{
int n,e=0,flag=0;
printf(“輸入要轉(zhuǎn)化的十進(jìn)制數(shù):\n”);
scanf(“%d”,n);
printf(“要轉(zhuǎn)化為多少進(jìn)制:2 進(jìn)制、8 進(jìn)制、16 進(jìn)制填數(shù)字!\n”);
scanf(“%d”,flag);
printf(“將十進(jìn)制數(shù)%d
7、 轉(zhuǎn)化為%d 進(jìn)制是:\n”,n,flag);
while(n)
{ Push(s,n%flag);
n=n/flag;
}
while(!stackempty(s))
{
e=Pop(s,e);
if(e>9)
printf(“%c”,e+55);
else printf(“%d”,e); }
}
int main
{
sqstack s;
StackInit(s);
conversion(s);
return 0;
}
調(diào)試分析^p :輸入簡單幾組數(shù)字判斷結(jié)果是否正確 使用說明:
按照提示輸入 測試結(jié)果:輸入 8
進(jìn)制 2 輸出 1000;
輸入 160 進(jìn)制 16 輸出 A 輸入 8 進(jìn)制 8 輸出 1
第 7 頁 共 7 頁