2008面向对象程序设计实验指导

更新时间:2024-03-21 03:13:01 阅读量: 综合文库 文档下载

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

实验一C++中对C语言的常规扩充(2学时)

一、实验目的

1.熟悉C++开发环境

2.掌握函数重载的方法掌握函数重载方法及定义重载函数时的注意事项 3.掌握指针的定义及使用方法理解动态内存分配意义

4.掌握new和 delete使用方法 5.掌握引用的声明方法及使用

二、实验内容

以下实验内容可根据具体情况选做

1.编写一个函数,统计一个英文句子中字母的个数,在主程序中实现输入输出。 2.编写三个重载函数,分别求两个整数、实数和双精度数中最大的数。 3.用new运算符产生一个一维数组,输入并输出数组中的数据,然后将数组元素颠倒排列后,再次输出各个值。

4.编制程序,调用传递引用的参数,实现两个字符串变量的交换。

5.编写一个参数为指针的函数,判断一个字符串在另一个字符串中是否存在,如果存在,则返回该字符串出现的次数;如果不存在,则返回值为0。编写主函数,对其功能测试。

三、实验要求

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

1

实验二 类与对象(2学时)

一、实验目的

1.掌握类与对象的定义方法,成员函数实现与调用方法

6.深刻领会类与对象的区别,类实现数据隐藏与封装的原理等 3.掌握构造函数和析构的定义方法 4.掌握拷贝构造函数的使用 二、实验内容

以下实验内容可根据具体情况选做 1.定义一个满足如下要求的类Cdate:

(1) 有三个成员数据:年、月、日; (2) 有设置日期的成员函数;

(3) 有用格式“月/日/年”输出日期的成员函数; (4) 有对当前日期加一天的成员函数。 设计出相应的程序测试类的功能

2.完善下列程序,定义每个成员函数和非成员函数,输出必要的信息,检查临时对象何时被创建,何时被析构。

class X { public:

X(int);

X(X&) ~X(); } X f(X); void main()

2

{

X a(1); X b=f(X(2)); a=f(a); }

3.定义一个两点坐标与距离的类,输入坐标上的两点,计算出两点之间的距离,并输出。同时设计出相应的程序测试类的功能。

4.堆栈是一种结构较简单的线性表,它只允许在表的一端进行数据的插入和删除操作,称允许插入和删除的一端为栈顶,另一端为栈底。通常称插入操作为进栈,删除操作为出栈。因为最后进栈的数据必定先出栈,因此栈具有后进先出的重要特性,简称LIFO(Last In Fist Out)。要求定义和实现栈类Stack,并有相应的测试程序。 三、实验要求

在编写程序时将类的定义写成头文件(.h),类的实现写成.cpp文件,测试程序写在另一个.cpp文件,形成多文件结构。

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

3

实验三 静态成员和友元(2学时)

一、实验目的

1.掌握类中静态成员定义方法,掌握静态数据成员初始化方法 2.掌握静态数据成员和静态成员函数的访问和使用方法

3.了解引入友元的目的 4.学会友元函数和友元类的使用 二、实验内容

以下实验内容可根据具体情况选做

1.掌握类中静态成员定义方法,掌握静态数据成员初始化方法

2. 掌握静态数据成员和静态成员函数的访问和使用方法

3.定义一个类Cpoint表示一个点的信息。在此基础上编写一个表示三角形类Triangle,用友元函数计算三角形面积和周长。

4.定义一个学生类和一个全体学生类,利用友元类的方法,实现对学生成绩排序。 三、实验要求

在编写程序时将类的定义写成头文件(.h),类的实现写成.cpp文件,测试程序写在另一个.cpp文件,形成多文件结构。

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

4

实验四 运算符重载(2学时)

一、实验目的

1.理解运算符重载的概念和实质 2.掌握运算符重载函数的定义方法

3.掌握运算符重载为类的成员函数和友元函数的方法 二、实验内容

以下实验内容可根据具体情况选做

1.定义一个Time类,重载一元“++”和二元“+”操作符,使之具有时间相加的功能。 2.定义一个Rectangle类,要求重载运算符“>” 或 “<” 使之实现比较两个矩形对象面积的大小。 3.构造一个分数类rationalNumber,该类中包括分子和分母两个成员数据,并具有下述功能:

(1) 建立构造函数,它能防止分母为零,当分数不是最简形式时进行约分,

并避免分母为负数 (2) 重载加法、减法、乘法以及除法运算符。 (3) 重载关系运算符:>、<、==等。 三、实验要求

在编写程序时将类的定义写成头文件(.h),类的实现写成.cpp文件,测试程序写在另一个.cpp文件,形成多文件结构。

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

5

