数制转换数据结构课程设计报告

数制转换数据结构课程设计报告

ID:47517482

大小:366.01 KB

页数:22页

时间:2020-01-12

数制转换数据结构课程设计报告_第1页
数制转换数据结构课程设计报告_第2页
数制转换数据结构课程设计报告_第3页
数制转换数据结构课程设计报告_第4页
数制转换数据结构课程设计报告_第5页
资源描述:

《数制转换数据结构课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.《数据结构》课程设计报告书题目:数制转换系别:计算机科学与应用系学号:学生姓名:指导教师:完成日期:2013—6—1..数制转换1.需求分析 任意给定一个M进制的数x,实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。2.概要设计程序流程可以用以下流程图来刻画:A用数组实现B用栈实现开始开始创建栈构造数组数制转换函数数制转换函数输出结果输出结果3.详细设计A.用数组实现该问

2、题D2M()函数和M2D()函数是实现该问题的主要函数。D2M()函数是实现十进制转换为其他进制的函数,它是将输入的十进制数x首先对需要转换的进制M取余,然后在对其取整,接着通过递归调用D2M()函数一次将得到的整数部分一次先取余后取整,并将所得的余数依次存入下一数组,然后逆向去除数组中的元素,即得到转换后的结果。而M2D()函数是实现其他进制M转换为十进制,并将其转换为非M进制。M进制转十进制则是从该M..进制数的最后一位开始运算,依次列为第0、1、2、……..N位并分别乘以M的0、1、2、…..N

3、次方,将得到的次方相加便得到对应的十进制数,再调用D2M()函数将其转换为非M进制的数。B.用栈实现栈具有后进先出的性质,具体实现方法和数组的方法有很大联系,不再过多解释。1.调试分析(1)构造栈的方法通过查阅书籍知道了。(2)数组的递归调用查阅相关书籍了解了。(3)为了让界面表达更清晰,多次调试完善了界面。2.测试结果下面是我的测试函数及运行结果:A.数组测试结果....B栈实现测试结果....1.总结通过《数据结构》课程设计,我了解到数据结构是计算机科学中一门综合性的专业基础课。这次的课程设计使我

4、对数组及栈有了初步的认识,虽然课程设计的不完善,但是在设计过程中我受益匪浅,通过查资料、网上搜索例子,让我学到了很多以前不知道的东西,提高我的分析和解决问题的能力,进一部掌握了应用系统设计的方法和不步骤,,也让我意识到自己所掌握的实在是太少了,只靠课本知识是不够的,应该多多上机调试,这样才能提高自己。2.附源程序A.数组实现#include#include#defineN1000inti,j,y,n,s;intm,r,reminder;intx;//全局变量默认初始化

5、为0,不必再赋0了..D2M(intg,inth)//十进制数转换为其他进制数{intc[N];i=0;reminder=g%h;g=g/h;if(reminder>9){c[i]=reminder+55;i++;}else{c[i]=reminder;i++;}if(g>0)D2M(g,h);for(j=i-1;j>=0;j--)if(c[j]>=65)printf("%c",c[j]);else..printf("%d",c[j]);return0;}M2D(inte)//二进制和八进制数转换为十

6、进制数,并这转换为其他进制数{inta[N];printf("请输入%d进制位数:",m);scanf("%d",&n);printf("请输入%d进制的每位并使每位用空格隔开:",m);for(i=0;i=0;i--){y+=(int)pow(e,j)*a[i];//强制类型转换,以免造成数据丢失j++;}printf("请输出所得的10进制的结果:");printf("%d",y);printf("需要转换的进制M:")

7、;scanf("%d",&s);..printf("请输出转换成%d进制的结果:",s);D2M(y,s);return0;}H2D(intf)//十六进制数转换为十进制数,并转换为其他进制数{intb[N];printf("请输入%d进制位数:",m);scanf("%d",&n);printf("请输入%d进制的每位并使每位用空格隔开:",m);for(i=0;i=0;i--){y+=(int)pow(f,j)*b[i];/

8、/强制类型转换,以免造成数据丢失j++;}printf("请输出所得的10进制的结果:");printf("%d",y);printf("需要转换的进制M:");..scanf("%d",&s);printf("请输出转换成%d进制的结果:",s);D2M(y,s);return0;}voidmain(){printf("请给定一个需转换的进制M(2or8or10or16):");scanf("%d",&m);if(m==2

9、

10、m==8)//二进制和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。