面向对象程序设计实验大纲

更新时间:2024-05-29 20:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大学课程《面向对象程序设计》实验大纲

一、实验课的性质与任务

面向对象程序设计是通信工程专业的一门重要基础课程,主要任务是让学生充分掌握面向对象程序设计的基本概念、各种数据类型的使用技巧、程序设计的思想和方法。

二、实验课程目的与要求

1. 实验目的

通过面向对象程序设计上机实验加深对讲授内容的理解,尤其是一些语法规则、常用语句、程序结构等。熟悉面向对象程序设计的程序开发环境,并能逐步实现用面向对象的程序设计思想独立编程能力。学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。

2. 实验要求

(1)掌握C++语言有关基本概念。

(2)掌握C++语言的基本语法和基本语句。 (3)掌握C++语言的程序编写方法. (4)提高程序调试能力。

三、实验项目及内容提要 面向对象程序设计实验课程 (课程编号0706842002) 实验序项编号 号 目实验类型 学时 必做 学基选分本验综设做 数 操证 合 计 作 实验名称 内容提要 1 基本输入输出实验 2 √ 理解变量与常量的含义;掌握浮点型变量的定义和使用方法;掌握符号常量的定义和使用方法;学习使用基本算术运算符;熟悉C++语言√ 的基本输入输出方法;掌握字符型变量和整型变量的定义和使用方法;了解字符型数据的ASCII码存储方式;学习C++语言的输入输出方法。 √ 2 基本控制结构实验 2 √ 熟悉C++语言的基本输入输出方法;理解程序中控制表达式的作用;掌握C++语言关系运算符与关系表达式的使用方法;熟悉C++语言分支语句if-else的使用方法;理解循环的概念;掌握while循环语句和for循环语句;学习使用循环的嵌套;学会运用循环与分支的嵌套;进一步熟悉关系运算符和逻辑运算符。 理解函数的意义;掌握函数的定义方法;掌握函数的声明形式;掌握函数的调用形式;理解形参和实参的值传递关系;学习√ 函数返回值的使用方法;理解函数重载的意义;掌握重载函数的声明、定义与调用方法;进一步理解函数形参和实参的值传递关系。 理解类与对象的概念;掌握类的声明和定义方法;掌握对象的定义和使用方法;掌握带参数的构造函数√ 的定义和使用;掌握静态数据成员和静态成员函数的定义和使用方法;理解类与对象之间的关系;理解3 函数实验 2 √ 4 类与对象实验 4 √ 类的组合的概念和使用方法;学会定义并使用带参数的构造函数和不带参数的默认构造函数;掌握组合类构造函数和析构函数的定义、实现和调用顺序。 理解运算符重载的概念和意义;掌握重载运算符为成员函数的方法;学习使用并√ 重载运算符函数,注意其参数和返回值的类型;掌握重载运算符函数的调用方法。 5 运算符重载实验 2 √ 6 继承实验 2 √ 理解继承与派生的概念;学习定义和使用派生类;了解不同继承方式下对基类成员的访问权限;掌握派生类构造函数和析构函数的定义和使用方法;理解派生类构造函数和析构函数的执行顺序;理解单继√ 承和多继承的概念;掌握类层次中构造函数的定义方式和建立对象时构造和析构顺序;掌握重载构造函数,能够在不同情况下完成数据成员初始化的任务;能够根据问题建立合理的类层次关系。 √ 7 虚函数实2 √ 理解多态与虚函数的概念;学习使验 用虚函数实现动态多态性;掌握虚函数和纯虚函数的定义与使用方法;掌握抽象类及其派生类中虚函数的声明和定义方法。 理解数组的概念;掌握一维数组的定义方法;掌握一维数组元素的输入和输出方法;理解一维数组中元素的存储方式;√ 理解字符串的概念;理解字符串与字符数组的关系;掌握字符串的输入、输出方法;掌握基本字符串处理函数的使用方法。 理解指针与引用的概念;掌握指针和引用的声明和使用方法;学习使用指针作为函数参数;学习使用引用作为函数参数;学习使用指针访问数组元素;理解使用指针和引用作为√ 函数参数的区别;理解函数指针的概念;掌握指向函数的指针声明和使用;学习用指向函数的指针作为函数的参数,从而选择执行不同的函数;进一步熟悉指针的使用方法。 理解容器类和线性容器类的概念;掌握√ 容器类的声明和使用方法;能够根据栈的定义实现栈类;学8 数组实验 2 √ 9 指针与引用实验 2 √ 10 容器类实验 2 √ 习使用栈解决实际问题。 类模板实验 理解函数模板与类模板的含义;掌握类√ 模板的定义和使用方法。 11 2 √ 四、实验内容安排:

