大数据结构课程设计数制转换

上传人:桔**** 文档编号:454499510 上传时间:2022-12-25 格式:DOC 页数:15 大小:72KB
返回 下载 相关 举报
大数据结构课程设计数制转换_第1页
第1页 / 共15页
大数据结构课程设计数制转换_第2页
第2页 / 共15页
大数据结构课程设计数制转换_第3页
第3页 / 共15页
大数据结构课程设计数制转换_第4页
第4页 / 共15页
大数据结构课程设计数制转换_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《大数据结构课程设计数制转换》由会员分享,可在线阅读,更多相关《大数据结构课程设计数制转换(15页珍藏版)》请在金锄头文库上搜索。

1、word目录1前言112222正文22.1 设计的目的和意义22.2 目标和总体方案22.3 设计方法和内容3332.4 程序的设计思想和内容6662.5 设计创新和关键技术62.6 程序调试678参考文献9附录91前言数据结构是计算机程序设计的重要理论设计根底,是一门综合性的专业根底科。数据结构是研究数据之间的相互关系,也即数据的组织形式的一门科学。它不仅是计算机学科的核心课程,数据结构是计算机存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率的算法。在计算机科学中,“数据结构不仅是一般程序设计的根底,而且是设计和实现编译程序、操作系统、数据库系统与其他系统程

2、序和大型应用程序的重要根底。在许多类型的程序的设计中,数据结构的选择是一个根本的设计考虑因素。许多大型系统的构造经验明确,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择适宜的数据结构都是非常重要的。和内容设计了一个10进制转换其它进制(36进制以内)与逆转换的软件,该软件具有简单的将10进制数转换成2、8、16进制数以与较复杂的高进制数的转换和逆转功能。本软件采用C语言编写以VC+作为软件开发环境,采用顺序栈存储方式来存储运算中的数位,借助

3、栈后进先出的特点,易于结果输出。操作简单,界面清晰,易于为用户所承受。2正文2.1 设计的目的和意义我们是计算机科学与技术专业的本科生,数据结构是我们重要的必修课程。当代社会学要大学培养出理论扎实,动手实践能力强的大学生。所以,本次课程设计的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步升华为理性的认识。为后继课程的学习打下坚实的根底。通过本次数据结构课程设计,我们根本上掌握了课程设计流程,还掌握了一些知识和技能,这对于我们以后对于数据结构的学习有了很大的帮助和提高,加深了我们对数据结构的理解,为今后的学习打下了坚实的根底。同时也提高了我们对于编程这方面的能力。

4、2.2 目标和总体方案本次设计的目标在于设计出一个能够实现数制转换的程序,于是特制订了一个总体的方案:程序的设计第一步:查阅有关数据结构数制转换操作的资料,用半天的时间。第二步:设计这个项目的整体架构和算法。用一到两天的时间。第三步:使用C语言程序设计程序语言进展算法的描述。两天的时间。程序的调试进展程序的调试。用一天。最后,我在完整的整理一遍,完成课设。2.3 设计方法和内容用数组实现该问题1i,j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为;2D2M(int g,int h)是实现十进制数转换为M进制数的函数; 3M2D()是实现M(仅指二进制数和八进制数)进制数

5、转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非M进制数的转换;4H2D(int f)是实现十六进制数转换为十进制数的函数,并在其中调用D2M(int g,int h)实现向非十六进制数的转换;5void main()是主函数,功能是给出测试的数据,并在特定条件下调用D2M()函数和M2D()函数。用栈实现该问题1SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量; 2int InitStack(SqStack &S)到int DestroyStack(SqStack &S)六大模块分别表示构造一个空栈、用表示栈元素、插入元素、

6、删除元素、判断栈是否为空以与摧毁栈;3SqStack S是指定义栈S; 4D2M(int a,int b)的功能是将十进制数转换成M进制的函数; 5M2D()的功能是M进制转换为十进制的函数; 6void main()是主函数。其功能是输入需要测试的数据以与需要转换的进制,并在特定情形下调用D2M()函数和M2D()函数,而且实现M进制数向转任意非M进制数的换。1:D2M(int g,int h) int cN;i=0;reminder=g%h;g=g/h;if(reminder9)ci=reminder+55;i+; elseci=reminder;i+;if(g0)D2M(g,h);for

