数据结构课程设计-数制转换问题

数据结构课程设计-数制转换问题

ID:6325605

大小:70.00 KB

页数:10页

时间:2018-01-10

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

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

1、课程设计报告设计题目:数制转换问题学生姓名:专业:信息安全班级:信息安全10-02学号:指导教师:完成日期:2011年12月课程设计报告的内容及要求一、问题描述:任意给定一个M进制的数x,请实现如下要求:1、求出此数x的10进制值(用MD表示)2、实现对x向任意的一个非M进制的数的转换3、至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)二、解决办法:1、用数组实现该问题:  ten_else()函数是实现十进制转换为其它进制的函数,先设置一个while循环,当十进制数g等于零时停止,再将输入的十进制数x取首先对需要转换的进制M取余,然后再对其取整

2、,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。将其他进制M转换为十进制,并将其转换为非M进制数是在主函数中实现的。M进制转十进制则是从该M进制数的最后一位开始算,依次列为第0、1、2…n位并分别乘以M的0、1、2…n次方,将得到的次方相加便得到对应的十进制数,再调用ten_else()函数将其转换为非M进制的数。实际上十进制起到了一个桥梁作用。2、用栈实现该问题:  与数组方法核心思想相同,stack定义栈,初始化一个空栈,然后判断是否为空,接着是去栈顶元素(用z表示栈顶元素),数据入栈,出栈的操作。栈具有后进先出的性质,故其用s.pop

3、()取数较数组的逆向取数较为方便,体现了栈的优越性。三、程序框图开始输入要输入数的进制M及输入要转换的数转换成十进制数X输出转换结果MD输入要转换的数制类型转换后的10进制取余余数进栈(存入数组)商为0输出栈(数组)及转换结果四.调试及测试1、设计和编码的回顾讨论和分析(1)函数ten_else()的作用体现在将任意10进制数转换为非10进制数,程序能实现1~16进制的相互转换。在10进制以上的数需要用字母表示,由此设计了switch函数,当出现余数大与10的情况可以调用相应的字母。考虑到最终结果是所求余数的倒序,添加新的整型变量j,通过一个for循环实现倒序。(2)编程初

4、期设计了else_ten函数,后几经修改将其融入main函数中较为直观。(3)当输入10进制以下的数向10进制转换时候较为简单,程序中设计char型数组s[maxnum]来统计所输入数据的位数,不需要用户输入。在求10进制的时候通过for循环求一个累和即可。(4)当输入10进制以上的数设计字母较为复杂,通过对ASCⅡ表的理解设计程序。(5)在用栈法实现非10进制向10进制转换的时候遇到了些麻烦,当输入8A的时候程序将8当成字符类型,将其编译为数字56,导致最终转换结果出现错误。于是通过查阅ASCⅡ表对程序做出了修正,设计了条件语句if(z<=57)z-=48;if(z>=6

5、5){z-=65;z+=10;}2、经验和体会(1)我们在写程序的时候要多角度考虑问题,比如题目中要求栈法与数组方法同时去实现进制转换问题。在编译过程中我们可以将特殊的问题逐渐的化为一般问题,比如10进制转换到16进制是,我举的例子是200转换为C8。(2)通过此次课程设计的考验,让我们回顾了算法与数据结构这门课的主要内容。掌握了如何分别用数组和栈来实现数据存储与转换,加深了对栈的掌握和操作,以及栈先进后出的特点。(3)在程序的调试初期,我们遇到了许多问题,暴露了对编译软件不熟悉的弊端,如设置断点和单步调试,让我们意识到要想学好编程,就得多上机调试。一个星期时间自己用vc+

6、+实现了进制转换问题,收获很大同时在编写代码过程中也出现了很多的问题,最大的问题就是对程序设计框架结构的不了解,在实现代码与功能的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错,许多错误不知从哪修改。课程设计中,回顾了很多以前的东西,收获很大。(4)每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加了自信和学习的动力。总之,我们收获匪浅首先由衷感谢老师提供这样一个锻炼自己的机会,感受到学来的知识不只是用来完成试卷的。

7、一向惯于独立思考的自己学会了积极的同同学、朋友交流,取长补短,共同进步。课程设计使自己发现考试并不是最重要,最重要的是能运用所学的知识。在整个课程设计的学习过程中,不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。五.附录源程序清单://实现1~16进制之间的相互转化(数组方法)#include#include//#include#defineN100#definemax_num10inty,n,s;intm,r,x;voidte

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

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

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