实验一 基本输入输出实验 ( 设计性实验 2学时)

实验题目1 1、 目的要求:

1) 理解变量与常量的含义;

2) 掌握浮点型变量的定义和使用方法; 3) 掌握符号常量的定义和使用方法; 4) 学习使用基本算术运算符;

5) 熟悉C++语言的基本输入输出方法。 2、实验内容:

输入一个球的半径r,计算其体积V。 3、实验步骤:

1) 定义符号常量PI;

2) 定义球的半径r为double类型变量; 3) 用cin进行输入;

4) 根据公式计算球的体积; 5) 用cout进行输出。 4、主要实验仪器设备: 计算机 实验题目2 1、目的要求:

1) 掌握字符型变量和整型变量的定义和使用方法; 2) 了解字符型数据的ASCII码存储方式; 3) 学习C++语言的输入输出方法。 2、实验内容:

从键盘输入一个字母,输出其ASCII码。 3、实验步骤:

1) 定义变量ch为char类型变量; 2) 定义变量i为int类型变量; 3) 用cin输入ch值;

4) 将ch的ASCII码给整型变量i赋值; 5) 用cout输出i的值。 4、主要实验仪器设备: 计算机

实验二 基本控制结构实验

(设计性实验 2学时)

实验题目1 1、 目的要求:

1) 熟悉C++语言的基本输入输出方法; 2) 理解程序中控制表达式的作用;

3) 掌握C++语言关系运算符与关系表达式的使用方法; 4) 熟悉C++语言分支语句if-else的使用方法。 2、实验内容: 求三个整数的最大值和最小值。 3、实验步骤:

1) 定义三个整型变量x1、x2、x3,并通过cin输入变量;

2) 用if-else语句对三个整数进行比较,求出最大值和最小值;

3) 用cout显示计算结果。 4、主要实验仪器设备: 计算机 实验题目2 1、 目的要求:

1) 理解循环的概念;

2) 掌握while循环语句和for循环语句; 3) 学习使用循环的嵌套;

4) 学会运用循环与分支的嵌套;

5) 进一步熟悉关系运算符和逻辑运算符。 2、实验内容:

判断用户输入正整数n是否为素数(n<1000),直到用户输入1为止。 3、实验步骤:

1) 用while循环读入正整数n;

2) 对每个正整数n,采用for循环判断是否为素数; 3) 输出判断结果。 4、主要实验仪器设备: 计算机

实验三 函数实验

(设计性实验 2学时)

实验题目1 1、 目的要求:

1) 理解函数的意义; 2) 掌握函数的定义方法; 3) 掌握函数的声明形式; 4) 掌握函数的调用形式;

5) 理解形参和实参的值传递关系; 6) 学习函数返回值的使用方法。 2、 实验内容

定义一个函数,判断三个整型边长能否构成三角形,如果是三角形,则判断它是否是直

角三角形。 3、实验步骤:

1) 声明函数Judge;

2) 实现函数Judge,根据输入的三个边长判断是否可以构成一个三角形; 3) 在main函数中调用Judge函数;

4) main函数根据Judge函数的调用结果判断是否三角形,如果构成三角形则判断是否

为直角三角形。

4、主要实验仪器设备: 计算机 实验题目2 1、目的要求:

1) 理解函数重载的意义;

2) 掌握重载函数的声明、定义与调用方法; 3) 进一步理解函数形参和实参的值传递关系。 2、 实验内容

