数据结构实验报告-教学计划编制

合集下载

数据结构课程设计实验报告完整版

数据结构课程设计实验报告完整版

数据结构课程设计实验报告完整版【正文】一、实验目的本实验主要目的是通过实践,掌握数据结构的基本概念、常见数据结构的实现方式以及在实际应用中的应用场景和效果。

二、实验背景数据结构是计算机科学与技术领域中的一个重要概念,是研究数据的组织方式、存储方式、访问方式以及操作等方面的方法论。

在计算机科学领域,数据结构是实现算法和解决问题的基础,因此对数据结构的理解和应用具有重要意义。

三、实验内容本次数据结构课程设计实验主要分为以下几个部分:1. 实验环境的准备:包括选择合适的开发平台、安装必要的软件和工具。

2. 实验数据的收集和处理:通过合适的方式收集实验所需的数据,并对数据进行处理和整理。

3. 数据结构的选择和实现:根据实验需求,选择合适的数据结构,并进行相应的数据结构实现。

4. 数据结构的测试和优化:对所实现的数据结构进行测试,包括性能测试和功能测试,并根据测试结果对数据结构进行优化和改进。

5. 实验报告的撰写:根据实验过程和结果,撰写完整的实验报告,包括实验目的、实验背景、实验内容、实验结果和结论等。

四、实验过程1. 实验环境的准备本实验选择了Visual Studio作为开发平台,安装了相应版本的Visual Studio,并根据官方指引进行了相应的配置和设置。

2. 实验数据的收集和处理本实验选取了一份包含学生信息的数据集,包括学生姓名、学号、性别、年龄等信息。

通过编写Python脚本,成功提取了所需信息,并对数据进行了清洗和整理。

3. 数据结构的选择和实现根据实验需求,我们选择了链表作为数据结构的实现方式。

链表是一种常见的动态数据结构,能够高效地插入和删除元素,适用于频繁插入和删除的场景。

在实现链表时,我们定义了一个节点结构,包含数据域和指针域。

通过指针的方式将节点连接起来,形成一个链式结构。

同时,我们还实现了相关的操作函数,包括插入、删除、查找等操作。

4. 数据结构的测试和优化在完成链表的实现后,我们对其进行了性能测试和功能测试。

教学计划编制问题数据结构课程设计

教学计划编制问题数据结构课程设计

信息科学与工程学院数据结构课程设计课程设计名称: 教学计划编制问题前言《数据结构》是一门综合性较强的计算机软件、程序设计理论和技术相结合的重要基础课程。

它主要讨论抽象数据关系和算法在计算机中的表示与实现,涉及到的数据在计算机中的表示、组织和处理,以及相应结构上的算法设计和算法性能上的分析技术。

它所包含的知识与提倡的技术方法,无论对大家进一步学习计算机领域里的其他课程,还是对今后从事理论研究、应用开发及技术管理工作都起着重要的作用。

如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。

通过学习《数据结构》这门理论性强、思维抽象、难度较大的课程后,大家就更深入透彻地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养了基本的、良好的程序设计技能,大家就能编制高效可靠的程序,更重要的也培养大家解决实际问题的能力,提高分析设计能力和编程能力,为大家后续课程的学习及实践也打下了良好的基础。

因此,学校开设了《数据结构(C语言版)》,通过学习数据结构,大家对编程有了更多的了解,为了让大家将自己所学的知识应用到实际当中,学校开设了数据结构课程设计,通过这次课程设计大家可以更好地将C语言应用到实际当中,而且可以更好的掌握算法与数据结构,将数据结构和C语言有效的结合起来,使大家的编程能力得到更大的提高。

关键字:C语言数据结构目录前言 ------------------------------------------- 2一、课题内容和设计要求 -------------------------------- 41.1 课题内容 --------------------------------------- 41.2 设计要求 --------------------------------------- 4二、课题需求分析-------------------------------------- 6三、课题实现模块设计 ---------------------------------- 63.1 程序模块设计 ----------------------------------- 63.2 函数的调用关系 --------------------------------- 7四、模块的功能实现 ------------------------------------ 74.1相关数据类型的定义 ------------------------------ 74.2主要函数的流程图------------------------------- 8五、程序调试 ---------------------------------------- 105.1 测试数据 ------------------------------------ 10 5.2 调试过程 ------------------------------------- 10 六.程序设计总结 ----------------------------------- 13七、附录 -------------------------------------------- 157.1致谢 ----------------------------------------- 157.2参考书目--------------------------------------- 157.3源程序清单 ------------------------------------- 15一、课程内容与要求1.1课题内容[ 问题描述 ]大学的每个专业都要制定教学计划。

