数制转换问题-课程设计报告

数制转换问题-课程设计报告

ID:39579614

大小:130.00 KB

页数:16页

时间:2019-07-06

数制转换问题-课程设计报告_第1页
数制转换问题-课程设计报告_第2页
数制转换问题-课程设计报告_第3页
数制转换问题-课程设计报告_第4页
数制转换问题-课程设计报告_第5页
资源描述:

《数制转换问题-课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、中北大学1设计目的《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:n了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;n初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;n提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。2.设计内容和要求

2、内容任意给定一个M进制的数x,转换为其它任意进制的数据。基本要求1、对给字一个M进制的数据x,求出此数x的10进制值(用MD表示);2、实现对x向任意的一个非M进制的数的转换;3、至少用两种方法实现上述要求(用栈解决,用数组解决,其它方法解决)。核心问题:将一个任意数的进制进行转换数据模型(逻辑结构):栈的应用、数组的应用3.本设计所采用的数据结构数据结构1、用数组实现该问题:使用简单一维数组inta[N],intb[N],intc[N]。2、用栈实现该问题:15  数据类型定义如下:  typedefstruct{int*base;in

3、t*top;intstacksize;}SqStack;输入数据:一个M进制的数x输出数据:其它任意进制的数据*4.功能模块详细设计4.1详细设计思想算法思想1、用数组实现该问题:  DtoM()函数和MtoD()函数是实现该问题的主要函数。 DtoM()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数x取首先对需要转换的进制M取余,然后再对其取整,接着通过递归调用DtoM()函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而MtoD()函数则是实现其他进

4、制M转换为十进制,并将其转换为非M进制的数。M进制转十进制则是从该M进制数的最后一位开始算,依次列为第0、1、2…n位并分别乘以M的0、1、2…n次方,将得到的次方相加便得到对应的十进制数,再调用DtoM()函数将其转换为非M进制的数。2、用栈实现该问题:  同样是利用DtoM()和MtoD()两个函数实现。两个函数的思想同利用数组实现时相同。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些。模块划分1、用数组实现该问题: ⑴ i,j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为0;⑵ DtoM

5、(intg,inth)是实现十进制数转换为M进制数的函数;⑶ MtoD()是实现M(仅指二进制数和八进制数)进制数转换为十进制数的函数,并在其中调用D2M(intg,inth)实现向非M进制数的转换;15⑷ HtoD(intf)是实现十六进制数转换为十进制数的函数,并在其中调用D2M(intg,inth)实现向非十六进制数的转换;⑸ voidmain()是主函数,功能是给出测试的数据,并在特定条件下调用D2M()函数和M2D()函数。2、用栈实现该问题:  ⑴ SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksi

6、ze为栈容量;  ⑵ intInitStack(SqStack&S)到intDestroyStack(SqStack&S)六大模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;  ⑶ SqStackS是指定义栈S;  ⑷ DtoM(inta,intb)的功能是将十进制数转换成M进制的函数;  ⑸ MtoD()的功能是M进制转换为十进制的函数;  ⑹ voidmain()是主函数。其功能是输入需要测试的数据以及需要转换的进制,并在特定情形下调用DtoM()函数和MtoD()函数,而且实现M进制数向任意非

7、M进制数的转换。流程图数组流程图15开始执行main函数输入需转换进制的数字(2or8or10or16)switch()选择功能选择操作编号2.退出exit(0)1.进入转换系统m==16m==2

8、

9、m==8m==1015栈的流程图MtoD()HtoD()输入十进制数DtoM()输出结果输出结果输出结果开始执行main函数switch()选择功能选择操作编号2.退出exit(0)1.进入转换系统InitStack()构造空栈输入需转换进制的数字(2or8or10or16)m==2

10、

11、m==8

12、

13、m==16m==10MtoD()输入一个十进

14、制数15DtoM()DtoM()输出结果销毁栈4.2核心代码源程序有两个,shuzu.cpp是用数组实现该问题的程序,而stack.cpp是用栈实现该问题的程序:[文件shuzu.cpp]#i

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

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

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