数据结构课程设计

发布 2022-10-01 21:08:28 阅读 7240

《数制转换》

设计说明书。

学生姓名。学号。

所属学院信息工程学院

专业计算机科学与技术

班级计算机

指导教师。教师职称讲师。

塔里木大学教务处制。

目录。1前言 1

1.1设计背景和意义 1

1.1.1数据结构简介 2

1.1.2选择算法的原因 2

1.2设计的原理和内容2

2正文 22.1 设计的目的和意义 2

2.2 目标和总体方案2

2.3 设计方法和内容 3

2.3.1模块划分 3

2.3.2主要程序模块 3

2.4 程序的设计思想和内容 6

2.4.1用数组实现该问题 6

2.4.2用栈实现该问题 6

2.5 设计创新和关键技术 6

2.6 程序调试 6

2.7程序流程图 7

3小结 8参考文献 9

附录 91前言。

1.1设计背景和意义。

1.1.1数据结构简介。

数据结构是计算机程序设计的重要理论设计基础,是一门综合性的专业基础科。数据结构是研究数据之间的相互关系,也即数据的组织形式的一门科学。它不仅是计算机学科的核心课程,数据结构是计算机存储、组织数据的方式。

通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率的算法。在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。

1.1.2选择算法的原因。

在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。

有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。

1.2设计的原理和内容。

设计了一个10进制转换其它进制(36进制以内)及逆转换的软件,该软件具有简单的将10进制数转换成进制数以及较复杂的高进制数的转换和逆转功能。本软件采用c语言编写以vc++作为软件开发环境,采用顺序栈存储方式来存储运算中的数位,借助栈后进先出的特点,易于结果输出。操作简单,界面清晰,易于为用户所接受。

2正文。2.1 设计的目的和意义。

我们是计算机科学与技术专业的本科生,《数据结构》是我们重要的必修课程。当代社会学要大学培养出理论扎实,动手实践能力强的大学生。所以,本次课程设计的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步升华为理性的认识。

为后继课程的学习打下坚实的基础。通过本次数据结构课程设计,我们基本上掌握了课程设计流程,还掌握了一些知识和技能,这对于我们以后对于数据结构的学习有了很大的帮助和提高,加深了我们对数据结构的理解,,为今后的学习打下了坚实的基础。同时也提高了我们对于编程这方面的能力。

2.2 目标和总体方案。

本次设计的目标在于设计出一个能够实现数制转换的程序,于是特制订了一个总体的方案:

程序的设计。

第一步:查阅有关数据结构数制转换操作的资料,用半天的时间。

第二步:设计这个项目的整体架构和算法。用一到两天的时间。

第三步:使用c语言程序设计程序语言进行算法的描述。两天的时间。

程序的调试。

进行程序的调试。用一天。

最后,我在完整的整理一遍,完成课设。

2.3 设计方法和内容。

2.3.1模块划分。

2.3.1.1用数组实现该问题。

1)i,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)sqstack定义栈,说明base为栈底指针,top为栈顶指针,stacksize为栈容量;

2)int initstack(sqstack &s)到int destroystack(sqstack &s)六大模块分别表示构造一个空栈、用e表示栈元素、插入元素、删除元素、判断栈是否为空以及摧毁栈;

3)sqstack s是指定义栈s;

4)d2m(int a,int b)的功能是将十进制数转换成m进制的函数;

5)m2d()的功能是m进制转换为十进制的函数;

6)void main()是主函数。其功能是输入需要测试的数据以及需要转换的进制,并在特定情形下调用d2m()函数和m2d()函数,而且实现m进制数向转任意非m进制数的换。

2.3.2主要程序模块。

d2m(int g,int h)

int c[n];

i=0;reminder=g%h;

g=g/h;

if(reminder>9)

elseif(g>0)

d2m(g,h);

for(j=i-1;j>=0;j--)

if(c[j]>=65)

printf("%c",c[j]);

elseprintf("%d",c[j]);

return 0;

自定义函数d2m用于在用数组实现该问题的程序中十进制数转换为其他进制数。

m2d(int e)

int a[n];

printf("请输入%d进制位数:",m);

scanf("%d",&n);

printf("请输入%d进制的每位并使每位用空格隔开:",m);

for(i=0;i scanf("%d",&a[i]);

for(i=n-1;i>=0;i--)

printf("请输出所得的10进制的结果: "

printf("%d",y);

printf("需要转换的进制m:")

scanf("%d",&s);

printf("请输出转换成%d进制的结果:",s);

d2m(y,s);

return 0;

自定义函数m2d用于在用数组实现该问题的程序中二进制和八进制数转换为十进制数,并且转换为其他进制数。

h2d(int f

int b[n];

printf("请输入%d进制位数:",m);

scanf("%d",&n);

printf("请输入%d进制的每位并使每位用空格隔开:",m);

for(i=0;i scanf("%x",&b[i]);

for(i=n-1;i>=0;i--)

printf("请输出所得的10进制的结果: "

printf("%d",y);

printf("需要转换的进制m:")

scanf("%d",&s);

printf("请输出转换成%d进制的结果:",s);

d2m(y,s);

return 0;

自定义函数h2d用于在用数组实现该问题的程序中十六进制数转换为十进制数,并转换。

为其他进制数。

d2m(int a,int b

while(a)

printf("该数转换成%d进制的结果:",b);

while(!stackempty(s))

return 0;

自定义函数d2m用于在用栈实现该问题的程序中十进制数转换成其他进制数。

m2d其他进制数转换为十进制数。

char c[1000];

printf("请输入需要转换的数的位数:")

scanf("%d",&n);

printf("请输入需要转换的数的每位并用空格隔开:")

for(i=0;i

i=0;while(!stackempty(s))

printf("转换成10进制的结果是:")

printf("%d",y);

return 0;

自定义函数m2d用于用栈实现该问题的程序中其他进制数转换为十进制数。

2.4 程序的设计思想和内容。

2.4.1用数组实现该问题

d2m()函数和m2d()函数是实现该问题的主要函数。 d2m()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数x取首先对需要转换的进制m取余,然后再对其取整,接着通过递归调用d2m()函数依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组中,然后逆向取出数组中的元素,即得到转换后的结果。而m2d()函数则是实现其他进制m转换为十进制,并将其转换为非m进制的数。

m进制转十进制则是从该m进制数的最后一位开始算,依次列为第…n位并分别乘以m的…n次方,将得到的次方相加便得到对应的十进制数,再调用d2m()函数将其转换为非m进制的数。

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...