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

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

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

1、资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载数据结构课程设计数制转换地点:时间:说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与 义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时 请详细阅读内容HYPERLINKHYPERLINKHYPERLINKHYPERLINKToc4250 2HYPERLINKHYPERLINKHYPERLINKToc25443 2HYPERLINKToc26685 2HYPERLINKHYPERLINKHYPERLINKHYPERLINKToc17367 6HYPERLINKToc20917 6HYPERLIN

2、KToc4120 6目录 TOC o 1-3 h uiiiiiiiiiiiiiiToc18597Toc32106Toc1428Toc42501 前言 PAGEREF _Toc18597 11.1设计背景和意义1.1.1数据结构简介1.1.2选择算法的原因Toc39 1.2设计的原理和内容Toc19982Toc25443Toc26685Toc1364Toc31885Toc30484Toc17367Toc20917Toc4120PAGEREF Toc32106PAGEREF Toc1428PAGEREFPAGEREF Toc39 22 正文 PAGEREF _Toc19982 22.1设计的目的和

3、意义2.2目标和总体方案2.3设计方法和内容2.3.1模块划分2.3.2主要程序模块PAGEREFPAGEREFPAGEREFToc1364PAGEREFPAGEREF2.4程序的设计思想和内容2.4.1用数组实现该问题2.4.2用栈实现该问题Toc31885Toc30484PAGEREFPAGEREFPAGEREFHYPERLINK l _Toc4009 2.5 设计创新和关键技术 PAGEREF Toc4009 6HYPERLINK l _Toc18617 2.6 程序调试PAGEREF _Toc186176HYPERLINK l _Toc32366 2.7 程序流程图 PAGEREF _

4、Toc32366 7HYPERLINK l _Toc25109 2.8 结论PAGEREF _Toc25109 8HYPERLINK l _Toc29308 参考文献PAGEREF _Toc29308 9HYPERLINK l _Toc29218 附录 PAGEREF _Toc29218 91刖言1.1设计背景和意义1.1.1数据结构简介数据结构是计算机程序设计的重要理论设计基础,是一门综合性的专业基 础科。数据结构是研究数据之间的相互关系,也即数据的组织形式的一门科 学。它不仅是计算机学科的核心课程,数据结构是计算机存储、组织数据的方 式。通常情况下,精心选择的数据结构可以带来更高的运行或者

5、存储效率的算 法。在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计 和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重 要基础。1.1.2选择算法的原因在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因 素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都 严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算 法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结 构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。设计了一个10进制转换其它进制(36进制以内)及逆转换的软件,该软件 具有简单的

6、将10进制数转换成2、8、16进制数以及较复杂的高进制数的转换 和逆转功能。本软件采用C语言编写以VC+作为软件开发环境,采用顺序栈存 储方式来存储运算中的数位,借助栈后进先出的特点,易于结果输出。操作简 单,界面清晰,易于为用户所接受。2正文2.1设计的目的和意义我们是计算机科学与技术专业的本科生,数据结构是我们重要的必修 课程。当代社会学要大学培养出理论扎实,动手实践能力强的大学生。所以, 本次课程设计的目的就在于通过一次实践性的活动加深对这门课程的理解,使 我们在感性的认识上进一步升华为理性的认识。为后继课程的学习打下坚实的 基础。通过本次数据结构课程设计,我们基本上掌握了课程设计流程,

7、还掌握 了一些知识和技能,这对于我们以后对于数据结构的学习有了很大的帮助和提 高,加深了我们对数据结构的理解,为今后的学习打下了坚实的基础。同时 也提高了我们对于编程这方面的能力。2.2目标和总体方案本次设计的目标在于设计出一个能够实现数制转换的程序,于是特制订了 一个总体的方案:程序的设计第一步:查阅有关数据结构数制转换操作的资料,用半天的时间。第二步:设计这个项目的整体架构和算法。用一到两天的时间。第三步:使用C语言程序设计程序语言进行算法的描述。两天的时间。程序的调试进行程序的调试。用一天。最后,我在完整的整理一遍,完成课设。2.3设计方法和内容2.3.1.1用数组实现该问题(1) i,

8、j,y,n,s,m,r,reminder,x是定义的全局变量,初始值都为0;(2) D2M(int g,int h)是实现十进制数转换为M进制数的函数;(3) M2D()是实现M(仅指二进制数和八进制数)进制数转换为十进制数的 函数,并在其中调用D2M(int g,int h)实现向非M进制数的转换;(4) H2D(int f)是实现十六进制数转换为十进制数的函数,并在其中调用 D2M(int g,int h)实现向非十六进制数的转换;(5) void main()是主函数,功能是给出测试的数据,并在特定条件下调 用D2M()函数和M2D()函数。2.3.1.2用栈实现该问题(1) SqSta

9、ck定义栈,说明base为栈底指针,top为栈顶指针, stacksize为栈容量;(2) int InitStack(SqStack &S)到 int DestroyStack(SqStack &、)六大 模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈 是否为空以及摧毁栈;(3) SqStack S是指定义栈S;(4) D2M(int a,int b)的功能是将十进制数转换成M进制的函数;(5) M2D()的功能是M进制转换为十进制的函数;(6) void main()是主函数。其功能是输入需要测试的数据以及需要转换 的进制,并在特定情形下调用D2M()函数和M2D()

10、函数,而且实现M进制数向转 任意SEM进制数的换。2.3.2主要程序模块(1):D2M(int g,int h)(int cN;i=0;reminder=g%h;g=g/h;if(reminder9)(ci=reminder+55;i+;else(ci=reminder;i+;if(g0)D2M(g,h);for(j=i-1;j=0;j-)if(cj=65)printf(%c,cj);elseprintf(%d,cj);return 0;自定义函数D2M用于在用数组实现该问题的程序中十进制数转换为其他进 制数M2D(int e)(int aN;printf(请输A%d进制位数:,m);scan

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

12、n);printf(请输A%d进制的每位并使每位用空格隔开:,m);for(i=0;i=0;i-)(y+=(int)pow(f,j)*bi;/强制类型转换,以免造成数据丢失j+;printf(请输出所得的10进制的结果:);printf(%d,y);printf(n需要转换的进制M:);scanf(%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

13、,r);压入栈a/=b;/转换成M进制printf(该数转换成%d进制的结果:,b);while(!StackEmpty(S)Pop(S,e);/弹出栈if(e=65) printf(%c,e);else printf(%d,e);return 0;自定义函数D2M用于在用栈实现该问题的程序中十进制数转换成其他进制(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程序的设计思想和内容2.4.1用数组实现该问题D2M()函数和M2D()函数是实现该问题的主要函数。D2M()函数是实现十进 制转换为其它进制的函数,它是将输入的十进制数x取首先对需要转换的进制 M取余,然后再对其取整,接着通过递归调用D2M()函数依次将得到的整数部分 依次先取余后取

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

当前位置:首页 > 学术论文 > 其它学术论文

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