数据结构实验大纲

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

《数据结构实验》课程实验教学大纲

一、课程基本信息

课程名称:数据结构实验

英文名称: Data Structure

课程编码: 11111012B/1112112B

课程性质: 独立设课

课程类别:专业必修课程

课程总学时: 14

课程总学分: 1

适用专业:计算机科学与技术/网络工程方向

先修课程:高级语言程序设计,离散数学,概率论与数理统计

开课系部: 计算机科学与技术系

二、实验课程的目的与要求

这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过学习,要求学生能够掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。通过实验课程更好的训练学生算法分析及算法设计的能力。

三、主要仪器设备与实验基本要求

硬件要求:微型计算机一台(Pentium或以上)

软件要求:Windows操作系统,Turbo C 或VC++6.0等

实验要求:

1.上机前要作好充分准备,根据实验题目编写好源程序。

2.对上机操作过程中可能出现的问题预先分析,确定调试步骤和测试方法,对运行结果如何分析等。

3.上机实验完成后,认真写出实验报告,对上机中出现的问题进行分析、总结。

4.上机过程中要遵守实验室的各项规章制度,爱护实验设备,服从指导老师安排。

5.本课程的实验过程中,不得进行游戏、上网等操作。

四、实验项目名称和课内学时分配

注:设计性和综合性实验如课内学时不够,学生可利用开放实验室利用课余时间完成本次实验内容。

五、实验内容及要求

实验项目一

实验项目名称:简单算法实验

实验项目的目的和要求:

1.复习C语言指针的用法

2.复习C语言结构体的用法

3.理解时间复杂度分析的基本方法

上机实验内容:

1.用指针方式编写程序:从键盘输入N个整型数据,并存入数组,要求将N个数中最大的数与第一个数交换;将其中最小的数最后一个数交换。

2.有N 个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。要求从键盘依次输入N 个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分数,并将N 个学生的数据输出。

说明:不占课内学时

实验项目二

实验项目名称:线性表的基本操作

实验项目的和要求:

1.掌握线性表的特点

2.掌握线性表的顺序存储结构和链式存储结构的基本运算。

3.尽可能考虑算法的健壮性

4.实验报告中要写出测试数据、错误分析以及收获。

上机实验内容一:线性表两种存储结构的基本运算

1.用结构体类型描述线性表的两种存储结构

2.完成课堂上所讲的两种存储结构的基本运算

3.要求用二级菜单实现

*****************************

* 1-------顺序表 *

* 2-------链表 *

* 0-------退出 *

*****************************

请输入的选择:(0-2):

线性表的链式存储

##############################

# 1----前插建立链表#

# 2----后插建立链表 #

# 3----访问第i个元素 #

# 4----插入 #

# 5----删除 #

# 6----求线性表的表长 #

# 0----退出 #

##############################

请输入选择(0-6):

上机实验内容二:超市密码存储箱系统的设计与实现

1.顾客使用箱子的流程为“投一元硬币”--------“找到一个空箱子,同时产生密码”(系统完成)--------“打印密码,打开箱子”(系统完成)--------“取密码纸存包,并关闭箱子,入超市购物”--------“购物结束”--------“输入密码”--------“找到对应箱子并打开”(系统完成)--------“取包”。

2.现要求设计程序模拟以上系统完成的功能

①界面:在我们的模拟系统中,箱子在屏幕上被画出来,并编号,空箱为蓝色,被使用时变成红色,再变为空后则恢复蓝色;

②通过按“1”键模拟顾客投币;

③当空箱子被顾客申请得到的同时,系统自动生成6位数密码,此密码不能与正在被使用的任何一个箱子的密码相同。

3.设计分析

在设计时,可利用链表来组织所有的箱子,所有的箱子以结点的形式表示,结点中存

放箱号、密码(满箱有,空箱无)以及指向下一个结点的指针。空箱结点放在一个链表1中,满箱结点放在另一个链表2中。

若有顾客投币(这里按下“1”键模拟),查看链表1是否为空,若为空,则显示“箱满,请稍侯!”,若非空,则取出一个结点,随机产生一个六位数密码,并将些密码和链表2中所有结点的密码相比较,若有重复,则再随机产生一个新密码,直到无重复;将密码信息写入此结点,并将其插入链表2;将此箱的颜色改为红色。

4.密码箱的存储结构类型定义

typedef struct node

{ int num;/*箱子的号码*/

int password;/*箱子的密码(满箱有,空箱无)*/

struct node *next;/*指向下个结点的指针*/

}Node,*LinkList;

上机实验内容三:员工通讯录管理系统

1.为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。

2.现要求设计程序模拟以上系统完成的功能

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

3.设计分析

在本设计中,整个通讯录可以采用顺序表或链表方式存储。采用前者,可以提高查询速度;采用后者,可以提高插入与删除记录的效率。

4.员工通讯信息的结构类型定义和通讯录链表的结点类型

typedef struct

{ char num[5];/*员工编号*/

char name[8];/*员工姓名*/

char phone[9];/*办公室电话号码*/

char call[12];/*手机号码*/

}DataType;/*员工通讯信息的结构类型*/

typedef struct node

{ DataType data;/*结点的数据域*/

struct node *next;/*结点的指针域*/

}ListNode,*LinkList;/*通讯录链表的结构类型*/

上机实验内容四:运动会记分子系统或学生成绩管理子系统

1.参加运动会的N个学校编号为1~N。比赛分成M个男子项目和W个女子项目,每

相关文档
最新文档