1.设计内容
实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。
2.设计目的与要求
2.1 设计目的
达到熟练掌握C++语言的基本知识和技能
基本掌握面向对象程序设计的基本思路和方法
能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题
2.2 设计要求
要求利用面向对象的方法以及C++的编程思想来完成系统的设计
要求在设计的过程中,建立清晰的类层次
在系统的设计中,至少要用到面向对象的一种机制
3.系统分析与设计
3.1 主要知识点
运算符重载增加了C++语言的可扩充性。运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。用友元重载运算符的友元函数是独立于类以外的一般函数。
3.2 关键技术
程序中每一种数据类型用一个类来实现,共设计了4个类。复数类complex,矩阵类matrix,有理数类rational以及集合类set。每一种类都定义了相应的运算符重载函数。具体定义如下所示:
3.2.1 类complex
类complex中,成员变量image表示虚部,real表示实部。成员函数print()用来显示数据。运算符重载函数都是用友元函数来实现的。分别重载+、-、*、/运算符。
3.2.2 类matrix
类matrix中,成员变量elems用来存放矩阵的所有元素,rows表示矩阵的行,cols表示矩阵的列。成员函数SetElems()用来给矩阵中的每一个元素赋值&