题目一
实验目标和要求:
(1)理解类的继承,能够定义和使用类的继承关系; (2)掌握派生类的声明与定义方法;
(3)熟悉共有派生和私有派生的访问特性; (4)学习虚基类在解决二义性问题中的作用; (5)练习使用多种输入输出类。
问题描述:
1. 定义一个基类MyArray,基类中可以存放一组数据(要求可以同时支持整型数组、浮点型数组,数组长度可以自定义)。如果能力允许,请考虑支持复数数组(可以参考教课书中关于复数处理的例子)。
基类定义部分示例(整型数据) class MyArray{ protected: };
int *alist; //指向动态申请的一组空间 int legth; //整数的个数 public:
Myarray(int length); ~MyArray(); void Input(); void Display();
2. 定义一类SortArray,继承自MyArray,在该类中定义函数,实现排序功能,并将排序前和排序后的数据依次写入一个MyArray.txt文件中(两组数据中间要有分割标识,例如换行或其他符号)。
3. 定义一个类InsertIntoArray,继承自MyArray,在该类中定义函数,实现将新输入的数据插入到从MyArray.txt文件中已经排好序的数据中(先将数据从文件中读出,再写入)。
4. 定义一个类NewArray,同时继承类SortArray和InsertIntoArray,使得NewArray类的对象同时具有排序和插入新数据的功能。
5. 在继承的过程中声明为虚基类,体会虚基类在解决二义性问题中的作用。 题目二 实验目标:
(1)理解类的继承,能够定义和使用类的继承关系; (2)掌握派生类的声明与定义方法;
(3)熟悉共有派生和私有派生的访问特性; (4)学习虚基类在解决二义性问题中的作用;
(5)练习使用多种输入输出类。
问题描述:
1. 在第一次上机题目的基础上,以当时定义的类为基类,定义一个继承自它的类HexCalculator,支持16进制运算。
2. 在第一次上机题目的基础上,以当时定义的类为基类,定义一个继承自它的类ByteCalculator,支持2进制运算。
3. 定义一个MultiPurposeCalculator类,继承自HexCalculator和ByteCalculator类,使得它可以用于计算十进制、二进制和十六进制数据。
4. 在继承的过程中声明为虚基类,体会虚基类在解决二义性问题中的作用。
5. 在各个类中加入记录计算日志的功能(CalculateLog),将所有的计算表达式及结果写入一个CalculateLog.txt文件(配以计算机的时间就可以唯一区分一条记录,每条记录之后都换行)。
因篇幅问题不能全部显示,请点此查看更多更全内容