用重载函数实现两个整数和三个浮点数的排序,按照从小到大的顺序将排序结果输出。 3、实验步骤:

1) 声明函数Sort为重载函数,并根据参数类型和个数的不同分别定义; 2) 在main函数中用cin分别输入整数和浮点数;

3) 根据参数类型和个数的不同,调用不同的函数,从而实现重载。 4、主要实验仪器设备: 计算机

实验四 类与对象实验 (设计性实验 4学时)

实验题目1 1、目的要求:

1) 理解类与对象的概念;

2) 掌握类的声明和定义方法; 3) 掌握对象的定义和使用方法;

4) 掌握带参数的构造函数的定义和使用;

5) 掌握静态数据成员和静态成员函数的定义和使用方法; 6) 理解类与对象之间的关系。 2、实验内容

定义一个学生类Student,包括3个数据成员:学号id,姓名name,分数score;两个静态数据成员:总分total和学生人数count;带参数的构造函数用来初始化对象,成员函数ChangeScore用来修改分数,静态成员函数GetAverage用来打印计算得到的平均分。 3、实验步骤:

1) 定义一个学生类Student,包括题目中要求的数据成员和成员函数; 2) 在类外对静态数据成员进行定义声明,以获得存储空间; 3) 定义类中的成员函数;

4) 在main函数中声明类的对象并初始化;

5) 使用该对象的成员函数进行计算并打印结果。 4、主要实验仪器设备:

计算机 实验题目2 1、目的要求:

1) 理解类的组合的概念和使用方法;

2) 学会定义并使用带参数的构造函数和不带参数的默认构造函数; 3) 掌握组合类构造函数和析构函数的定义、实现和调用顺序。 2、实验内容

定义一个组合类课程类Lesson,其数据成员有:课号id,课程名name,任课老师teacher,选课学生s,其中学生信息定义成学生类的数组。成员函数有:AddStudent增加选课学生信息,GetPassRate计算课程的及格率,ShowInfo显示课程信息。学生类包括学号、姓名及该门课的成绩。用上述类的组合实现课程的管理。 3、实验步骤:

1) 定义一个学生类Student,包括题目要求的数据成员与相应成员函数; 2) 定义一个课程类Lesson,以学生类的对象作为该类的数据成员; 3) 定义课程类的相关成员函数;

4) 在main函数中使用学生和课程类对象模拟课程的管理及信息显示。 4、主要实验仪器设备:

计算机

实验五 运算符重载实验 (设计性实验 2学时)

1、目的要求:

1) 理解运算符重载的概念和意义;

2) 掌握重载运算符为成员函数的方法;

3) 学习使用重载运算符函数,并注意其参数和返回值的类型; 4) 掌握重载运算符函数的调用方法。 2、实验内容

定义一个时间类,包括小时、分、秒三个数据成员,自定义构造函数和析构函数,并具有设置时间函数SetTime()、返回时间函数GetTime(),以及显示当前时间的成员函数ShowTime()。此外,还需要对=、+=、++、+、==、!=、>=、<、>这些运算符进行重载。 3、实验步骤:

1) 按照题目要求,定义一个时间类CTime; 2) 定义类的各个成员函数;

3) 定义重载运算符函数为类的成员函数,其中关系运算符的返回值类型为bool型,算

术运算符、赋值以及复合运算符返回值为引用类型; 4) 在main函数中定义时间类CTime的对象并进行测试。 4、主要实验仪器设备:

计算机

实验六 继承实验

(设计性实验 2学时)

实验题目1 1、目的要求:

1) 理解继承与派生的概念;

2) 学习定义和使用派生类;

3) 了解不同继承方式下对基类成员的访问权限;

4) 掌握派生类构造函数和析构函数的定义和使用方法; 5) 理解派生类构造函数和析构函数的执行顺序。 2、实验内容

定义一个本科生类Undergraduate,包括学号、姓名、专业这三个数据成员,在此基础上派生出研究生类Graduate,并增加导师、发表论文数等属性。可以通过显示个人信息函数ShowInfo来查个人档案。 3、实验步骤:

