计算机专业所有实验大纲.docx
《计算机专业所有实验大纲.docx》由会员分享,可在线阅读,更多相关《计算机专业所有实验大纲.docx(183页珍藏版)》请在冰点文库上搜索。
计算机专业所有实验大纲
计算机专业所有实验大纲
实验教学大纲1
《数据结构》实验课教学大纲1
《计算机图形学》实验课教学大纲7
《操作系统原理》实验课教学大纲12
《可视化软件开发环境》实验课教学大纲18
《软件工程》实验课教学大纲26
《高级语言程序设计》实验课大纲33
《数据库原理与应用》实验课教学大纲37
实践教学大纲42
《数据结构课程设计》教学大纲42
《数据库原理与应用课程设计》教学大纲46
《算法分析与设计课程设计》教学大纲50
《软件工程课程设计》教学大纲54
《数字图像处理课程设计》教学大纲58
《计算机图形学课程设计》教学大纲62
《管理信息系统课程设计》教学大纲66
《计算机网络原理课程设计》教学大纲70
《神经网络课程设计》教学大纲74
《C语言程序设计课程设计》教学大纲78
《Web数据库及应用课程设计》教学大纲82
《Matlab程序设计课程设计》教学大纲86
实验教学大纲
《数据结构》实验课教学大纲
一、基本信息
课程代码:
110051
实验课程名称:
数据结构
英文名称:
DataStructures
课程总学时:
72总学分:
3.5实验学时:
18(其中综合性实验6学时)
适用对象:
信息与计算科学专业本科生
二、实验课程的性质与任务
数据结构是一门实践性较强的软件基础课程,它在计算机软件教学中起着承上启下的作用。
通过实验使学生在基本数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计与实现等方面加深对课程的理解,同时在程序设计方法以及上机操作等基本技能和科学作风方面受到较严格的训练。
本实验课多个实验涉及到《高级语言程序设计》、《数据结构》、《离散数学》三门课程的多个章节。
通过该实验让学生巩固本课程所学的知识,培养学生的综合多门课程知识解决实际问题的能力,提高学生的数据抽象和组织能力,进一步熟练掌握面向对象的编程思想与程序设计方法,提高学生思维和提出模型、需求分析与实践编程开发的能力。
三、实验教学目的与要求
(一)、实验的目的与要求:
使学生了解程序设计中数据结构的特性,学会在应用中,根据现实世界中的问题选择适当的数据逻辑结构和存储结构以及相应算法,并且培养基本的、良好的程序设计技能。
要求:
学生在实验前做好预习,实验时教师先讲述实验内容、介绍程序设计原理和基本思路,学生在教师指导下自己操作完成实验。
实验完毕由教师验收合格后方可离开,并写好实验报告。
(二)、实验的测评要求
1、所要提交的材料要求:
要求提交电子文档与纸质材料。
电子文档包括两部分,一部分是建立程序的工作文件夹(仅将*.obj删除,留下其余文件)。
另一部分电子文档是实验设计报告,实验报告书封面和正文格式要符合仲恺农业技术学院课程设计、实习报告书封面与正文标准格式要求,实验报告内容包含:
实验题目、实验的目的与要求、实验内容所涵盖的章节知识、需求分析(要有详细的模板划分及功能说明,即做什么,要求用建模图例,可用visio或uml等工具绘制)、概要设计(如何做,要求图例)、详细设计、调试分析、测试结果、附录和设计心得体会等。
并将该部分电子文档打印成纸质材料提交。
全部文档提交时间:
期未放假后一周之内,如没有在规定的时间内提交符合要求的材料,则无论卷面分再高,总评也一律不通过。
2、源程序要求:
一定要按平时上课时的要求,否则退回重做。
(三)、实验分组与实验场地要求
原则上实验每组人数不得超过2人,如果要求的课时内不能如期完成,则要求学生课外自行完成,不得另外占用课时。
欢迎学生个人独立完成,同时也欢迎学生提前提交汇报材料进行测评。
四、实验项目、内容提要与要求
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
1
复数类的定义和实现
基本
操作
3
信
息
与
计
算
科
学
本科生
1.掌握使用VisualC++6.0建立新工程、添加新类、上机调试程序的基本方法。
2.复习C++的模版、类定义,类实现的方法。
3.熟悉C++的编程规范,养成良好的编程风格。
1
【实验1.1】在VC6开发环境中建立一个名为ComplexTest的Win32ConsoleApplication类型的工程。
在工程中添加新类,类名为Complex。
【实验1.2】试用C++的类声明定义“复数”的抽象数据类型。
要求
(1)用模版类型(不要局限于float,或者double类型)定义它的实部和虚部成员。
(2)实现构造函数:
缺省的构造函数没有参数;第二个构造函数将构造参数给复数的实部,虚部置为0;第三个构造函数将两个参数分别赋给复数的实部和虚部。
(3)定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。
(4)定义重载的流函数来输出一个复数。
【实验1.3】在main函数中,对复数类的构造函数,存取实部虚部,四则运算设计测试代码。
要求实现每个操作结果的屏幕打印输出。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
2
顺序表的操作
验证性
3
信
息
与
计
算
科
学
本科生
1.掌握顺序表类的声明和实现的方法,能设计一些简单的测例。
2.学习在数据结构中自动调整存储空间的函数(ReSize)设计方法。
3.熟悉C++的编程规范,养成良好的编程风格。
1
【实验1.1】在VC6开发环境中建立一个名为SeqListTest的Win32ConsoleApplication类型的工程。
在工程中添加新类,类名为SeqList,参照教材(教材P43-45)输入类代码(注意按照规范),并调试通过。
【实验1.2】在main函数中添加对Find、Insert、Remove等操作的测试代码。
测试结果由屏幕打印输出,截图粘贴到实验报告中。
【实验1.3】针对插入元素超出顺序表空间大小的问题,设计一个内存空间管理函数,实现功能:
(1)能够实现按自动空间大小重新分配内存。
(2)将原有元素拷贝到新空间内。
(3)释放原有内存空间。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
3
稀疏矩阵(三元组表)
验证性、基本操作
3
信
息
与
计
算
科
学
本科生
1.理解采用三元组表存储结构表示的稀疏矩阵的方法。
2.掌握稀疏矩阵类的声明和主要操作:
构造、转置、加法运算、乘法运算。
3.熟悉C++的编程规范,养成良好的编程风格。
1
【实验1.1】在VC6开发环境中建立一个名为SparseMatrixTest的Win32ConsoleApplication类型的工程。
在工程中添加两个新类,类名为SparseMatrix、Triptule,类代码可参照本指导书中的附录。
【实验1.2】在SparseMatrix类中设计一个加法函数,实现稀疏矩阵的加法功能,接口如附录中的。
【实验1.3】在main函数中添加对转置、加法、乘法等操作的测试代码。
测试结果由屏幕打印输出,截图粘贴到实验报告中。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
4
单链表(带头节点)
验证性、基本操作
3
信
息
与
计
算
科
学
本科生
1.理解以复合类方式定义单链表类(带头节点,类名为LinkList)的方法。
2.掌握单链表类的声明和主要操作:
构造、插入,删除、查找;
3.熟悉C++的编程规范,养成良好的编程风格。
了解VC环境下内存泄露检测方法。
1
【实验1.1】在VC6开发环境中建立一个名为ListTest的Win32ConsoleApplication类型的工程。
在工程中添加两个新类,类名为LinkList、LinkNode,类声明代码可参照本指导书中的附录。
【实验1.2】参照附录中LinkList、LinkNode类声明,实现其对应的所有类方法实现代码,可参考教材P77-78。
【实验1.3】在ListTest.cpp文件中输入对LinkList类的测试代码,(可参考附录中的main函数)。
测试结果由屏幕打印输出,截图粘贴到实验报告中。
【实验1.4】拷贝附录中的debug_new.cpp为一个cpp文件,复制到本工程目录,并在开发环境的FileView中添加为项目文件。
该文件包含了用于检测内存泄漏问题代码。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
5
栈及其应用*
验证性
3
信
息
与
计
算
科
学
本科生
1.理解栈的LIFO操作特点。
2.掌握采用顺序存储结构的栈类的声明和实现之方法。
3.了解栈类在括号检查方面的应用。
1
【实验1.1】在VC6开发环境中建立一个名为StackTest的Win32ConsoleApplication类型的工程。
在工程中添加新类,类名为Stack,类代码可参照教材P104-105。
调试通过。
【实验1.2】编写一个Complier(编译器)类,类声明如附录所示,要求在类中实现一个括号匹配检查算法,算法思想如下:
检查一个算术表达式中使用的括号是否正确,应从下面两个方面考虑:
(1)左右括号的数目应该相等;
(2)每一个左括号都一定有一个右括号与之匹配。
括号作用域检查的原则是,对表达式从左到右扫描。
当遇到左括号时,左括号入栈;当遇到右括号时,首先将栈顶元素弹出栈,再比较弹出元素是否与右括号匹配,若匹配,则操作继续;否则,查出错误,并停止操作。
当表达式全部扫描完毕,若栈为空,说明括号作用域嵌套正确,反之,说明表达式有错误。
【实验1.3】写出算法后,写出测试代码,对表达式:
8-((x*((x+y)/(i-4))+y)/5-2)作括号匹配检查。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
6
*递归程序(选做)
验证性
3
信
息
与
计
算
科
学
本科生
1.理解递归的概念。
2.掌握采用递归过程解决递归问题的方法。
1
【实验1.1】在VC6开发环境中建立一个名为RecurveTest的Win32ConsoleApplication类型的工程。
在工程中添加新类,类名为RecurveArray,类代码可参照附录。
调试通过。
【实验1.2】阅读指导书附录中MaxKey函数,用递归算法实现类中的Sum,Average函数。
【实验1.3】编写测试代码,对1.2中的函数做测试。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
7
二叉树类
综
合
性
实
验
6
信息与计算科学本科生
1.理解二叉链表构造二叉树类的方法。
2.理解二叉链表存储结构下,前序、中序、后序、层序遍历二叉树的算法。
3.掌握采用递归解决二叉树相关算法的方法。
4.复习巩固高级语言程序设计课程内容中类、模板、函数、递归等知识点;
5.复习巩固《离散数学》课程中树的相关知识。
1
【实验1.1】在VC6开发环境中建立一个名为BinaryTreeTest的Win32ConsoleApplication类型的工程。
在工程中添加新类,类名为BinaryTree、BinTreeNode类,代码可参照附录。
调试通过。
【实验1.2】阅读指导书附录BinaryTree类中InOrder、PreOrder函数。
以及从屏幕输入数据给树、树节点输出到屏幕的函数。
并在main中写出测试代码。
【实验1.3】用递归算法实现类中的Exchange函数(接口如附录所示),函数功能:
交换每个结点的左子女和右子女。
在main中写出测试代码。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
8
图(选做)
基本
操作
3
信
息
与
计
算
科
学
本科生
熟悉图的两种常用的存储结构,以及在这两种存储结构上的两种遍历图的方法,即深度优先遍历和广度优先遍历。
进一步掌握递归算法的设计方法。
关于各种典型著名的复杂算法,在上机实习方面不做基本要求。
更适合于安排大型课程设计。
1
1.阅读理解指导书上第一个关于图的邻接矩阵的程序,做下列题目。
(1)根据指导书中的G2图(无向图),输入数据运行程序。
(2)再适当修改上述程序,使它适用于G1图(有向图),输入数据运行程序。
(3)继续修改程序使之可以表示存储以下网(边上带权值的图)。
2.调试运行上面第二个程序,即图的邻接链表存储的程序。
解决下列问题。
(1)根据指导书的G2图(无向图),输入数据运行程序。
(2)再适当修改程序使它适用于G1图(有向图),输入数据运行程序。
提示:
有向图的邻接链表分为正邻接链表和逆邻接链表。
3.设计一个程序,建立图的邻接矩阵,并且进行图的深度优先遍历。
结合第2题的图运行调试程序。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
五、
考核办法和成绩评定标准
占该课程最后期末总评成绩的25%。
但如果没有提交综合性实验的汇报材料,则该课程最后期未总评一律不予通过。
六、实验指导书
自编实验指导书
七、其他说明
无
大纲修订人:
吴东庆修订日期:
2007-6-6
大纲审定人:
胡小健审定日期:
2007-6-16
《计算机图形学》实验课教学大纲
一、基本信息
课程代码:
110053
实验课程名称:
计算机图形学
英文名称:
ComputerGraphics
课程总学时:
72总学分:
3.5实验学时:
20(综合性实验5学时)
适用对象:
信息与计算科学专业本科生
二、实验课程的性质与任务
本实验课是《计算机图形学》课程教学中一个必不可少的实践环节。
通过实验,使学生理解计算机处理图形的过程,并利用综合图形环境开发有关计算机图形设计应用软件,从而适应信息社会的飞速发展,达到新时期对大学生综合素质的要求。
本实验课涉及到《高级语言程序设计》、《计算机图形学》、《高等代数》三门课程的多个章节。
例如《高级语言程序设计》中程序设计的循环结构,判断结构,函数和类的编写;《计算机图形学》课程中图形变换、OpenGL类库的使用;《高等代数》课程中矩阵乘法运算规则等。
通过该实验让学生巩固本课程的知识,培养学生的综合多门课程知识解决问题的能力,进一步熟练掌握面向对象的编程思想与程序设计方法,提高学生图形相关编程的能力。
本实验课用C++(或C)结合OpenGL图形库进行。
三、实验教学目的与要求
(一)、实验的目的与要求:
主要目的是使学生在学习理论知识的同时,能够通过上机实践,要验证、巩固和补充课堂讲授的计算机图形学理论知识。
培养学生初步具备算法设计、分析和动手调试实际算法的能力,为实际工作打下基础。
要求:
学生在实验前做好预习,实验时教师先讲述实验内容、介绍程序设计原理和基本思路,学生在教师指导下自己操作完成实验。
实验完毕由教师验收合格后方可离开,并写好实验报告。
(二)、实验的测评要求
1、所要提交的材料要求:
要求提交电子文档与纸质材料。
电子文档包括两部分,一部分是建立程序的工作文件夹(仅将*.obj删除,留下其余文件)。
另一部分电子文档是实验设计报告,实验报告书封面和正文格式要符合仲恺农业技术学院课程设计、实习报告书封面与正文标准格式要求,实验报告内容包含:
实验题目、实验的目的与要求、实验内容所涵盖的章节知识、需求分析(要有详细的模板划分及功能说明,即做什么,要求用建模图例,可用visio或uml等工具绘制)、概要设计(如何做,要求图例)、详细设计、调试分析、测试结果、附录和设计心得体会等。
并将该部分电子文档打印成纸质材料提交。
文档提交时间:
完成实验后一周之内,如没有在规定的时间内提交符合要求的材料,则无论卷面分再高,总评也一律不通过。
2、源程序要求:
一定要按平时上课时的要求,否则退回重做。
(三)、实验分组与实验场地要求
原则上每组人数不得超过2人,如果要求的课时内不能如期完成,则要求学生课外自行完成,不得另外占用课时。
欢迎学生申请个人独立完成,同时也欢迎学生提前提交汇报材料进行测评。
四、实验项目、内容提要与要求
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
1
OPEN
G库的安装与程序基本框架
基本
操作
3
信息与计算科学专业本科生
1.掌握OpenGL库安装的基本方法。
2.掌握OpenGL中绘制基本图元(点,线,面等)的方法。
1
【实验1.1】1.将安装压缩包“OpenGLglut库.rar”解开,复制glut32.dll到…/windows/system文件夹下,复制glut32.lib到/…vc98/lib文件夹下,复制glut.h到…/vc98/include文件夹下。
2、打开vc,新建工程win32consoleapplication,工程名称起为“test1”模式选择“hello,word”。
【实验1.2】在test1文件中输入如下代码(见指导书),编译通过运行。
尝试修改其中至少3处参数,观察屏幕截图的变化。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
2
画线算法
基本操作
3
信息与计算科学专业本科生
1、掌握中点画线算法。
2、掌握Bresenham画线算法。
1
1、建立一个名为DrawLineTest的控制台类型的工程,在DrawLineTest.cpp中添加如下代码(见指导书);
2、在工程中添加一个类,命名为MyGraphicsLib。
类中添加两个画线函数。
到
场
指
示
性
指
导
不
给
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不
能
过
序
号
实
验
名
称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
3
Hermite插值样条曲线
基本操作
3
信息与计算科学专业本科生
1.掌握根据几何约束条件生成Hermite插值样条曲线的算法。
2.掌握OpenGL下绘制曲线的方法。
1
1、在实验二的OpenGL框架下(即保留主文件中main、MyDisplay函数)添加一个HermiteSpline类,声明见指导书:
要求实现Draw函数。
提示:
可参考教材P91页公式4-37。
2、在工程中添加一个Point2F类(见指导书)。
3、在MyDisplay中编写测试代码(见指导书)。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
4
OpenGL图形变换
基本操作
3
信息与计算科学专业本科生
1、掌握二维图形的基本几何变换,如平移、旋转、缩放。
2、掌握OpenGL中模型变换函数。
1
1、在实验二的OpenGL框架下(即保留主文件中main、MyDisplay函数),编写新的MyDisplay函数。
参考代码见附录。
2、利用平移、旋转等操作,实现对图中的四边形做图形变换:
画出以直线2x+2y=1为对称轴的镜像图形。
到
场
指
示
性
指
导
不
给
出
解
决
方
案
不
得
拷
贝
他
人
材
料
否
则
不能通过
序
号
实
验
名称
实
验
类
型
实
验
时
数
实
验
者
类
别
实
验
目
的
每
组
人
数
实验内容提要
教
学
方
法
教
学
要
求
备
注
5
3D图形变换
验证性
3
信息与计算科学专业本科生
1、掌握三维图形的基本几何变换,如平移、旋转、缩放。
2、掌握OpenGL中透视投影生成真实感图形的方法。
1
1、输入指导书附录中的代码,并调试通过。
2、修改gluLookat,gluPerspective函数的参数,观察投影结果。
3、对模型做旋转、平移、缩放变换。
到场
指示
指导
不给
出解
决方
案
不得
拷贝
他人
材料
否则
不能
能过
6
裁剪算法
综合性
5
信息与计算科学专业本科生
1、理解并掌握二维线段的cohen-sutherland裁剪算法;
2、复习《C++语言程序设计》课程中的类、函数、循环结构、判断结构的语法等内容。
3、掌握解析几何中,任意两条线段求交点的算法;4、初步了解图形系统中图形类的构造方法。
1
1、在实验2框架下建立一个名为ClipTest的win32工程。
2、工程中添加实验3中的Point2f类,新建Line类、Window类。
参考源码见附录。
要求调试通过。
3、完成Line类中的Draw函数和Window类中的裁剪函数Clip、编码函数GetCode、绘图函数D