数制转换问题 课程设计

数制转换问题 课程设计

ID:11155434

大小:559.50 KB

页数:30页

时间:2018-07-10

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

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

1、课程设计课程设计名称:算法分析与综合课程分析专业班级:计科0604学生姓名:姚晓曼学号:20064140428指导教师:白浩课程设计时间:2008年6月23日计算机科学与技术专业课程设计任务书学生姓名姚晓曼专业班级计科0604学号20064140428题目数制转换问题课题性质其它课题来源自拟课题指导教师白浩同组姓名无主要内容实现二、八、十、十六进制之间的转换任务要求任意给定一个M进制的数x,请实现如下要求:1.求出此数的十进制数2.实现对x向非M进制的数的转换3.至少用两种或两种以上的方法实现上述要求(用栈解

2、决,用数组解决,其他方法解决)参考文献1、数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社20082、数据结构课程设计苏仕华编著机械工程出版社20073、数字电路和数字逻辑阎石编著高等教育出版社2006审查意见指导教师签字:教研室主任签字:2008年6月27日一、需求分析输入二、八、十、十六任一进制M,可计算出非M进制的数值,实现向非M进制的转换。用数组和栈两种方法实现。二、概要设计让用户输入要进行转换的进制,然后再选择向哪个进制转换,当输入一个M进制时候,会默认首先实现把该进制转换为十进制,一般情况下,利

3、用按权展开法实现向十进制的转换。然后让用户选择向非十进制的其他进制转换,实现这一步时,先把该数转换为十进制,然后再向其他进制转换,例如:当想要实现把二进制转换为八进制时,先把二进制转换为十进制,然后再把十进制转换为八进制。当用栈实现该功能时用到几个有关栈的函数,构造栈InitStack()、出栈函数Pop()、压栈函数Push(inte)、判断栈空函数StackEmpty(),当用户输入数据时,调用压栈函数,当想要得到栈的数据时,调用出栈函数,并且用到判断栈空函数来控制循环,在实现进制转换的功能时方法与用数组

4、实现时的一样。三、运行环境硬件环境:基于X86的PC软件环境:WindowsVista/2003/XP四、开发工具和编程语言开发工具:MicrosoftVisualC++6.0编程语言:VisualC一、详细设计首先让用户选择的是实现进制转换的方式,是用数组实现还是用栈实现然后是选择对哪一进制进行转换。具体实现如下:选择实现的方法用数组实现用栈实现关于二进制的转换关于八进制的转换关于十六进制的转换关于二进制的转换关于八进制的转换关于十六进制的转换二进制转换为十进制二进制转换为八进制二进制转换为十六进制八进制转

5、换为十进制八进制转换为二进制八进制转换为十六进制十六进制转换为十进制十六进制转换为二进制十六进制转换为八进制二进制转换为十进制二进制转换为八进制二进制转换为十六进制八进制转换为十进制八进制转换为二进制八进制转换为十六进制十六进制转换为十进制十六进制转换为二进制十六进制转换为八进制源程序:#include#include#include#include#defineM100#defineL20#defineERROR-1#defineOV

6、ERFLOW-2#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefstruct{int*base;int*top;intstacksize;}SqStack;SqStackS;voidInitStack()//构造栈{S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INIT_SIZE;}v

7、oidPush(inte)//入栈操作{if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;}intPop()//出栈操作,返回栈顶元素{inte;if(S.top==S.base)r

8、eturnERROR;e=*--S.top;returne;}intStackEmpty()//判断栈是否为空{if(S.top==S.base)return1;elsereturn0;}voidmain(){inti,j,n1,n2,N;intm=-1;intnn=0;intn,l;doublesum;intk1[M];chark2[M];intfag;printf("**************

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

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

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