7、(j=i-1;j=0;j-)if(cj=65)printf(%c,cj);elseprintf(%d,cj);return 0;自定义函数D2M用于在用数组实现该问题的程序中十进制数转换为其他进制数2:M2D(int e) int aN; printf(请输入%d进制位数:,m);scanf(%d,&n);printf(请输入%d进制的每位并使每位用空格隔开:,m);for(i=0;i=0;i-)y+=(int)pow(e,j)*ai; /强制类型转换,以免造成数据丢失j+;printf(请输出所得的10进制的结果: );printf(%d,y); printf(n需要转换的进制M:);sca

8、nf(%d,&s);printf(请输出转换成%d进制的结果:,s);D2M(y,s);return 0;自定义函数M2D用于在用数组实现该问题的程序中二进制和八进制数转换为十进制数,并且转换为其他进制数3:H2D(int f) int bN;printf(请输入%d进制位数:,m);scanf(%d,&n);printf(请输入%d进制的每位并使每位用空格隔开:,m);for(i=0;i=0;i-)y+=(int)pow(f,j)*bi; /强制类型转换,以免造成数据丢失 j+;printf(请输出所得的10进制的结果: );printf(%d,y);printf(n需要转换的进制M:);s

9、canf(%d,&s);printf(请输出转换成%d进制的结果:,s);D2M(y,s);return 0;自定义函数H2D用于在用数组实现该问题的程序中十六进制数转换为十进制数,并转换为其他进制数4:D2M(int a,int b) while(a)r=a%b;if(r9)r=r+55;Push(S,r); /压入栈a/=b; /转换成M进制printf(该数转换成%d进制的结果:,b);while(!StackEmpty(S)Pop(S,e); /弹出栈if(e=65)printf(%c,e);elseprintf(%d,e);return 0;自定义函数D2M用于在用栈实现该问题的程序

10、中十进制数转换成其他进制数5:M2D() 其他进制数转换为十进制数 char c1000;printf(请输入需要转换的数的位数:);scanf(%d,&n);printf(请输入需要转换的数的每位并用空格隔开:);for(i=0;in;i+)scanf(%x,&ci);Push(S,ci); i=0;while(!StackEmpty(S)Pop(S,e);y+=(int)pow(m,i)*e;i+;printf(转换成10进制的结果是:);printf(%d,y);return 0;自定义函数M2D用于用栈实现该问题的程序中其他进制数转换为十进制数2.4程序的设计思想和内容用数组实现该问题

11、D2M()函数和M2D()函数是实现该问题的主要函数。 D2M()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数取首先对需要转换的进制M取余,然后再对其取整,接着通过递归调用D2M()函数依次将得到的整数局部依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而M2D()函数如此是实现其他进制M转换为十进制,并将其转换为非M进制的数。M进制转十进制如此是从该M进制数的最后一位开始算,依次列为第、位并分别乘以M的、次方,将得到的次方相加便得到对应的十进制数,再调用D2M()函数将其转换为非M进制的数。用栈实现该问题同样是利用D2M()和M

12、2D()两个函数实现。两个函数的思想同利用数组实现时一样。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些。2.5 设计创新和关键技术利用了栈的先进后出特点来满足数制转换中从最后一位余数依次取出的要求,利用数组的特性依次存储取于数运算的结果余数,再从该数组的最后一个元素从后往前依次取出即为转换后的数。2.6 程序调试1十进制数527的调试情况如下:2十六进制数1A2C9的调试情况如下:2.7程序流程图数组栈输入徐转换的位数输入需要转换的数输入将转换的进制数输出结果开始输入需转换的数的进制2.8结论通过本次课程设计,我认识到熟练掌握根底算法的重要性,对栈的含义与其根本算法有了

13、更好的理解和应用。栈“先进后出的算法加上Push()和Pop() 方便了对要转换的数进展读取,和对转换后数倒置的输出。在编写过程中常遇到的不少问题,例如,变量类型的转换和ASCII码转义字符的应用,变量的定义和X围,算法循环语句的退出条件等,我通过不断调试,翻阅课本和网上搜索材料得到了解决,也认识到这些细节上的处理更当注意。在调试时,学会了在有问题的地方注释并能经常使用printf()函数测试输出结果。在测试时对测试数据的选取更当考虑全面能检测错误输入并进展提示。通过这次实验我学会运用课本和教师平时讲授知识进展切身实践,通过网络搜索学到了新的库函数,提高了我实际编写程序的能力。参考文献1严蔚敏,吴伟民编著.数据结构C语言版.清华大学,2006年2李春葆,曾慧,2002年,2004年,2005年5许卓群,X乃孝,杨冬青,唐世渭编著.数据结构.高等教育,1988年 6晋良颍编著.数据结构.人民邮电,2002年附录用数组实现:#

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号