数据结构实训报告_数据结构实训报告样本

其他范文 时间:2020-02-28 03:48:18 收藏本文下载本文
【www.daodoc.com - 其他范文】

数据结构实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构实训报告样本”。

题目:在火车货场车皮编解场,2条轨道连接到2条侧轨道,形成2个铁路转轨栈,其中左边轨道为车皮入口,编号为A;右边轨道为出口,编号为D;2个铁路转轨栈分别编号为C和D如下图所示。编号为a, b, c, ┅, n的各车皮依序停放在车皮的入口处,调度室要安排个车皮进出栈次序,使得在出口处各车皮按照预先制定的顺序依次出站。车皮移动时只能按照从左到右的方向移动。组织与指导老师:

组长:*

成员:***

指导教师:*

完成时间、地点:

时间:第16周(6月6日~6月10日)

地点:南校区东教学楼2楼机房。

一、需求分析

1、问题描述

掌握队列、栈、树的结构以及基本操作,熟悉for循环语句,if条件语句的嵌套,结构体函数等,从而实现程序的功能。

例如:

typedef struct Stack

{

Data *data;

Data *end;

}Stack;

……

2、实现功能

(1)对于给定的车皮数n,以及各车皮的出站顺序,编程计算最优调度方案,使得移动车皮的次数最少。

(2)数据输入:由文件input.txt给出数据。第一行有1个正整数n,表示车皮数;接下来的1行是一个字符串,表示预先确定的车皮的出站顺序。

(3)数据输出:将计算得到的最优调度方案输出到文件output.txt,文件的第一行使最少移动次数m,接下来的m行使对于最优方案的m次移动。每次移动用“cXY”的3个字符表示,其中c表示车皮编号,X表示其时栈号,Y表示目标栈号。如果无法调度则输出“No Solution!”

二、概要设计

1、抽象数据类型

void ReadData(void)

{

int i;

FILE *fp;

fp = fopen(“input.txt”, “r”);

if(fp == NULL)

exit(__COUNTER__);

fscanf(fp, “%d”, &total);

if(total

{

fclose(fp);

exit(__COUNTER__);

}

……、void Show(Stack a, char *s)

{

char *tmp, *pc;

char *p =(char*)a.data;

pc = tmp =(char*)malloc(total + 1);

while(p

*pc++ = *p++;

*pc = 0;

printf(“%s%s”, tmp, s);

}

……

if(d == end)

{

if(min > count)

{

min = count;

strcpy(res, tmp);

return;

}

}

count++;

if(A.end >= A.data)

a = *A.end;

else

a = EOD;

……

2、程序中包含功能模块及模块间的调用关系

各个基本操作都通过公有成员函数实现,然后通过主程序调用来实现程序的功能。

例如:

void Init(Stack *a, int len)

{

a->data =(Data*)malloc(len * sizeof(Data));

memset(a->data, 0, len * sizeof(Data));

a->end = a->data-1;

}

……

void main(void)

{

ReadData();

Calc(head);

End();

}

三、调试分析

完成情况说明:

编译程序的过程中发现了许多漏洞,调试起来很不方便,经过我和同学的共同努力,终于有了突破性的进展,程序按照预定的时间调试出来了,虽然当中还存在不少的漏洞,但不会影响程序的正常运行。

程序的性能分析:各个操作都是通过公有函数的调用来实现的,其中用到结构体函数,for循环,If语句的嵌套等,通过测试可以实现其预定的功能。出现的问题及解决方案:

缺失头文件导致的定义无效错误,通过添加头文件即可解决问题;定义字符类型错误,使用正确的函数类型定义即可,for循环的循环语句语法使用不当,导致函数无法实现循环,if条件语句的应用还存在问题,以上所述的编译错误都通过我很同学的认真分析后纠正了。

四、用户使用说明

了解程序的执行过程,输入合法的数值是程序正常运行的关键,输入的数值和开始需要的字符的长度要符合五、心得体会:

通过多次编写程序,我总结出来一条心得,程序不能写完才调试,而是应该写一个函数调试一个函数,这样才能缩小调试的范围,提高编程的效率,程序编完后在进行一次综合调试,将不完善的函数和功能处理好,才能将程序做到最好!而且,很多时候,一个大的工程并不是一个人就能完成,这就要求我们有团队精神。让我感受最深的是在我调试程序的时候,一个很细微的错误就可能导致程序的出错,正所谓的“细节决定成败”,不管是在学习中,生活中,我们都要有一颗善于发现问题,解决问题的新,除此之外,还要有乐于助人的精神。

数据结构实训报告

北京联合大学实训报告课程(项目)名称: 数据结构 学 院: 专 业: 班 级: 学 号:姓 名: 成 绩:2012年 6 月 21 日数据结构实训任务一一、任务与目的: 1、用顺序表表示两个无序集合A、B,实......

《数据结构》实训报告

实验一线性表1.实验要求1.1 掌握数据结构中线性表的基本概念。1.2 熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构上的实验。 1......

数据结构实训报告样本

( 数据结构实训报告 )目录一、实训目的 ...........................................................1二、实训题目 ..........................................................

数据结构实训总结

这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独......

数据结构实训题目()

注意:第5题和第7题有改动,第6题加了一句提示一、停车场管理仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问......

下载数据结构实训报告word格式文档
下载数据结构实训报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文