科信学院课程
说明
(2012/2013学年第二学期)课程名称:软件综合算法设计题目:数制转换问题专业班级:学生姓名:学号:指导教师:设计周数:2周设计成绩:2013年7月2日目录TOC\o"1-5"\h\zHYPERLINK\l"bookmark24"\o"CurrentDocument"一、实验目的-2-HYPERLINK\l"bookmark26"\o"CurrentDocument"二、实验要求及目标-2-HYPERLINK\l"bookmark28"\o"CurrentDocument"三、算法思想-3-1、用数组实现该问题:-.3-2、用栈实现该问题:-3-HYPERLINK\l"bookmark30"\o"CurrentDocument"四、模块划分-3-1、用数组实现该问题:-..3.-2、用栈实现该问题:-..4.-HYPERLINK\l"bookmark32"\o"CurrentDocument"五、数据结构-4-1、用数组实现该问题-..4.-2、用栈实现该问题-..4.-HYPERLINK\l"bookmark34"\o"CurrentDocument"六、程序源代码及结果-5-(一)数组-..5..-1、源代码-..5..-2、运行结果-..9.-(二)栈-..1..2-1、源代码-.1..2-2.运行结果-..1..7-七、心得体会-20-软件综合算法设计报告实验名称:数值转换问题指导老师:杨荣爱组员1:黄静南学号:110212203组员2:赵兴凡学号:110212216完成时间:2013年7月2日一、实验目的了解并掌握软件算法设计的
与步骤,具备初步的独立分析问题、解决问题的能力。初步掌握软件开发过程的问题分析、系统设计、程序编码和测试等基本方法和技能。积累项目设计及程序调试、测试的经验,提高综合运用所学的理论知识和方法,锻炼独立分析和解决问题的能力.训练用系统的观点和软件开发一般规范进行软件的开发,培养软件工作者所具备的科学工作方法和作风。二、实验要求及目标要求:任意给定一个M进制的数x,请实现如下要求:1)求出此数x的10进制值(用MD
示);2)实现对x向任意的一个非M进制的数的转换;3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。目标:完成实验要求,实现源代码的运行,进而实现要求中的基本功能三、算法思想1、用数组实现该问题:DTOM)函数和MTO()函数是实现该问题的主要函数。DTOM(函数是实现十进制转换。为其它进制的函数,它是将输入的十进制数x取首先对需要转换的进制M取余,然后再对其取整,接着通过递归调用DTOM(函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而MTOD(函数则是实现其他进制M转换为十进制,并将其转换为非M进制的数。M进制转十进制则是从该M进制数的最后一位开始算,依次列为第0、1、2…n位并分别乘以M的0、1、2…n次方,将得到的次方相加便得到对应的十进制数,再调用DTOM)函数将其转换为非M进制的数。2、用栈实现该问题:同样是利用DTOM)和MTOM)两个函数实现.两个函数的思想同利用数组实现时相同。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些.四、模块划分1、用数组实现该问题⑴i,j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为0;⑵DTOMintg,inth)是实现十进制数转换为M进制数的函数;⑶MTOD)是实现M(仅指二进制数和八进制数)进制数转换为十进制数的函数,并在其中调用DTOM(intg,inth)实现向非M进制数的转换;⑷HTODMintf)是实现十六进制数转换为十进制数的函数,并在其中调用DTOM(intg,inth)实现向非十六进制数的转换;⑸voidmain()是主函数,功能是给出测试的数据,并在特定条件下调用DTOM)(函数和MTO(D)函数。2、用栈实现该问题:⑴SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量;⑵intlnitStack(SqStack&S)至UintDestroyStack(SqStack&S)六大模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;⑶SqStackS是指定义栈S;⑷DTO(inta,intb)的功能是将十进制数转换成M进制的函数;⑸MTOD(的功能是M进制转换为十进制的函数;⑹voidmain()是主函数。其功能是输入需要测试的数据以及需要转换的进制,并在特定情形下调用DTOM)函数和MTOD)函数,而且实现M进制数向任意非M进制数的转换。五、数据结构1、用数组实现该问题:使用简单一维数组inta[N],intb[N],intc[N]2、用栈实现该问题:数据类型定义如下:typedefstruct{int*base;int*top;intstacksize;}SqStack;六、程序源代码及结果(一)数组1、源代码#include〈stdio。h〉#include