您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2016-教学大纲-《面向对象程序设计实验》
《面向对象程序设计实验》课程教学大纲课程名称课程编号课程类别编制者编制日期面向对象程序设计实验1920085选修车建华2016.02第一次实验:VisualStudio6.0和2008开发环境、C++程序结构熟悉1.学时:2课时;2.实验类型:验证性实验3.实验目的:(1)熟悉VisualStudio6.0和2008两种开发环境;(2)掌握VisualStudio6.0和2008两种开发环境的基本操作命令、相应菜单项和快捷键;(3)了解C++程序的基本结构;(4)掌握C++程序的编辑、编译、调试和运行的方法;4.实验内容:实验题目1:计算器程序开发(1)程序功能简介实现计算器的功能。用户根据程序提示,输入数字,选择要进行的运算,可以进行加、减、乘、除、平方、求模、求方根等运算。(2)程序设计要求①完善计算器程序,可以对实数操作;②完善计算器程序,可以对多个操作数进行基本四则运算;③生成相应可执行程序,并提交实验报告和可执行程序。。(3)程序设计说明①针对加、减、乘、除、平方、求模、求方根操作,每个设计一个函数实现相应功能;②设计一个函数,实现四则混合运算;③设计测试函数。(4)撰写实验报告参考实验报告模板。实验题目2:八皇后问题(1)程序功能简介解决八皇后问题的程序。(2)程序设计要求①增加函数,每输入一组解,暂停屏幕,显示“按任意键继续!”;②完善程序,编程计算八皇后问题共有几种排列方案;③增加输入,显示在第一个皇后确定后,共有几组排列;④生成相应可执行程序,并提交实验报告和可执行程序。(3)程序设计说明①八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是19世纪著名的数学家高斯1850年提出:在8×8格的国际象棋上摆放8个皇后,使其不能相互共计,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?②当指示用户输入第一个皇后的位置时,行列数必须为[0,7]区间内的整数;③只要计算出第一个皇后放在任意相同列0~7行8种位置的排列总数即为八皇后问题的全部排列方案数目。(4)撰写实验报告参考实验报告模板。附加实验题目:(1)输出100以内的所有素数;(2)输入5个字符串,按英文字典排序,由小到大顺序输出;(3)求1~20的阶乘之和。第二次实验:C++新增特性的验证1.学时:2课时;2.实验类型:验证性实验3.实验目的:(1)熟练C++语言相对于C语言新增的主要特性,包括C++语言的输入/输出、名字空间、作用域运算符、引用类型、const修饰符和内联函数以及带默认参数的函数等;(2)了解上述新增特性的内部实现机理;(3)掌握上述新增特性的编程技巧。4.实验内容:实验题目1:new与delete的应用练习(1)程序功能简介从堆内存中获取一个整型数组,赋值后打印出来。(2)程序设计要求①用new来分配数组的内存空间,并有内存空间分配成功与否的检查机制;②用delete来释放数组的内存空间;③数组的大小由用户动态输入。(3)程序设计说明①先编写代码实现用户输入数组的大小;②根据用户输入的数组大小去动态分配内存空间,并加以验证;③打印输出数组内容,并释放数组内存空间。(4)撰写实验报告参考实验报告模板。实验题目2:引用类型的使用(1)程序功能简介编写程序,练习引用类型的各种使用方法。(2)程序设计要求①应用类型变量的简单使用,包括引用类型变量的定义、初始化和使用;②引用类型变量地址的打印输出;③引用类型变量作为函数参数进行述职交换;④返回局部作用域内的变量,函数作为左值。(3)程序设计说明①参考教材例2.5(见P23);②参考教材例2.6(见P24);③参考教材例2.7(见P25)④参考教材例2.9(见P26)。(4)撰写实验报告参考实验报告模板。实验题目3:字符串类和内联函数的使用(1)程序功能简介编写程序,练习字符串类和内联函数的使用方法。(2)程序设计要求①利用字符串类(string)创建对象并进行相关处理;②完成一个函数的内联实现,并与外联实现方式进行对比。(3)程序设计说明①参考教材例2.10(见P28);②参考教材例2.11(见P30)。(4)撰写实验报告参考实验报告模板。第三次实验:利用数组和单链表实现矩阵的处理1.学时:2课时;2.实验类型:设计性实验3.实验目的:(1)复习数组、单链表等数据结构的基础知识;(2)设计矩阵的数组和单链表数据结构,并编程实现;(3)掌握利用数组、单链表实现n×n矩阵的存储、转置、旋转反射、数乘等操作的方法。4.实验内容:实验题目1:矩阵旋转反射和转置(1)程序功能简介根据矩阵处理的数据知识,编程实现矩阵旋转反射和转置程序。(2)程序设计要求①实现n×n矩阵的旋转反射和转置,其中n为用户输入的任意整数;②先采用数组来表示矩阵,再采用单链表来表示矩阵,分别实现两种数据结构下的矩阵旋转反射和转置程序,并比较两种数据结构的程序实现难易程度;③生成相应可执行程序,并提交实验报告和可执行程序。(3)程序设计说明①矩阵旋转反射和转置的数据原理相对简单,主要是解决矩阵的表示,可以采用数组和单链表两种方式;②先采用数组来表示矩阵,实现相应旋转反射和转置程序;③再采用单链表来表示矩阵,相应矩阵的旋转反射和转置操作变得简单,只要按一定的算法改变链表中节点的次序即可。(4)撰写实验报告参考实验报告模板。实验题目2:矩阵的数乘(1)程序功能简介根据矩阵处理的数据知识,编程实现矩阵的数乘程序。(2)程序设计要求①实现n×n矩阵的数乘,其中n为用户输入的任意整数;②先采用数组来表示矩阵,再采用单链表来表示矩阵,分别实现两种数据结构下的矩阵数乘,并比较两种数据结构的程序实现难易程度;③生成相应可执行程序,并提交实验报告和可执行程序。(3)程序设计说明①矩阵数乘的数据原理相对简单,主要是解决矩阵的表示,可以采用数组和单链表两种方式;②先采用数组来表示矩阵,实现相应矩阵数乘程序;③再采用单链表来表示矩阵,相应矩阵的数乘操作变得简单。(4)撰写实验报告参考实验报告模板。第四次实验:类、对象的创建及使用1.学时:2课时;2.实验类型:验证性实验3.实验目的:(1)熟悉类的声明,包括数据成员和成员函数的类型声明;(2)熟悉类的定义,包括数据成员和成员函数的定义、初始化;(3)掌握类的使用方法、对象的创建方式。4.实验内容:实验题目1:类成员的声明和定义形式(1)程序功能简介编程实现一个类的构造函数和析构函数的声明和定义。(2)程序设计要求①注意类的数据成员和成员函数的声明和定义方式;②注意类的数据成员和成员函数的访问权限问题。(3)程序设计说明①在头文件中声明类,在程序文件中定义类的成员函数;②参考教材例3.1(见P42)、例3.2(见P45)、例3.3(见P46)、例3.4(见P48)、例3.5(见P48)。(4)撰写实验报告参考实验报告模板。实验题目2:构造函数和析构函数的声明和定义(1)程序功能简介编程实现一个类的构造函数和析构函数的声明和定义。(2)程序设计要求①练习构造函数、带默认参数的构造函数、默认构造函数、重载构造函数和拷贝构造函数的声明和定义;②练习析构函数的声明和定义以及调用顺序。(3)程序设计说明①参考教材例3.6(见P50)、例3.7(见P51)、例3.8(见P53)、例3.9(见P53)、例3.12(见P58)、例3.13(见P60)、例3.14(见P62);②参考教材例3.15(见P50)、例3.16(见P64)、例3.17(见P65)。(4)撰写实验报告参考实验报告模板。实验题目3:指向类成员的指针(1)程序功能简介编程练习三种指向类成员的指针。(2)程序设计要求①编程练习类外指向类内的指针变量;②编程练习类外指向类内成员函数的指针数据;③编程练习类外指向类内静态成员的指针。(3)程序设计说明①参考教材例3.22(见P74)、例3.23(见P75)。(4)撰写实验报告参考实验报告模板。第五次实验:基于类、对象的程序设计1.学时:2课时;2.实验类型:设计性实验3.实验目的:(1)练习类的声明和定义,包括数据成员、成员函数的声明和定义;(2)练习类的使用方法、对象的创建方式;(3)掌握基于类和对象进行程序设计的关键步骤。4.实验内容:实验题目1:矩阵旋转反射和转置(1)程序功能简介根据矩阵处理的数据知识,编程实现矩阵旋转反射和转置程序。(2)程序设计要求①实现n×n矩阵的旋转反射和转置,其中n为用户输入的任意整数;②先采用数组来表示矩阵,再采用单链表来表示矩阵,分别实现两种数据结构下的矩阵旋转反射和转置程序,并比较两种数据结构的程序实现难易程度;③生成相应可执行程序,并提交实验报告和可执行程序。(3)程序设计说明①矩阵旋转反射和转置的数据原理相对简单,主要是解决矩阵的表示,可以采用数组和单链表两种方式;②先采用数组来表示矩阵,实现相应旋转反射和转置程序;③再采用单链表来表示矩阵,相应矩阵的旋转反射和转置操作变得简单,只要按一定的算法改变链表中节点的次序即可。(4)撰写实验报告参考实验报告模板。实验题目2:矩阵的数乘(1)程序功能简介根据矩阵处理的数据知识,编程实现矩阵的数乘程序。(2)程序设计要求①实现n×n矩阵的数乘,其中n为用户输入的任意整数;②先采用数组来表示矩阵,再采用单链表来表示矩阵,分别实现两种数据结构下的矩阵数乘,并比较两种数据结构的程序实现难易程度;③生成相应可执行程序,并提交实验报告和可执行程序。(3)程序设计说明①矩阵数乘的数据原理相对简单,主要是解决矩阵的表示,可以采用数组和单链表两种方式;②先采用数组来表示矩阵,实现相应矩阵数乘程序;③再采用单链表来表示矩阵,相应矩阵的数乘操作变得简单。(4)撰写实验报告参考实验报告模板。第六次实验:友元机制的练习1.学时:2课时;2.实验类型:验证性实验3.实验目的:(1)了解友元函数、友元成员以及友元类的主要作用;(2)理解友元函数、友元成员以及友元类的机制原理;(3)掌握友元函数、友元成员以及友元类的声明、定义和使用方法。4.实验内容:实验题目1:友元函数的声明、定义和使用(1)程序功能简介编程实现一个类的友元函数的声明、定义和使用代码。(2)程序设计要求①采用声明和定义分开的方式实现一个类的友元函数;②通过调用友元函数,实现对一个类内所有访问权限的成员进行访问,验证友元机制。(3)程序设计说明①参考教材例4.2(见P86)、例4.3(见P86)、例4.4(见P87)。(4)撰写实验报告参考实验报告模板。实验题目2:友元成员和友元类的声明、定义和使用(1)程序功能简介编程实现一个类的友元成员和友元类的声明、定义和使用代码。(2)程序设计要求①采用声明和定义分开的方式实现一个类的友元成员和友元类;②通过调用友元成员以及友元类的对象,实现对一个类内所有访问权限的成员进行访问,验证友元机制。(3)程序设计说明①参考教材例4.5(见P91)、例4.6(见P92)、例4.7(见P93)。(4)撰写实验报告参考实验报告模板。第七次实验:单继承与派生机制验证1.学时:2课时;2.实验类型:验证性实验3.实验目的:(1)熟悉单继承的基本机制,包括派生类的声明方式、基类成员的访问权限、派生类的功能实现等;(2)熟悉派生类的使用方法和对象的创建方式,包括派生类、对象成员、基类三者的对象初始化顺序及构造函数的编写要求,派生类对象的应用等。4.实验内容:实验题目1:类继承方式的验证(1)程序功能简介编程实现一个类的各种继承方式,包括公有继承、保护继承和私有继承以及相应的声明、定义、使用和基类成员访问权限的区别。(2)程序设计要求①编写两个类,一个类作为基类,另一个类作为子类;②公有继承、私有继承和保护继承三种继承方式均验证到。(3)程序设计说明①参考教材例5.1(见P101)、例5.2(见P103)、例5.3(见P104)。(4)撰写实验报告参考实验报告模板。实验题目2:派生类的构造函数和析构函数(1)程序功能简介编程实现派生类和基类的构造函数和析构函数的调用、初始化顺序以及成员覆盖的验证代码。(2)程序设计要求①编写两个
本文标题:2016-教学大纲-《面向对象程序设计实验》
链接地址:https://www.777doc.com/doc-2962806 .html