数据结构实验报告格式 联系客服

发布时间 : 星期六 文章数据结构实验报告格式更新完毕开始阅读0195feede009581b6bd9ebdf

花2个小时的机上时间只找出一个错误,甚至一无所获的情况是常见的。其原因在于,很多人只认识到找错误,而没有认识到努力预先避免错误的重要性,也不知道应该如何努力。实际上,结构不好、思路和概念不清的程序可能是根本无法调试正确的。严格按照实习步骤规范进行实习,不但能有效地避免上述种种问题,更重要的是有利于培养软件工作者不可缺少的科学工作方法和作风。

在附录中提供了一个完整的实习报告示例,在起到实习报告规格范例作用的同时,还隐含地提供了很多有益的东西,比如基于数据类型的系统划分方法以及所提倡的程序设计风格等等。计算机学科在不断发展,可以使用的语言工具越来越丰富,在本书中的实习示例是应用面向过程的语言进行设计和编程,同样的实习题,也可以用面向对象的语言来实现。希望书中的实习报告示例能起到一个抛砖引玉的作用,以引来读者更多更优良的设计范例。

实习步骤

随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加,因此软件开发需要系统的方法。一种常用的软件开发方法,是将软件开发过程分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实习题的复杂度远不如实际中真正的软件系统,但为了培养一个软件工作者所应具备的科学工作的方法和作风,我们制订了如下所述完成实习的5个步骤:

1.问题分析和任务定义

通常,实习题目的陈述比较简洁,或者说有模棱两可的含义。因此,在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么,限制条件是什么。注意:本步骤强调的是做什么,而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等。这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式输入的数据。

2.数据类型和系统设计

在设计这一步骤中需分逻辑设计和详细设计两步实现。逻辑设计指的是,对问题描述中 涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程 序模块和各抽象数据类型。详细设计则为定义相应的存储结构并写出各过程和函数的伪码 算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。作为逻辑设计的结果,应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。详细设汁的结果是对数据结构和基本操作的规格说明作出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类C语言写出过程或函数形式的算法框架。在求精的过程中,应尽量避免陷入语言细节,不必过早表述辅助数据结构和局部变量。

3.编码实现和静态检查

编码是把详细设计的结果进一步求精为程序设计语言程序。如何编写程序才能较快地完成调试是特别要注意的问题。程序的每行不要超过60个字符。每个过程(函数)体一般不要超过40行,最长不得超过60行,否则应该分割成较小的过程(函数)。要控制if语句连续嵌套的深度,分支过多时应考虑使用switch语句。对函数功能和重要变量进行注释。一定要按格式书写程序,分清每条语句的层次,对齐括号,这样便于发现语法错误。

在上机之前,应该用笔在纸上写出详细的程序编码,并做认真地静态检查。多数初学者在编好程序后处于以下两种状态之一:一种是对自己的“精心作品”的正确性确信不疑;另一种是认为上机前的任务已经完成,纠查错误是上机的工作。这两种态度是极为有害的。对一般的程序设计者而言,当编写的程序长度超过50行时,通常会含有语法错误或逻辑错误。上机动态调试决不能代替静态检查,否则调试效率将是极低的。静态检查主要有两种方法,一是用一组测试数据手工执行程序(通常应先检查单个模块);二是通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,在这个过程中再加入一些注解。

4.上机准备和上机调试

上机准备包括以下几个方面:

(1)熟悉C语言用户手册或程序设计指导书。 (2)注意Turbo C、VC与标准C语言之间的细微差别。

(3) 熟悉机器的操作系统和语言集成环境的用户手册,尤其是最常用的命令操作,以便 顺利进行上机的基本活动。

(4) 掌握调试工具,考虑调试方案,设计测试数据并手工得出正确结果。“磨刀不误砍柴工”。学生应该熟练运用高级语言的程序调试器DEBUG调试程序。

上机调试程序时要带一本高级语言教材或手册。调试最好分模块进行,自底向上,即先调试低层过程或函数。必要时可以另写一个调用驱动程序。这种表面上麻烦的工作实际上可以大大降低调试所面临的复杂性,提高调试工作效率。

在调试过程中可以不断借助DEBUG的各种功能,提高调试效率。调试中遇到的各种异常现象往往是预料不到的,此时不应“苦思冥想”,而应借助系统提供的调试工具确定错误。调试正确后,认真整理源程序及其注释,印出带有完整注释的且格式良好的源程序清单和结果。

5.总结和整理实习报告

实习报告规范

实习报告的开头应给出题目、班级、姓名、学号和完成日期,并包括以下7个内容:

1.需求分析

以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:

(1) 输入的形式和输入值的范围;

(2) 输出的形式;

(3) 程序所能达到的功能;

(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

2.概要设计

说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。

3.详细设计

实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);画出函数和过程的调用关系图。

4.调试分析

内容包括:

a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;

b.算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和

改进设想;

c.经验和体会等。

5.用户使用说明

说明如何使用你编写的程序,详细列出每一步的操作步骤。

6.测试结果

列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分析中所列。

7.附录

带注释的源程序。如果提交源程序软盘,可以只列出程序文件名的清单。

在以下各实习单元中都提供了实习报告实例。值得注意的是,实习报告的各种文档资 料,如:上述中的前三部分要在程序开发的过程中逐渐充实形成,而不是最后补写(当然可以也应该最后用实验报告纸誊清或打印)。

实习题目

实习○ 抽象数据类型

三元组ADT

[问题描述]

设计实现抽象数据类型“三元组”。每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,两个三元组的对应分量相加或相减,给三元组的各分量同乘一个比例因子,显示三元组,销毁三元组等。

[基本要求]

实现创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组等基本操作。

[测试数据]

由学生任意指定。

[实现提示]

用结构体封装“三元组”的三个分量,并利用typedef对结构体或结构体指针重新命名。注意:如果要实现销毁三元组,则应利用typedef对结构体指针重新命名,并使用C语言的动态分配库函数。

[选作内容]

实现两个三元组的对应分量相加或相减,给三元组的各分量同乘一个比例因子,销毁三元组等操作。

有理数ADT

[问题描述]

设计实现抽象数据类型“有理数”。

[基本要求]