实验五 继承性与派生类(2学时)

一、实验目的

1.理解派生类与基类的关系 2.理解派生类继承方式 3.掌握单继承和多继承使用方法 二、实验内容

以下实验内容可根据具体情况选做

1.编一个使用派生类的程序,设计一个包含圆和圆柱的几何尺寸的类,它用内部数据建立几何形状并显示它们的尺寸、面积和体积。 2.定义一个存折类,并派生出信用卡类,存折类可以实现开户、存款、取款和查询余额的操作,取款金额必须小于余额,信用卡类对取款操作进行修改,允许透支一定金额。模拟5个人到银行进行存折操作,其中有两个人还进行信用卡交易的过程。试编写一个完整的程序。 3.设计一个圆类和桌子类,再设计一个圆桌类,它是从前两个类派生出来的。要求输出圆桌的高度、面积、颜色等数据。

三、实验要求

在编写程序时将类的定义写成头文件(.h),类的实现写成.cpp文件,测试程序写在另一个.cpp文件,形成多文件结构。

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

6

实验六 运行时的多态性和虚函数(2学时)

一、实验目的

1.深刻理解滞后联编和早期联编的概念

2.掌握虚函数的定义方法及其在实现多态性的作用 3.理解纯虚函数和抽象类的使用意义 二、实验内容

多态性在学校人员信息管理系统中应用。 系统描述:

学校人员信息管理系统的主要功能是对在校人员的信息资料进行管理。在校人员包括学生、教师和行政人员。各系将学生的基本资料如姓名、性别、年龄等及课程成绩输入到系统。教师除了具有学生一样的基本资料(姓名、性别、出生年月)外,还需要记录一些与教学工作相关的信息,如所教课程、所属系部、当前职称等,并希望能够计算每个教师课时工作量。同样行政人员除了具有学生一样的基本资料(姓名、性别、出生年月)外,还有职务,业绩评级等。系统能够随时输入、显示和查询各类人员的相关信息。 三、实验要求

要求掌握面向对象程序设计方法,继承、多态、虚函数和抽象类的概念在程序中的应用。具体按以下方法完成该实验: (1)进行系统分析

在分析过程中首先理解什么是多态性、消息。考虑系统中何处使用多态性技术 (2)类设计

写出类的层次关系,定义抽象类及它的派生类,

写出各个类的数据成员及相应的数据类型,数据的存储方式,成员函数的声明 (3)类的实现

编写类的成员函数实现代码。 (4)测试多态性在系统中作用

编写一个测试程序,编译、调试,最后输出结果。

7

在编写程序时将类的定义写成头文件(.h),类的实现写成.cpp文件,测试程序写在另一个.cpp文件,形成多文件结构。

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容、结果分析和体会。程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

实验七 泛型程序设计和模板(2学时)

一、实验目的

1.理解函数模板与类模板的意义和作用

2.掌握函数模板与类模板的定义方法及在程序中的运用 二、实验内容

以下实验内容可根据具体情况选做

1.用函数模板方式设计可以对某种数据类型的数组中的数据进行从小到大排序,然后用整型数据和字符型数据进行验证。 2.设计一个类模板 templateclass data,用于对T类型的数组进行求所有元素的和,查找指定的元素是否存在,如果存在,则返回其所在数组元素的下标值,否则返回-1。 3.设计一个能存储任意类型数据的顺序堆栈,即设计一个堆栈模板,然后用某种类型的数据进行验证,并进行进栈和出栈操作。 堆栈是一种存储结构,它的特点是先进后出结构,堆栈中有个栈顶指针,始终指向栈顶上的元素。要建立一个顺序堆栈,可以用数组结构来表示,而栈顶指针用来表示栈顶元素的下标。

8

三、实验要求

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

实验八 输入/输出流(2学时)

一、实验目的

1.掌握I/O流的基本使用 2.掌握I/O流的格式控制

3.掌握文件的打开、关闭、读写操作 二、实验内容

以下实验内容可根据具体情况选做

1.编写一个程序能实现复数的输入/输出与复数的加减运算,要求先输入两组复数,然后对两复数分别进行加减运算,并输出原来两组复数及运算后复数的值。

2.编写程序,从键盘输入一个字符串,判断字符串的长度,然后以字符串的长度的两倍作为域宽打印出该字符。

3.编一个程序拷贝文本文件,在拷贝文件过程中,将所有小写改成大写。 4.编写程序,实现两个文本文件的内容连接成一个文件。

三、实验要求

实验完毕,提交实验报告。实验报告的内容包括实验目的、实验内容和结果分析,程序的源代码和程序的输入输出数据的情况附到实验报告中,写出程序的调试情况,并对输出结果进行分析。

9

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

Top