数制转换问题(完整).doc

数制转换问题(完整).doc

ID:57811634

大小:171.00 KB

页数:19页

时间:2020-03-29

数制转换问题(完整).doc_第1页
数制转换问题(完整).doc_第2页
数制转换问题(完整).doc_第3页
数制转换问题(完整).doc_第4页
数制转换问题(完整).doc_第5页
资源描述:

《数制转换问题(完整).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构课程设计题目名称:数制转换问题课程名称:数据结构学生姓名:学号:学院名称:指导教师:目录一.需求分析………………………………………………………二.概要设计………………………………………………………三.详细设计………………………………………………………四.调试测试………………………………………………………五.总结……………………………………………………………一.需求分析应用环境设定:生活中我们需要将M进制的数转换为我们所需要的进制,从键盘任意输入一个M进制的数,对其进行转换成其他三种进制的数,然后再从电脑中显示出来,最终得到我们的结果。用户界面:命令行界面

2、,根据自己的要求,对界面的提示进行操作,正确输入我们需要的数据。输入方式:首先输入将转换的进制数,回车确认;然后输入确定的数据,回车确认;接着选择要转换为的进制数,回车确认。输出方式:界面直接输出,启动程序后,按照界面提示,输入数据,直接回车确认,显示屏即输出我们的数据结果。数据储存方式:全部在内存存放,不使用硬盘上的文件或其他数据源,程序执行过程中和结束后不保存数据。程序功能:1.根据界面提示输入M进制数据。2.对任意M进制数据实行非M进制的转换。二.概要设计在此说明数据结构设计和关键的算法设计思想1.用数组实现该问题 D2M()函数和M2D()函数是实现该问

3、题的主要函数。 D2M()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数x取首先对需要转换的进制M取余,然后再对其取整,接着通过递归调用D2M()函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而M2D()函数则是实现其他进制M转换为十进制,并将其转换为非M进制的数。M进制转十进制则是从该M进制数的最后一位开始算,依次列为第0、1、2…n位并分别乘以M的0、1、2…n次方,将得到的次方相加便得到对应的十进制数,再调用D2M()函数将其转换为非M进制的数。⑴ i,j,y,n,s,

4、m,r,reminder,x是定义的全局变量,初始值都为0;⑵ D2M(intg,inth)是实现十进制数转换为M进制数的函数;⑶ M2D(inte)是实现M(仅指二进制数和八进制数)进制数转换为十进制数的函数,并在其中调用D2M(intg,inth)实现向非M进制数的转换;⑷ H2D(intf)是实现十六进制数转换为十进制数的函数,并在其中调用D2M(intg,inth)实现向非十六进制数的转换;⑸ voidmain()是主函数,功能是给出测试的数据,并在特定条件下调用D2M()函数和M2D()函数。使用简单一维数组inta[N],intb[N],intc[N

5、]。1.用栈实现该问题同样是利用D2M()和M2D()两个函数实现。两个函数的思想同利用数组实现时相同。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些。⑴ SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量;⑵ intInitStack(SqStack&S)到intDestroyStack(SqStack&S)六大模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;⑶ SqStackS是指定义栈S;⑷ D2M(inta,intb)的功能是将十进制数转换成M进制的函数

6、;⑸ M2D()的功能是M进制转换为十进制的函数;⑹ voidmain()是主函数。其功能是输入需要测试的数据以及需要转换的进制,并在特定情形下调用D2M()函数和M2D()函数,而且实现M进制数向任意非M进制数的转换。数据类型定义如下:  typedefstruct{int*base;栈底int*top;栈顶intstacksize;栈容量}SqStack;intInitStack(SqStack&S)构造一个个空栈intGetTop(SqStackS,int&e)若栈不为空,则用e返回S的栈顶元素,并返回0,否则返回1intPush(SqStack&S,in

7、te)插入元素e为新的栈顶元素intPop(SqStack&S,int&e)若栈不空,则删除S的栈顶元素,用e返回其值,并返回0,否则返回1。1.程序流程图开始栈数组输入需转换的位数输入需转换的数的进制N若N!=10若N=10输入需转换的数输出结果输入将转换的进制数2.程序源代码A.用数组实现(文件名shuzu.cpp)#include#include#defineN1000inti,j,y,n,s;intm,r,reminder;intx;//全局变量默认初始化为0,不必再赋0了D2M(intg,inth)//十进制数转换为其

8、他进制数{intc[N]

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

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

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