1、一、前言一、前言 经过一年的 C+程序语言的学习, 我充分培养了我在这门课上的 学习兴趣。上学期由于条件限制,这门课的学习学习较为落后, 以至于考试成绩很不理想。 这学期有了电脑, 学习起来轻松多了, 因为这门课有个最大的特点那就是:如果你有不懂的,不用问老 师,问计算机就行了。一个多月前, C+程序设计课程设计 学习任务的下达让我有喜有忧。 喜的是我可以较为全面的考察一 下我的学习知识的情况,忧的是我觉得太有挑战,不觉得自己有 能力独立完成。经过深思熟虑,我选择了第经过深思熟虑,我选择了第 14 道题道题复数复数 类 。此题较为全面的考察了类和运算符重载以及许类 。此题较为全面的考察了类和运
2、算符重载以及许多多 C+基础基础 知识。知识。通过长达 8 个小时的编写、运行、调试、测试,最终完成! 二、二、需求分析需求分析 1.根据题目要求,大可分题目目标两个: (1)建立复数类Complex以及复数类的信息初始化和输出; (2)实现复数的基础数学运算。 2.分析解决问题所需的元素: (1)建立复数类 protected 元素的数据类型应为 double 型; (2)public 中的函数的返回值应为复数类, 所以函数的类型 应该是 Complex 类,且应该有 14 个; (3)在进行构造自加、自减、乘方运算的函数时不可能带 参数,故应使用*this(this 指针) ; (4)我编
3、写此程序应该是中学教师办公或者学生学习所 用 ,所以在之后的代码部分我有较为详细的注释。 三、三、概要设计概要设计 1.列出我的程序流程简图(如下) : 2.代码大体格式: #include class Complex double real,image; public: .14 个函数. 创建复数类 Complex, 完善所有元素(包括 Public 中的 13 个函数) 读入两个复数类 c1,c2 用 main 函数中的对象调用类中 的,实现它的数学基础运算。 通过测试, 输出测试结果。 ; int main () Complex c1(1,2),c2(3,4),c3,.; 调用前面的函数
4、,实现数学基本运算的要求. return 0; 四、四、详细设计详细设计 (代码) : #include class Complex protected: double real,image; public: Complex(double r=0,double i=0):real(r),image(i) /复数类的数据初始化。 double Real()return real; double Image()return image; Complex Jueduizhi(); /各种运算函数。 Complex operator+(Complex Complex operator+(double)
5、; Complex operator-(Complex Complex operator-(double); Complex operator*(Complex Complex operator/(Complex Complex operator+(); Complex operator-(); Complex Chengfang(int); Complex operator=(Complex); ; Complex Complex:Jueduizhi() Complex temp; temp.real=(real=0)?real:-real; temp.image=(image=0)?ima
6、ge:-image; return temp; Complex Complex:operator+(Complex temp.real=real+c.real; temp.image=image+c.image; return temp; Complex Complex:operator+(double d) Complex temp; temp.real=real+d; temp.image=image; return temp; Complex Complex:operator-(Complex temp.real=real-c.real; temp.image=image-c.image; return temp; Complex Complex:operator-(double d) Complex temp; temp.real=real-d; temp.image=image; return temp; Compl