数据结构课程设计实验报告

数据结构课程设计实验报告

数据结构课程设计实验报告引言数据结构课程设计实验是为了加深对数据结构基本概念和算法的理解和掌握,通过实际操作来加深对数据结构的认识和应用能力。

本实验报告将介绍在数据结构课程设计实验中所完成的内容,包括实验目的、实验环境、实验过程、实验结果以及实验总结。

实验目的通过本次实验,旨在掌握以下内容: - 理解并掌握线性表、栈、队列、链表、二叉树等基本数据结构的概念和实现; - 熟悉数据结构的插入、删除、查找等基本操作; - 学习并掌握基本排序算法和查找算法的实现; - 通过实验加深对数据结构和算法的理解,并能够灵活运用于实际问题的解决。

实验环境本次实验在以下环境下进行: - 操作系统:Windows 10 - 编程语言:C语言 - 集成开发环境:Visual Studio Code实验过程1. 线性表的操作设计1.1 定义结构体首先,定义表示线性表的结构体,包括数据域和指向下一个结点的指针。

typedef struct Node {int data; // 数据域struct Node* next; // 指向下一个结点的指针} Node;1.2 初始化线性表编写函数以初始化一个空的线性表。

void InitList(Node** head) {*head = (Node*)malloc(sizeof(Node));(*head)->next = NULL;}1.3 插入元素编写函数以在线性表的指定位置插入元素。

```C void Insert(Node* head, int pos, int data) { if (pos < 1) { printf(。

《数据结构》实验报告

《数据结构》实验报告

《数据结构》实验报告实验一一、实验目的及要求理解线性表的顺序存储结构;熟练掌握顺序表结构及其有关算法的设计;理解线性表的链式存储结构;熟练掌握动态链表结构及其有关算法的设计;根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法;深入了解栈和队列的特性,以便在实际问题背景下灵活运用他们;同时巩固对这两种结构的构造方法的理解。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以顺序表作存储结构,实现线性表的插入、删除;2.以单链表作存储结构,实现有序表的合并;3.利用栈(以顺序栈作存储结构)实现进制转换,并用队列(以链队列作存储结构)计算并打印杨辉三角。

四、源程序清单五、实验结果六、总结实验二一、实验目的及要求掌握二叉树的动态存储结构--二叉链表,掌握二叉树的三种遍历方法,会运用三种遍历的方法求解有关问题。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以二叉链表作存储结构,建立一棵二叉树;2.输出其先序、中序、后序遍历序列;3.求出它的深度;4.统计其叶子结点数四、源程序清单五、实验结果六、总结实验三一、实验目的及要求掌握图的存储结构及其建立算法,熟练掌握图的两种遍历算法及其应用。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.以邻接矩阵法作存储结构,建立一个无向图;2.输出该图的深度优先搜索序列;3.输出该图的广度优先搜索序列;4. 设计算法求出该图的连通分量个数及边的数目。

四、源程序清单五、实验结果六、总结实验四一、实验目的及要求掌握顺序表的查找方法,尤其是折半查找方法。

掌握二叉排序树的查找算法。

二、实验环境硬件:计算机软件:Microsoft Visual C++三、实验内容1.建立一个顺序表,用顺序查找的方法对其实施查找;2.建立一个有序表,用折半查找的方法对其实施查找;3.建立一个二叉排序树,根据给定值对其实施查找;4.对同一组数据,试用三种方法查找某一相同数据,并尝试进行性能分析。

数据结构 教学计划编制

数据结构 教学计划编制

数据结构教学计划编制学院课程设计报告书课程名称数据结构设计题目教学计划编制 xx年1 月目录1 设计时间12 设计目的13设计任务14 设计内容14、1需求分析14、2总体设计24、3详细设计54、4测试与分析124、4、1测试124、4、2分析154、5 附录155 总结与展望26参考文献27成绩评定281 设计时间 xx年1月3日至xx年1月6日2 设计目的1)通过课程设计,加深对《数据结构》这一课程所学内容的进一步理解与巩固。

2)通过课程设计,提高程序开发能力,能运用合理的控制流程编写清晰高效的程序。

3)通过课程设计,提高C程序调试能力,加强实践能力。

4)通过课程设计,培养分析问题、解决实际问题的能力。

5)通过课程设计,培养软件设计能力和开发能力。

6)通过课程设计,培养交流、团结协作精神。

7)通过课程设计,加强个人程序设计能力。

3设计任务大学的每个专业都要制定教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。

每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

4 设计内容4、1需求分析1、程序所能达到的功能(1)数据结构使用有向图和栈。

(2)课程先修关系(图7、26)课程编号课程名称先决条件课程学分01程序设计基础无202离散数学01303数据结构01,02404汇编语言01305语言的设计和分析03,04206计算机原理11307编译原理05,03408操作系统03,06409高等数学无710线性代数09511普通物理09212数值分析09,10,013 (3)如果输入的先修课程号不在该专业开设的课程序列内,则作为错误处理。

2、输入的形式和输入值的范围输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

(完整word版)数据结构教学计划编制-(2)(word文档良心出品)

(完整word版)数据结构教学计划编制-(2)(word文档良心出品)

软件学院
课程设计报告书
课程名称数据结构
设计题目教学计划编制
2011年1 月
目录
1 设计时间 (1)
2 设计目的 (1)
3设计任务 (1)
4 设计内容 (1)
4.1需求分析 (1)
4.2总体设计 (3)
4.3详细设计 (6)
4.4测试与分析 (15)
4.4.1测试 (15)
4.4.2分析 (18)
4.5 附录 (19)
5 总结与展望 (26)
参考文献 (27)
成绩评定 (28)
2.输入课程名,课程号及相应学分
3.输入课程先修关系总数
4.顺序输入先修关系
5.输出邻接表
6.选择编排策略1,输出编排结果
7. 选择编排策略2,输出编排结果
8.错误运行:当输入两个相同课程号的不同课程
9.运行结果
4.4.2分析
1、调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析。

数据结构课设_教学计划编制问题

数据结构课设_教学计划编制问题

数据结构课程设计教学计划编制问题班级学号*******学生姓名周子健提交日期2016年1月19日成绩计算机与通信工程学院设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

1.1 课程设计目的本课程设计主要是针对计算机系本科课程,根据课程之间的依赖关系,制定课程安排计划,并满足各学期课程数目大致相同。

教学计划编制系统是基于C++的软件系统,通过建立AOV网,按学期对课程序号、课程代号、课程名称以及课程学分进行相应输出,并且保证用户实现自由选择专业选修课功能。

1.2 课程设计内容教学计划编制系统主要是处理课程之间的依赖关系。

表1.1列出了若干门计算机系本科课程,其中有些课程不要求先修课程,例如,C1是独立于其他课程的基础课,而有些课程却需要有先修课程,比如,学完程序设计语言C++和离散数学后才能学习数据结构。

具体情况如表1.1所示。

表1.1 课程以及课程之间的依赖关系先修课程规定了课程之间的依赖关系,这种关系可以用AOV网来表示,其中顶点表示课程,弧表示依赖关系,如图1.1所示。

图1.1 表1.1对应的AOV 网程序的主要功能是实现课程的排序,以满足同一学期所修的课程相互之间无依赖关系,并且已修完其所有先修课程。

另外,设置学分变量,控制每个学期的课程量基本均匀。

2 概要设计2.1 数据表示教学计划编制问题中,操作对象是课程。

课程之间的依赖关系用AOV 网表示, AOV 网的构造采用邻接表实现。

因此,本程序设计定义了两个类:课程类和邻接表类。

课程类(Lesson )添加了5个私有成员变量用来定义课程的5个属性:课程代号、课程名称、课程序号、课程学分以及是否被选择过的课程标记。

同时还定CCCCCCC义了8个成员函数,已实现相关的操作功能。

邻接表类(ALGraph)定义了2个整型成员变量和1个结构体数组来存放顶点数、边数和顶点表。

数据结构实验报告(实验)

数据结构实验报告(实验)

深 圳 大 学 实 验 报 告课程名称: 数据结构实验与课程设计 实验项目名称: 实验一:顺序表的应用 学院: 计算机与软件学院 专业: 指导教师: **报告人: 文成 学号: ********** 班级: 5 实验时间: 2012-9-17实验报告提交时间: 2012-9-24教务部制一、实验目的与要求:目的:1.掌握线性表的基本原理2.掌握线性表地基本结构3.掌握线性表地创建、插入、删除、查找的实现方法要求:1.熟悉C++语言编程2.熟练使用C++语言实现线性表地创建、插入、删除、查找的实现方法二、实验内容:Problem A: 数据结构——实验1——顺序表例程Description实现顺序表的创建、插入、删除、查找Input第一行输入顺序表的实际长度n第二行输入n个数据第三行输入要插入的新数据和插入位置第四行输入要删除的位置第五行输入要查找的位置Output第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开第二行输出执行插入操作后,顺序表内的所有数据,数据之间用空格隔开第三行输出执行删除操作后,顺序表内的所有数据,数据之间用空格隔开第四行输出指定位置的数据Sample Input611 22 33 44 55 66888 352Sample Output11 22 33 44 55 6611 22 888 33 44 55 6611 22 888 33 55 6622HINT第i个位置是指从首个元素开始数起的第i个位置,对应数组内下标为i-1的位置Problem B: 数据结构——实验1——顺序表的数据交换Description实现顺序表内的元素交换操作Input第一行输入n表示顺序表包含的·n个数据第二行输入n个数据,数据是小于100的正整数第三行输入两个参数,表示要交换的两个位置第四行输入两个参数,表示要交换的两个位置Output第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开第二行输出执行第一次交换操作后,顺序表内的所有数据,数据之间用空格隔开第三行输出执行第二次交换操作后,顺序表内的所有数据,数据之间用空格隔开注意加入交换位置的合法性检查,如果发现位置不合法,输出error。

教学计划编制问题 数据结构课程设计报告 湖南工程学院

教学计划编制问题 数据结构课程设计报告 湖南工程学院

课程设计报告课程名称数据结构课程设计课题名称教学计划编制问题专业网络工程班级 0901学号 2009031201XX姓名指导教师刘长松陈华光李杰君2011年 7 月 15 日湖南工程学院课程设计任务书课程名称数据结构课程设计课题教学计划编制问题专业班级网络工程0901 学生姓名 X X学号 2009031201XX 指导老师刘长松陈华光李杰君审批任务书下达日期: 2011 年 6 月 26 日任务完成日期:2011 年 7 月 15 日一、设计内容与设计要求1.设计内容:1)问题描述大学的每个专业都要制订教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。

每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

2)基本要求a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

b.允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。

计划的表格格式自行设计。

3)测试数据学期总数:6;学分上限:10;该专业共开设课数:12课程号:从C01到C12;学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。

先修关系如下图:4)实现提示可设学期总数不超过12,课程总数不超过100。

如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。

应建立内部课程号与课程号之间的对应关系。

2.设计要求:课程设计报告规范1)需求分析a.程序的功能。

b.输入输出的要求。

2)概要设计a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。

数据结构课程设计实验报告

数据结构课程设计实验报告

数据结构课程设计实验报告目录1.单位员工通讯录管理系统(线性表的应用)*********************2.停车场管理(栈和队列的应用)*******************************3.哈夫曼编码/译码系统(树应用)******************************4.教学计划编制问题(图的应用)*******************************5.药店的药品销售统计系统(排序应用**************************6.综合排序(**)*******************************************7.迷宫求解***************************************************8.总结*******************************************************9.源代码*****************************************************一.单位员工通讯录管理系统(线性表的应用)1.设计题目:单位员工通讯录管理系统(线性表的应用)2.问题描述:为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号。

其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

3.需求分析:随着社会的发展,越来越多的工厂建立。

为了便于管理单位员工和方便员工之间的交流,员工的各项信息的统计,查询和修改,删除等显得很重要。

基于上面的种种原因,在学习过数据结构课程和其他编程语言的基础上编成了一个单位员工通讯录管理系统,便于单位对员工的管理和员工间的交流。

4.算法设计:本程序使用的数据结构中的线性表中的知识,在C语言的基础上编的。

首先,应该建立一个单链表,链表的节点信息表存的有单位员工的编号,姓名,手机号码和办公室电话,然后我们就可以添加员工的各项信息了。

数据结构实验五:教学计划编制介绍

数据结构实验五:教学计划编制介绍

HUNAN UNIVERSITY 实验五最终报告题目教学计划编制问题学生姓名学生学号专业班级指导老师李晓鸿完成日期2015年12月17日一.需求分析1.程序的功能用户通过键盘输入课程总数、每门课的课程编号和直接先修的课程号等的参数。

用有向网表示教学计划,其中顶点表示某门课程,有向边表示课程之间的先修关系(如果A课程是B课程的先修课程,那么A到B之间有一条有向边从A指向B)。

最终输出一个不冲突的线性的课程教学流程。

2.输入形式请输入课程总数://输入一个正整数n请输入课程1的名称://输入任意字符串请输入课程2的名称:..............请输入课程n的名称:(课程1)否是有先修(1/0)://输入1表示有,0表示没有若输入1:请输入先修课程的名称://输入存在的先修课程名称...............(课程n)否是有先修(1/0):请输入先修课程的名称:3.输出形式输出成功:课程表的排序为://输出没有冲突的课表排序输出失败:课程输入错误!教学计划编制失败,请重新输入。

4.测试数据:①.正常的输入输入:输入课程总数:3请输入课程1的名称:小学数学请输入课程2的名称:初中数学请输入课程3的名称:大学数学小学数学是否有先修(1/0):0初中数学是否有先修(1/0):1请输入先修课程的名称:小学数学高中数学是否有先修(1/0):1请输入先修课程的名称:初中数学输出:课程表的排序为:小学数学初中数学高中数学②.正常的输入输入:输入课程总数:4请输入课程1的名称:1请输入课程2的名称:2请输入课程3的名称:3请输入课程4的名称:41是否有先修(1/0):0请输入先修课程的名称:4 2是否有先修(1/0):1请输入先修课程的名称:3 3是否有先修(1/0):1请输入先修课程的名称:4 4是否有先修(1/0):0输出:课程表的排序为:4 1 3 2③.有两个先修课程的情况输入:输入课程总数:4请输入课程1的名称:A 请输入课程2的名称:B 请输入课程3的名称:C 请输入课程4的名称:DA是否有先修(1/0):0B是否有先修(1/0):1请输入先修课程的名称:A C是否有先修(1/0):1请输入先修课程的名称:A D是否有先修(1/0):1请输入先修课程的名称:C输出:课程表的排序为:A B C D④.有三个先修课程的情况输入:输入课程总数:4请输入课程1的名称:A 请输入课程2的名称:B请输入课程3的名称:C请输入课程4的名称:DA是否有先修(1/0):1请输入先修课程的名称:DB是否有先修(1/0):1请输入先修课程的名称:DC是否有先修(1/0):1请输入先修课程的名称:DD是否有先修(1/0):0输出:课程表的排序为:D A B C⑤.所有课程无先修输入:输入课程总数:3请输入课程1的名称:1请输入课程2的名称:2请输入课程3的名称:3A是否有先修(1/0):0B是否有先修(1/0):0C是否有先修(1/0):0输出:课程表的排序为:1 2 3二、概要设计1.抽象数据类型题设要求使用一个有向图表示教学计划,顶点表示某门课程,有向边表示课程之间的先修关系,数据的对象是图中的每一个顶点和有向边。

数据结构课程设计——教学计划编制

数据结构课程设计——教学计划编制

摘要教学计划(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分。

根据一定的教育目的和培养目标制定的教学和教育工作的指导文件。

它决定着教学内容总的方向和总的结构,并对有关学校的教学、教育活动,生产劳动和课外活动校外活动等各方面作出全面安排,具体规定一定学校的学科设置、各门学科的教学顺序、教学时数以及各种活动等。

教学计划、教学大纲和教科书互相联系,共同反映教学内容。

近代以来,特别是在实行学科课程的条件下,教学计划主要是学科的计划,或只是学科表。

随着社会经济和科学技术的新发展,教育结构不断发生变革,现代教育和教学理论主张对教学计划的结构实行改革。

除了教学以外,生产劳动、科技活动、发展体力和增进健康的活动、艺术活动和社会活动等也应列入教学计划。

下面就利用对此进行程序设计,已达到预期的目的。

关键字:数据结构,教学计划编制,抽象数据类型,程序设计1. 需求分析根据课程之间的依赖关系制定课程安排计划,输入课程数及课程之间的关系。

需要利用代码实现排序,以及对各个学期课程安排进行排序并输出。

1.1问题描述大学的每个专业都要制定教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

1.2设计思路首先利用拓扑排序对课程先后顺序进行分析,邻接表位主要存储结构,栈为主要辅助结构,给出课程之间的先后关系比如AOV网,然后进行拓扑排序,但当又向图中存在环时,无法查找该图的一个拓扑排序,当图中的所有顶点全部输出,表示对该图排序成功,实现拓扑排序算法时,相应的建立邻接表存储AOV网,为了避免重复检测入度为零的顶点,建立一个栈来对入度为零的顶点进行存放。

数据结构(C++)课程设计报告--教学计划编制问题

数据结构(C++)课程设计报告--教学计划编制问题

数据结构(C++)课程设计报告--教学计划编制问题上海电力学院数据结构(C++)课程设计题目: 教学计划编制问题*名:***学号:********院系:计算机科学与技术学院专业年级:信息安全2011级2013年07月04日一、设计题目大学的每个专业都要编制教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限都相等。

每个专业开设的课程都是确定的,而且课程的开设时间的安排必须满足先修关系。

每个课程的先修关系都是确定的,可以有任意多门,也可以没有。

每一门课程恰好一个学期。

试在这样的情况下设置一个教学计划编制程序。

在大学的某个专业中选取几个课程作为顶点,通过各门课的先修关系来构建个图,该图用邻接表来存储,邻接表的头结点存储每门课的信息。

本程序的目的是为用户编排课程,根据用户输入的信息来编排出每学期要学的课程。

二、需求分析(一)运行环境(软、硬件环境)设计环境和器材——硬件:计算机软件:Microsoft Visula C++在本课程设计中,系统开发平台为Windows XP或Win 7,程序运行环境为Visual C++ 6.0,程序设计语言为C++。

Visual C++一般分为三个版本:学习版、专业版和企业版,不同版本适合于不同类型的应用开发。

实验中可以使用这三个版本的任意一种,在本课程设计中,以Visual C++ 6.0为编程环境。

Visual C++以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。

比如,它允许用户进行远程调试和单步执行等。

还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。

其编译及建置系统以预编译头文件、最小重建功能及累加链接著称。

这些特征明显缩短程式编辑、编译及链接的时间花费,在大型软件计划上尤其显著。

Visual C++ 6.0秉承Visual C++ 以前版本的优异特性,为用户提供了一套良好的开发环境,主要包括文本编辑器、资源编辑器、工程创建工具和Debugger调试器等等。

数据结构实验 教学计划编制问题(共6篇)

数据结构实验 教学计划编制问题(共6篇)

数据结构实验教学计划编制问题(共6篇)第1篇:数据结构实验报告十—教学计划编制问题问题描述:若用有向网表示教学计划,其中顶点表示某门课程,有向边表示课程之间的先修关系(如果A课程是B课程的先修课程,那么A到B之间有一条有向边从A 指向B)。

试设计一个教学计划编制程序,获取一个不冲突的线性的课程教学流程。

(课程线性排列,每门课上课时其先修课程已经被安排)。

基本要求:(1)输入参数:课程总数,每门课的课程号(固定占3位的字母数字串)和直接先修课的课程号。

(2)若根据输入条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。

一、需求分析:本程序需要基于图的基本操作来实现二、概要设计:抽象数据类型:为实现上述功能需建立一个结点类,线性表类,图类。

算法的基本思想:1、图的构建:建立一个结点类,类的元素有字符型变量用来存储字母,整形变量用来存储位置,该类型的指针,指向下一个元素。

建立一个线性表类,完成线性表的构建。

建立一个图类,完成图的信息的读取,(如有n个点,则建立n个线性表,将每个结点与其指向的结点组成一个线性表,并记录线性表的长度)。

2、Topsort算法:先计算每个点的入度,保存在数组中。

找到第一个入度为0的点,将该点所连的各点的入度减一。

再在这些点中找入度为0 的点。

如果找到,重复上述操作。

如果找不到,则跳出while循环,再搜索其他的点,看入度是否为0。

再重复上述操作,如果所有的入度为0的点都被寻找到,但个数少于输入顶点的个数,说明该图存在环。

程序的流程程序由三个模块组成:输入模块:读入图的信息(顶点和边,用线性表进行存储)。

处理模块:topsort算法。

输出模块:将结果输出。

三、详细设计算法的具体步骤:cla Node{//结点类public: string node; int position; //位置 Node* next; bool visit; //是否被访问Node(){visit=false;next=NULL;position=0;node=‘ ‘;} }; cla Line{ //线性表类 public: int num; Node* head; Node* rear; Node* fence; Line(){num=0;head=fence=rear=new Node();} void insert(int v,string ch){ //插入元素Node* current=new Node();current->node=ch;current->position=v;fence->next=current;fence=current;num++; } }; cla Graph{ //图类 private: int numVertex; int numEdge; Line* line; public: Graph(int v,int e){numVertex=v;numEdge=e;line =new Line[v];} void pushVertex(){ //读入点string ch;for(int i=0;icoutcin>>ch;line[i].head->node=ch;line[i].head->position=i;} } void pushEdge(){ //读入边string ch1,ch2;int pos1,pos2;for(int i=0;i{coutcin>>ch1>>ch2;for(int j=0;jif(line[j].head->node==ch1)pos1=j; //找到该字母对应的位置if(line[j].head->node==ch2){pos2=line[j].head->position;break;}}line[pos1].insert(pos2,ch2);} } void topsort(){ //拓扑排序int i;int *d=new int[numVertex];for(i=0;id[i]=0; //数组初始化for(i=0;iNode* p=line[i].head;while(p->next!=NULL){d[p->next->position]++; //计算每个点的入度 p=p->next;}} int top=-1,m=0,j,k;for(i=0;iif(d[i]==0){d[i]=top; //找到第一个入度为0的点top=i;}while(top!=-1){ j=top; top=d[top];coutnodeNode* p=line[j].head;while(p->next!=NULL){k=p->next->position;d[k]--; //当起点被删除,时后面的点的入度-1if(d[k]==0){d[k]=top;top=k;}p=p->next;}}} coutcout>n>>m; Graph G(n,m); G.pushVertex(); G.pushEdge();G.topsort (); system(“pause”); return 0; }四、调试分析略。

数据结构实验教学计划编制问题

数据结构实验教学计划编制问题

数据结构实验教学计划编制问题随着计算机技术的飞速发展,数据结构在计算机科学领域中扮演着越来越重要的角色。

数据结构是计算机存储、组织数据的方式,它直接影响到程序的效率和性能。

为了培养学生的实际操作能力和理论联系实际的能力,实验教学成为数据结构课程的重要组成部分。

然而,在实验教学计划编制过程中,往往存在一些问题。

本文将对数据结构实验教学计划编制问题进行探讨。

一、实验教学目标不明确1.实验教学目标要具有层次性,既要涵盖基础实验,又要包括综合实验和设计性实验。

2.实验教学目标要具有针对性,针对不同专业、不同年级的学生,制定相应的实验教学目标。

3.实验教学目标要具有实用性,注重培养学生的实际操作能力和解决实际问题的能力。

二、实验内容设置不合理1.实验内容要具有层次性,从简单到复杂,逐步引导学生掌握数据结构的基本知识和技能。

2.实验内容要具有代表性,选取具有典型意义的数据结构和算法进行实验。

3.实验内容要具有实用性,结合现实生活中的实例,让学生了解数据结构在实际应用中的重要性。

4.实验内容要具有一定的拓展性,引导学生探索新的数据结构和算法,培养学生的创新意识。

三、实验教学方法单一在数据结构实验教学过程中,教学方法的选择直接影响到实验教学的效果。

为了提高实验教学效果,教师应采用多种教学方法相结合的方式,如:1.讲授法:在实验前,对学生进行相关理论知识的教学,为学生实验打下基础。

2.演示法:教师通过演示实验,让学生了解实验操作步骤和实验现象。

3.指导法:学生在实验过程中,教师进行现场指导,解答学生遇到的问题。

4.交流法:教师与学生之间、学生与学生之间进行实验心得、经验的交流,提高学生的实验能力。

四、实验评价体系不完善1.实验过程评价:对学生实验过程中的操作步骤、实验态度、问题解决能力等进行评价。

2.实验报告评价:对学生实验报告的完整性、准确性、逻辑性等进行评价。

3.实验成果评价:对学生实验成果的创新性、实用性、拓展性等进行评价。

数据结构实验报告

数据结构实验报告

数据结构实验报告《数据结构》实验教学大纲学时课程总:64 学分:4实验学时:24 实验个数:7 实验学分: 1.5 课程性质:必做适用专业: 计算机科学与技术、软件工程、网络工程教材及参考书:数据结构(C语言版),严蔚敏吴伟民,清华大学出版社,2011年11月;数据结构题集(C语言版)实习题部分,清华大学出版社;数据结构实验教程,王玲刘芳贺春林等,四川大学出版社,2010年10月,大纲执笔人:刘芳大纲审定人:一、实验课的性质与任务计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习编写计算机程序仅仅了解计算机语言是不够的,还必须掌握数据组织、存储和运算的一般方法,这是数据结构课程中学习和研究的内容。

由于数据结构的原理和算法较抽象,而该课程一般在本科低年级开设,对于计算机程序设计知识的初学者,理解和掌握其中的原理就显得较为困难。

《数据结构》实验课程着眼于原理和应用的结合点,使读者学会如何将书上学到的知识用于解决实际问题,培养软件工作需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。

平时练习较偏重于如何编写功能单一的“小”算法,而实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。

此外,还有很重要的一点是:机器是比任何老师更严厉的检查者。

训练的重点在于基本的数据结构,而不是强调面面俱到。

各实习单元与教科书的各章只具有粗略的对应关系,一个实习题常常涉及到几部分教学内容。

二、实验课程目的与要求1. 实验目的根据《数据结构》课程的任务与要求,帮助学生拓宽知识面。

并达到以下教学要求:1) 学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术;掌握各种基本数据结构的逻辑结构和存储结构及相应算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构与程序设计实验实验报告
哈尔滨工程大学
实验报告五
实验课名称:数据结构与程序设计实验
实验名称:教学计划编制
班级:学号:姓名:时间:2016.05.03
一、问题描述
学历进修需要学生在一定的时间内完成一定的课程学习,每一门课有一定的
学分,修满学分,可获取相应的学历。

因为有些课程内容是另一些课程的学习基
础,所以课程学习之间存有一定的先后次序。

如:某学历的计算机专业需要学习的课程及课程之间的关系如表1 所示。

表 1 计算机专业进修课程
课程进修关系图课程编号课程名称学分
C1 程序设计基础 2
C2 离散数学 3
C3 数据结构 4
C4 汇编语言 3
C5 程序设计与分析 2
C6 计算机原理 3
C7 编译原理 4
C8 操作系统 4
C9 高等数学7
C10 线性代数 5
C11 普通物理 2
C12 数值分析 3
C13 软件工程 3
C14 数据库原理 3
本设计的主要任务是根据需要完成的课程的先修关系、每学期开设的课程总
数及总的学习时间,制定出教学计划。

需事先的基本功能如下。

a. 课程进修目录的读入。

b. 课程进修目录的编辑,如课程增加、删除、信息修改等。

c. 满足一定条件的教学计划的输出。

二、数据结构设计
1. 以邻接表存储课程名和学分
#define MAX_VERTEX_NUM 100
typedef struct ArcNode{ //弧结构
int adjvex; //该弧所指向的顶点的位置;
struct ArcNode *nextarc; //指向下一条弧的指针
InfoType *info; //弧的权值指针
}ArcNode; //表结点
typedef struct{ //头节点
VertexType data; //顶点信息
ArcNode *firstarc; //第一个表结点的地址,指向第一条依附该顶点的弧的指针
}VNode, AdjList[MAX_VERTEX_NUM];
typedef struct{
int i;
ArcNode *p;
for(i=0;i<G.vexnum;i++)
indegree[i]=0;
for(i=0;i<G.vexnum;i++){
p=G.vertices[i].firstarc;
while(p){
indegree[p->adjvex]++;
p=p->nextarc;
}
}
}
Status sum(ALGraph G){ //求大学所有课程总学分;
int z=0;
for(int i=0; i < G.vexnum; i++){
z += atoi(G.vertices2[i].data);
}
return z;
}
四、界面设计
输入参数包括:学期总数,一学期的学分上限,课程数,弧的数目,每门课的课程号、学分和直接先修课的关系。

输出各门课程所对应的学分,以及每学期各门课程的安排。

所有输入输出均以提示给出。

五、运行测试与分析
1.输入学期总数,学分上限,课程数,弧的数目
2.输入每门课的课程号,学分,与直接先修课的关系(以弧的形式给出)
3.构造图并输出图的信息
4.按各学期中的学习负担尽量均匀地制定教学计划5.按尽可能短的时间完成学习,制定教学计划
6.当存在回路时输出提示
六、实验收获与思考
通过实际的编程,巩固了图的邻接表存储。

拓扑排序等知识,同时在编程过程中发现了自己的不足,遇到了很多语法错误及逻辑错误,通过不断的调试解决问题,使我对编程有了更加深入的体会和认识。

七、附录(源代码)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <process.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
typedef int Status; // Status是函数的返回类型
typedef int Boolean;
#define MAX_NAME 10 //顶点字符串的最大长度。

相关文档
最新文档