数据结构课程设计—数制转换(共9页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构课程设计—数制转换(共9页).doc》由会员分享,可在线阅读,更多相关《数据结构课程设计—数制转换(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上安徽农业大学经济技术学院课程设计题 目 名 称 数 制 转 换 课 程 名 称 数 据 结 构 学 生 姓 名 张东升 学 号 系 、专 业 计算机科学与技术 指 导 教 师 涂力静 二0一一年 十二 月 十七 日数制转换问题一、问题描述 任意给定一个M进制的数x,转换为其它任意进制的数据。二、基本要求、对给字一个M进制的数据x,求出此数x的10进制值(用MD表示);、实现对x向任意的一个非M进制的数的转换;、至少用两种方法实现上述要求(用栈解决,用数组解决,其它方法解决)。三、测试数据初始输入的数据有:十进制数527和十六进制数1A2C9四、算法思想、用数组实现该问
2、题:D2M()函数和M2D()函数是实现该问题的主要函数。D2M()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数取首先对需要转换的进制M取余,然后再对其取整,接着通过递归调用D2M()函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而M2D()函数则是实现其他进制M转换为十进制,并将其转换为非M进制的数。M进制转十进制则是从该M进制数的最后一位开始算,依次列为第、位并分别乘以M的、次方,将得到的次方相加便得到对应的十进制数,再调用D2M()函数将其转换为非M进制的数。、用栈实现该问题:同样是利用D2M()和
3、M2D()两个函数实现。两个函数的思想同利用数组实现时相同。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些。五、模块划分、用数组实现该问题: i,j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为; D2M(int g,int h)是实现十进制数转换为M进制数的函数;M2D()是实现M(仅指二进制数和八进制数)进制数转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非M进制数的转换;H2D(int f)是实现十六进制数转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非十六进制数的转换;void main(
4、)是主函数,功能是给出测试的数据,并在特定条件下调用D2M()函数和M2D()函数。、用栈实现该问题:SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量;int InitStack(SqStack &S)到int DestroyStack(SqStack &S)六大模块分别表示构造一个空栈、用表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;SqStack S是指定义栈S;D2M(int a,int b)的功能是将十进制数转换成M进制的函数;M2D()的功能是M进制转换为十进制的函数;void main()是主函数。其功能是输入需要测试的数据以及
5、需要转换的进制,并在特定情形下调用D2M()函数和M2D()函数,而且实现M进制数向任意非M进制数的转换。六、数据结构、用数组实现该问题:使用简单一维数组int aN,int bN, int cN。、用栈实现该问题:数据类型定义如下:typedef struct int *base; int *top; int stacksize;SqStack;七、源程序源程序有两个,zhshuzu.cpp是用数组实现该问题的程序,而zhstack.cpp是用栈实现该问题的程序:文件zhshuzu.cpp#include#include#define N 1000int i,j,y,n,s;int m,r,
6、reminder;int x; /全局变量默认初始化为0,不必再赋0了D2M(int g,int h) /十进制数转换为其他进制数int cN;i=0;reminder=g%h;g=g/h;if(reminder9)ci=reminder+55;i+; elseci=reminder;i+;if(g0)D2M(g,h);for(j=i-1;j=0;j-)if(cj=65)printf(%c,cj);elseprintf(%d,cj);return 0;M2D(int e) /二进制和八进制数转换为十进制数,并这转换为其他进制数int aN; printf(请输入%d进制位数:,m);scanf
7、(%d,&n);printf(请输入%d进制的每位并使每位用空格隔开:,m);for(i=0;i=0;i-)y+=(int)pow(e,j)*ai; /强制类型转换,以免造成数据丢失j+;printf(请输出所得的10进制的结果: );printf(%d,y); printf(n需要转换的进制M:);scanf(%d,&s);printf(请输出转换成%d进制的结果:,s);D2M(y,s);return 0;H2D(int f) /十六进制数转换为十进制数,并转换为其他进制数int bN;printf(请输入%d进制位数:,m);scanf(%d,&n);printf(请输入%d进制的每位并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 数制 转换
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内