1) 定义基类Undergraduate,包括题目要求的数据成员,以及用来显示个人信息的成员

函数ShowInfo;

2) 采用公有继承的方式,定义基类Undergraduate的派生类Graduate;

3) 在派生类中增加导师和发表论文数两个数据成员,并重新改写ShowInfo函数; 4) 在main函数中定义并使用派生类对象。 4、主要实验仪器设备:

计算机 实验题目2 1、目的要求:

1) 理解单继承和多继承的概念;

2) 掌握类层次中构造函数的定义方式和建立对象时构造和析构顺序; 3) 掌握重载构造函数,能够在不同情况下完成数据成员初始化的任务; 4) 能够根据问题建立合理的类层次关系。 2、实验内容

定义一个学生类Student和教师类Teacher,学生类的数据成员有姓名、学号、专业,教师类的数据成员有姓名、工作证号、职称、课程、每周课时数。再定义一个助教类TA,继承学生类和教师类,该类可以使用学生类的全部数据成员以及教师类的课程和每周课时数的数据成员。要求:每个类提供自定义的构造函数和析构函数,并通过同名函数ShowInfo来显示全部数据成员的值。 3、实验步骤:

1) 按照题目要求定义Student类,包括题目要求的数据成员以及信息显示成员函数

ShowInfo;

2) 定义Teacher类,包括题目要求的数据成员以及相应的信息显示与设置成员函数; 3) 采用公有派生,从前面两个基类中派生出TA类,实现多继承; 4) 在main函数中定义派生类TA的对象并使用这些对象;

5) 观察程序运行结果,理解建立和清除对象时构造函数和析构函数的执行顺序。 4、主要实验仪器设备:

计算机

实验七 虚函数实验 (设计性实验 2学时)

1、目的要求:

1) 理解多态与虚函数的概念;

2) 学习使用虚函数实现动态多态性;

3) 掌握虚函数和纯虚函数的定义与使用方法;

4) 掌握抽象类及其派生类中虚函数的声明和定义方法。 2、实验内容

计算几种不同的三维图形的表面积和体积。这里定义一个抽象类CShape,将其成员函数显示基本图形信息函数DispAttr()、计算表面积函数SArea()和计算体积函数Volume()定义为纯虚函数。根据此抽象类派生出球体、正方体、长方体和圆柱体,并分别重新实现基类中的纯虚函数来显示输出计算结果。 3、实验步骤:

1) 声明形状类CShape为抽象列,并将其成员函数DispAttr()、SArea()、Volume()定义

为纯虚函数;

2) 声明四个派生类:球体类、正方体类、长方体类和圆柱体类,并重新实现基类中的

纯虚函数;

3) 在main函数中定义基类的指针数组,分别用来指向四个不同的派生类,并初始化

各派生类的对象;

4) 在main函数中计算所有三维图形的总的表面积和体积,并计算各三维图形占总表

面积、总体积的百分比。

4、主要实验仪器设备: 计算机

实验八 数组实验

(设计性实验 2学时)

实验题目1 1、目的要求:

1) 理解数组的概念;

2) 掌握一维数组的定义方法;

3) 掌握一维数组元素的输入和输出方法; 4) 理解一维数组中元素的存储方式。 2、实验内容

计算一维向量的平均值,即求X=(X1+X2+…+Xn)/n。 3、实验步骤:

1) 用宏定义define定义一维向量的长度N; 2) 定义具有N个元素的数组a; 3) 用for循环输入数组中的元素; 4) 计算数组元素的平均值; 5) 输出最终的计算结果。 4、主要实验仪器设备: 计算机 实验题目2 1、目的要求:

1) 理解字符串的概念;

2) 理解字符串与字符数组的关系; 3) 掌握字符串数组的定义;

4) 掌握字符串的输入、输出方法;

5) 掌握基本字符串处理函数的使用方法。 2、实验内容

本文来源:https://www.bwwdw.com/article/46y6.html

Top