面向对象程序设计实验
Object Oriented Programming
课程编号
   
    10
先修课程:计算机导论、C语言程序设计
适用专业计算机科学与技术、软件工程
    :《C++程序设计教程:实验手册》,清华大学出版社,Harvery M. Paul J.Tem R.2004
开课院系:计算机科学与技术系
一、实验的性质和任务
C++是一门高效实用的程序设计语言,它既可进行过程化程序设计,也可进行面向对象程序设计。随着C++逐渐成为ANSI标准,这种新的面向对象程序设计语言已经成为了程序员最广泛使用的工具。本课程是一门计算机及相关专业的重要的专业基础课,开设实验课程主要目的是使学生掌握有关C++语言的基本概念、基本语法和编程方法,理解C++语言面向对象的重要特征,促使学生理论联系实际,能够灵活应用自己所学的理论知识进行程序开发,增强学生的实践动手技能,并能够提高学生独立分析问题和解决问题的能力。
二、实验的基本内容及要求
实验一、C++程序的运行环境、简单C++数据类型及运算(1学时)
1. 实验目的
(1) 熟悉VC++6.0集成开发环境;掌握简单C++程序的编辑、编译和运行
(2) 熟悉和理解C++语言中的数据类型、表达式;掌握简单C++程序的编写及调试方法
2. 实验内容
(1) 熟悉VC++6.0集成开发环境的基本操作方法,学会独立使用该系统
(2) 了解在该系统上如何编辑、编译、连接和运行一个C++程序
(3) 通过运行一个简单的C++程序,初步了解C++源程序的特点
(4) 熟悉和理解C++语言中的数据类型、表达式了解基本数据类型的字节宽度和范围表示
(5) 利用学习的数据类型,编制简单的C++程序实验准备
(6) 初步学习程序调试方法
3. 实验准备
(1) 安装Visual C++编译系统
(2) 熟悉Vc++6.0编译系统的使用步骤,以及简单C++程序的编辑、编译和运行过程
(3) 复习C++的基本数据类型,表达式
(4) 复习程序的上机调试过程
(5) 根据实验内容要求,编写好实验程序
4. 实验步骤
(1) 选择菜单“开始/程序/Microsoft Visual Studio  6.0/Microsoft Visual C++ 6.0,得到Visual  C++ 6.0启动后的用户界面;
(2) 创建一个新工程;
(3) 编写一个简单的C++源程序,并保存;
(4) 编译连接和运行程序
(5) 输入源程序,编译、连接直到没有错误
(6) 运行程序,观察程序运行结果
5. 实验报告
1)提交源程序
2)举例说明在建立源程序、编译、连接程序时,发现的错误属于何种类型及解决办法
3)改变所用变量的数据类型,观察程序运行结果的变化并分析原因
4)写出上机实验体会和实验报告
实验二、数组(1学时)
1.实验目的
熟练掌握一维数组和二维数组的定义、引用和初始化;掌握字符数组与字符串的关系以及字符串变量的表示,熟练字符串处理函数的应用。
2. 实验内容
(1) 有一个数组,内放10个整数,出最小的数和它的下标,然后把它和数组中最前面的元素对换
输入一个n×n的矩阵,求出两条对角线元素值之和
编写一程序,将两个字符串连接起来,不要strcat函数
3.实验准备
1)复习一维数组和二维数组的定义、引用和初始化方法,进一步了解常用字符串处理函数的使用。
2)根据实验内容要求,编写好实验程序
4.实验步骤
1)输入源程序,编译、连接直到没有错误
2)根据实验步骤,撰写实验报告
5.实验报告
1)结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
2)整理上机步骤,总结经验和体会
3)完成实验报告和提交源程序
实验三、函数与编译预处理(1学时)
1.实验目的
掌握函数的定义、申明和使用方法;掌握函数调用的方法;掌握全局变量、局部变量、静态变量的使用方法;掌握编译预处理的使用。
2. 实验内容
1)求两正整数的最大公约数和最小公倍速数,用一个函数求最大公约数,另一个函数求最小公倍数。要求不使用全局变量。将最大公约数和最小公倍数在主函数中输出。
2)十进位制数转换二、八和十六进制数程序。要求:
a. 编写一个函数实现十进制数转换其它进制数;
b. 在主函数中给十进制数和转换的进位制,输出转换结果。
3.实验准备
(1) 复习函数的定义、申明和使用方法,熟悉函数调用和编译预处理             
(2) 根据实验内容要求,编写好实验程序
4.实验步骤
(1) 输入源程序,编译、连接直到没有错误
(2) 根据实验步骤,撰写实验报告
5.实验报告
(1) 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
(2) 整理上机步骤,总结经验和体会
(3) 完成实验报告和提交源程序
实验四、指针(2学时)
1.实验目的
熟练掌握各种类型指针的定义、申明、引用和运算;掌握数组指针和指向数组的指针变量 ,以及字符串的指针和指向字符串的指针变量;了解指针与链表关系。
2. 实验内容
(1) 编写程序,在堆内存中申请一个float型数组,把10float型数据0.10.20.3…、1.0赋予该数组,然后使用float型指针输出该数组的各元素值并求出其累加和。
(2) 使用指针编写函数strcat()函数,即实现两个字符串的首尾连接(将字符串str2接到str1的后面,str1最后面的‘\0’被取消)。
(3) 用指针变量设计一通用函数,该函数查实型数组中最大和最小元素并输出相应元素和下标。
3.实验准备
(1) 复习指针的定义、申明和引用方法,以及其它各种类型指针的定义以及使用             
(2) 根据实验内容要求,编写好实验程序
4.实验步骤
(1) 输入源程序,编译、连接直到没有错误
(2) 根据实验步骤,撰写实验报告
5.实验报告
(1) 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
(2) 整理上机步骤,总结经验和体会
(3) 完成实验报告和提交源程序
实验五、类和对象(一维数组的定义和初始化2学时)
1.实验目的
掌握类的定义以及类对象的定义;理解类的成员的访问控制的含义,公有、私有和保护成员的区别;掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数,能够根据给定的要求定义类并实现类的成员函数。
2. 实验内容
(1) 定义一个圆类,计算圆的面积和周长。要求:分别用成员函数和友元函数来求圆的面积和周长。
(2) 定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对的赋值和输出。要求:
a) 使用成员函数实现对输出的输入、输出;
b) 使用构造函数和析构函数实现对数据的输入、输出。
3.实验准备
(1) 复习类以及对象的定义和使用
(2) 复习构造函数和析构函数的作用、定义方式和实现             
(3) 根据实验内容要求,编写好实验程序
4.实验步骤
(1) 输入源程序,编译、连接直到没有错误
(2) 根据实验步骤,撰写实验报告
5.实验报告
(1) 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
(2) 整理上机步骤,总结经验和体会
(3) 完成实验报告和提交源程序
实验六、继承与派生类 2学时)
1.实验目的
理解继承的含义;掌握派生类的定义方法和实现;理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员; 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。 
2. 实验内容
1) 编写一个学生和教师数据输入和显示程序,要求有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名的输入和显示设计成一个类person,并作为操作类student和教师数据操作类teacher的基类,中的班号和成绩的输入和显示在student类中实现,教师数据中的职称和部门的输入和显示在teacher类中实现。最后在主函数中进行该类的测试。
2) 编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求: 
(1) 定义一个基类圆,至少含有一个数据成员半径;
(2) 定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;
(3) 定义主函数,求球、圆柱、圆锥的和体积。
3.实验准备
(1) 复习继承和派生类的定义和实现方法
(2) 复习不同继承方式下,派生类成员对基类成员的访问方式             
(3) 根据实验内容要求,编写好实验程序
4.实验步骤
(1) 输入源程序,编译、连接直到没有错误
(2) 根据实验步骤,撰写实验报告
5.实验报告
(1) 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
(2) 整理上机步骤,总结经验和体会
(3) 完成实验报告和提交源程序
实验七、多态性和虚函数 1学时)
1.实验目的
掌握运算符重载的概念以及使用friend重载运算符的方法;掌握虚函数和纯虚函数的概念及应用 
2. 实验内容
1) 分别用成员函数和友元函数重载运算符,使对整型的运算符=+-*/ 适用于分数运算。要求:
(1) 输出结果是最简分数(可以是带分数);
(2) 分母为1,只输出分子。
2) 下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数。
#include <iostream.h>
class shape
public:
virtual float area( )=0
};
3.实验准备
  (1) 复习运算符重载的概念以及使用friend重载运算符的方法         
(2) 根据实验内容要求,编写好实验程序
4.实验步骤
(1) 输入源程序,编译、连接直到没有错误
(2) 根据实验步骤,撰写实验报告
5.实验报告
(1) 结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果
(2) 整理上机步骤,总结经验和体会
(3) 完成实验报告和提交源程序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。