如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
上机实验指导书一、上机实验要求及规范数据结构课程具有比较强的理论性,同时也具有较强的可应用性和实践性。上机实验是一个重要的教学环节。实验成绩占有一定的学分。实验成绩由两部分组成,一部分是上机实验的程序调试和运行情况(出勤、作品现场完成情况等等),另一部分是实验报告完成情况。数据结构课程的实验教学在本届学生中进行一些改革和探索,目的是提高学习效率和效果。实验教学的环境采用两种不同平台。一种仍是沿用传统的做法,学生在VC或者CBuilder环境中输入编辑、编译和运行自己的程序。其特点是:学生为了实现和验证一个典型算法,必须自行编写和设计一个体系完整的源程序,具体来讲:类的完整定义,各种输入、输出等函数的完整正确定义,以及原始数据的拟订以及提供。程序代码编写工作量很大,程序调试通过所需时间很长。对于基础扎实的学生比较适合。另一种是引进提供一个专门用于数据结构实验的软件平台,现在可以看到多种版本软件,都是在一些高等学校内部试用,尚未见到商品化进入软件市场的软件。他们的共同特点是,针对一种典型算法在软件系统中已经提供了完整源程序70%-80%或者更多的语句代码,具有清晰友好的界面,学生只需将精力集中到算法自身的实现和编码之上。这样,减轻了学生的负担,提高了学生学习算法的效率。对于基础薄弱的学生,提高算法程序的成功通过比例。增加学生“成就感”,增强学习兴趣,提高学习质量。一般情况下学生能够重视实验环节,对于编写程序上机练习具有一定的积极性。但是容易忽略实验的总结,忽略实验报告的撰写。对于一名大学生必须严格训练分析总结能力、书面表达能力。需要逐步培养书写科学实验报告以及科技论文的能力。1.1在VC或者CBuilder环境中拿到一个题目,一般不要急于编程。按照面向过程的程序设计思路(关于面向对象的训练将在其它后继课程中进行),正确的方法是:首先理解问题,明确给定的条件和要求解决的问题,然后按照自顶向下,逐步求精,分而治之的策略,逐一地解决子问题。具体实习步骤如下:1.1.1问题分析与系统结构设计上机实验是针对一个具体的实际问题,进行程序设计以便解决问题。首先需要充分地分析和理解问题本身,弄清要求做什么(而不是怎么做),限制条件是什么。按照面向对象技术的原则,考虑所需设计的类是什么?在主函数中如何使用类对象,如何实现问题的解决。具体来讲,搞清实际问题的若干数据元素的逻辑结构(是线性表还是树、图?),确定数据的存储结构(是顺序结构还是链表结构?),设计哪些有关操作的函数。将数据存储结构和算法对应的函数封装成为一个类,一些重要的典型的算法往往以类的成员函数形式出现。要求绘制简明扼要的系统结构图,主要描述主函数系统结构。对于复杂重要的算法,也要绘制该函数的流程图。1.1.2详细设计和编码详细设计是对函数(模块)的进一步求精,用伪高级语言或自然语言写出算法框架,这时不必确定很多结构和变量。编码,即程序设计。就是对详细设计结果的进一步求精,即用某种高级语言(如C语言)表达出来。尽量多设一些注释语句,清晰易懂。尽量临时增加一些输出语句,便于差错矫正,在程序成功后再删去它们。1.1.3上机准备熟悉高级语言用法,如C语言。熟悉机器(即操作系统),基本的常用命令。静态检查主要有两条路径,一是用一组测试数据手工执行程序(或分模块进行);二是通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,在这个过程中再加入一些注释和断言。如果程序中逻辑概念清楚,后者将比前者有效。1.1.4上机调试程序上机调试程序应该分步骤分层次进行。程序由简到繁、规模由小到大、数据量由少到多,逐步完成。比如,针对一个算法它可能有许多函数,建议首先仅仅调试简单函数和输入/出函数,这一步比较简单容易。即使如此,实验数据的规模也从少量几个开始(1-3个),程序调通之后,再用大量数据(十个到几十个或者更多)实验。此时,还可以排除一些错误。通过这一阶段,可以排除数据结构设计、构造函数和输入/输出函数设计的错误。然后,再把体现重要算法的函数加入到源程序之中,这包括:函数原型声明、函数实现的程序代码以及对它的调用语句等等。此时,实验数据规模也从少量几个开始,以便检查算法设计的正确性,程序基本调通之后,再用大量数据进行实验。本阶段还可进一步排除一些错误。但是,出现错误的范围往往集在新加入的代码段之中。1.1.5.整理实习报告在上机实开始之前要充分准备实验数据,在上机实践过程中要及时记录实验数据,在上机实践完成之后必须及时总结分析。写出实验报告。书写实验报告的基本要求如下。一般性、较小规模的上机实验题,必须遵循下列要求。养成良好的习惯。书写实验报告使用统一的实验报告纸。一、问题描述描述问题与“实验名称”不同,是指实验题目的具体内容。需要简述题目要解决的问