面向对象程序设计
二、自定义复杂数据类型类题目,设计一个自定义数据类型,重载加减乘除等运算符,定义此数据类型相关的类型转换函数,重载输入输出流的提取和插入运算符,与字符串的类型转换以实现对象用字符串形式直接写出,以及其他功能,然后在主函数中使用这个自定义数据类型。
1. 大数类。用字符串表示一个很大的整数,定义此类型与简单整数类型的数据类型转换函数,至少实现大数的乘法运算。例如:
2312344545656787668*23242425353464=53744495493917515600445696281952。
2. 多项式类。以动态链表或其它形式保存一个多项式,重载运算符,要求能够对输入的任意次幂和系数的多项式进行加、减、乘运算,并能够对结果多项式按照一定格式输出。例如:(a3+2a2+1)+(a2+2)=(a3+3a2+3),a3表示a的3次方。
3. 矩阵类。要求能够保存矩阵,并对任意维数的矩阵进行加运算、减运算、乘运算、转置运算。此外根据自己的能力再增加其它矩阵运算(例如求矩阵的逆,特征向量、秩等)。
4. 分数类。重载运算符实现分数的四则运算,分数的自动化简,分数与简单数据类型的类型转换,分数与字符串的类型转换,分数的格式输入输出,分数和简单数据类型混合运算。
5. 复数类。重载运算符实现复数的四则运算,复数与其他数据类型的类型转换,复数与字符串的类型转换,复数的格式输入输出,复数和简单数据类型混合运算。
6. 抽象数类。设计一个抽象数基类,把上题中的分数、复数、多项式等作为派生类,设计各数据类型与字符串的类型转换,在主函数实现各种数据类型的混合运算。
三、用类来封装数据结构及其算法的题目。
1. 迷宫求解。设计一个迷宫类和一个堆栈类,利用一个堆栈对象,求解迷宫从起点到终点的一个路径,迷宫求解算法作为迷宫类的函数成员。
2. 表达式求解。设计一个表达式类和一个堆栈类,利用堆栈计算带括号的四则表达式的求解,表达式求解算法作为表达式类的函数成员。也可以加上自定义的复杂数据类型,使用户能够输入功能更强的表达式。
3. 英文密文类。定义一个密文类,用字符串保存密文,封装加密解密算法,能够对任意长度的英文字符串进行加密,加密规则为:对于每一个字母用字母表中该字母后面的第2个字母代替(或者其他方法),能将加密后的密文保存到磁盘中并能够读取文件解密出原文。