1 《数据结构》 课 程 设 计 报 告 书 题 目:数制转换 系 别:计算机科学与应用系 学 号: 学生姓名: 指导教师: 完成日期:2 0 1 3 —6 —1 2 数制转换 1
需求分析 任意给定一个M 进制的数x ,实现如下要求 1)求出此数x 的10 进制值(用MD 表示) 2)实现对x 向任意的一个非M 进制的数的转换
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)
概要设计 程序流程可以用以下流程图来刻画: A 用数组实现 B 用栈实现 3
详细设计 A.用数组实现该问题 D2M()函数和M2D()函数是实现该问题的主要函数
D2M()函数是实现十进制转换为其他进制的函数,它是将输入的十进制数x首先对需要转换的进制M 取余,然后在对其取整,接着通过递归调用D2M()函数一次将得到的整数部分一次先取余后取整,并将所得的余数依次存入下一数组,然后逆向去除数组中的元素,即得到转换后的结果
而 M2D()函数是实现其他进制M 转换为十进制,并将其转换为非 M 进制
M 进制转十进制则是从该M 进开始 构造数组 数制转换函数 输出结果 开始 创建栈 数制转换函数 输出结果 3 制数的最后一位开始运算,依次列为第0、1、2、……
N位并分别乘以 M 的0、1、2、…
N次方,将得到的次方相加便得到对应的十进制数,再调用 D2M()函数将其转换为非 M 进制的数
用栈实现 栈具有后进先出的性质,具体实现方法和数组的方法有很大联系,不再过多解释
调试分析 (1) 构造栈的方法通过查阅书籍知道了
(2) 数组的递归调用查阅相关书籍了解了
(3) 为了让界面表达更清晰,多次调试完善了界面
测试结果 下面是我的测试函数及运行结果: A
数组测试结果 4 5 B 栈实现测试结果 6 7 6
总结 通过《数