面向对象程序设计实验项目

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

实验一 C++面向过程练习(一) (2学时) ✧ 实验目的和要求:

1.

掌握C ++程序的基本格式与规范,学会编写简单的C ++程序。 2.

理解C ++程序的结构和特点。 3.

熟悉C ++程序基本的输入和输出操作。 4.

掌握C ++数据类型、常量和变量以及修饰符的使用方法。 5.

掌握C ++的各种流程控制语句的使用。 6. 熟悉C ++语言实验环境,能够在VC6.0或BC3.0的环境下调试与运行程序。 ✧ 实验内容:

1. 求解方程02=++c bx ax 在复数域上的解,a,b,c 由终端输入。注意分析的全面性。

2. 用!1!21!111n e ++++≈ ,求e 之值,直到610!

1-

实验二 C++面向过程练习(二)(2学时)

✧ 实验目的和要求:

1. 掌握一维数组、二维数组的定义与使用。

2. 掌握函数定义、函数调用和函数说明的方法。

3. 掌握函数递归调用的概念和使用方法。

✧ 实验内容:

1. 编程求若干个整数中的最大和次大,最小和次小这四个数。

2. 由键盘输入两个整数,试编写两个函数分别求出这两个数的最大公约数和最小公倍数。

3. 编写一个递归函数void reverse(int a[],int n),将数组a 中的数倒置。如a 数组原来为:1 2 3 4 5,则调用reverse 函数后,a 数组内容变为:5 4 3 2 1。

实验三 C++在非面向对象方面的扩充(2学时) ✧ 实验目的和要求:

1.

掌握函数重载的方法及定义重载函数时的注意事项。 2.

掌握函数缺省参数的使用。 3.

掌握指针的定义及使用方法,理解void 型指针。 4.

理解动态内存分配意义,掌握new 和 delete 使用方法。 5.

掌握引用的声明方法及使用。 6.

掌握const 修饰符及其内联函数的使用。 7.

熟悉C++在非面向对象方面的其他扩充特性。

✧实验内容:

1.编写10个重载函数max,分别求两个整数、实数、双精度数、字符、字符串及三

个整数、单精度数、双精度数、字符、字符串中的最大数。

2.编写函数void add1(int sum),void add2(int * sum),void add3(int & sum),功

能如下:输入若干个整数,以0结束,并用参数sum返回这若干个整数之和。在

主程序中分别调用这三个函数,观察结果,总结值传递和地址传递的规律。

3.矩阵中填数:当给出N*N 的矩阵,要求用程序填入下列形式的数:

(1)S形填数,例如N=5 (2)回转填数,例如N=5

要求:用new和delete动态分配空间(提示:可用一维数组来表示二维数组)。

实验四类与对象(一)(4学时)

✧实验目的和要求:

1.掌握类、类的数据成员、类的成员函数的定义方式。

2.理解类成员的访问控制方式。

3.掌握对象的定义和操作对象的方法。

4.理解和掌握构造函数、析构函数、拷贝构造函数的定义与执行过程。

5.掌握重载构造函数的方法。

6.理解浅拷贝与深拷贝。

7.了解对象的生存期。

✧实验内容:

1.设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),要求:

(1)Circle 类基本信息:圆心坐标、半径;

Rectangle 类基本信息:长、宽;

Triangle 类基本信息:三个顶点坐标;

其中:成员变量为private 属性,成员函数为public 属性。

(2)为Circle类设计缺省的构造函数,并用init成员函数进行数据成员的初始化。

(3)为其余两个类设计多个构造函数:无参、带参、参数值缺省的构造函数。

(4)每个图形类有计算图形的面积GetArea(),计算图形的周长GetPerimeter(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。以Circle 类

为例:通过GetArea()计算圆的面积,GetPerimeter()计算圆的周长,Show()函

数中显示圆心坐标、直径、周长、面积等基本信息;Set(int x,int y, int r)函数可

以修改圆心坐标和半径。

(5)注意多个构造函数的声明方式与定义的实现。

(6)当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三

角形),提示用户输入错误。

2.一维数组是应用极为广泛的数据结构,但是C++语言的数组没有下标越界检查,因

而极易出错。请定义一个安全的一维整型数组类intArray,要求:

(1)基本信息:存储数据的基址指针,数组的大小,均定义为private属性。

(2)定义构造函数、析构函数、拷贝构造函数。

(3)定义以下成员函数:

int GetSize();返回数组的大小,即数组的元素个数。

int GetAt(int nIndex) ;获得nIndex索引位置上的数组元素值。

void SetAt(int nIndex , int newElement);向nIndex位置设定新的newElement值。

(4)使用intArray类实现一个冒泡排序程序。

实验五类与对象(二)(4学时)

✧实验目的和要求:

1.掌握对象数组的定义与使用方法。

2.理解对象指针的概念,学会用指针引用对象。

3.理解this指针的工作方式。

4.掌握静态数据成员和静态成员函数的基本使用方法。

5.理解友元与友元函数的作用,掌握其使用方法。

6.掌握对象成员及其常类型的使用方法。

7.学会使用C++的多文件方式编写程序。

✧实验内容:

1.设计一个Student(学生)类,并使Student类具有以下特点:

(1)该类具有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩。

(2)学生全部信息由键盘输入,以提高程序的适应性。

(3)通过成员函数分别统计每个学生的平均成绩和每门课程的平均成绩,当课程数量增加或减少时成员函数无需修改仍可求取平均成绩。

(4)输出学生的各科成绩与平均成绩。

(5)学生对象的定义采用对象数组实现。

(6)统计不及格学生人数。

(7)表格输出整齐美观。

(8)能以最方便的方式实现对课程数量和学生人数的修改。

(9)采用多文件方式组织程序。

实验六继承与派生类(4学时)

✧实验目的和要求:

1.理解类的继承的概念,能够定义和使用类的继承关系。

2.掌握派生类的声明与定义方法。

3.熟悉三种派生方式的访问特性。

4.掌握多基继承,理解和掌握虚基类。

5.理解赋值兼容规则。

相关文档
最新文档