《c++课程设计报告复数计算器》由会员分享,可在线阅读,更多相关《c++课程设计报告复数计算器(58页珍藏版)》请在金锄头文库上搜索。
1、 中南大学高级程序设计实践(C+) 课程设计报告题 目 复数计算器 学生姓名 指导教师 穆帅 学 院 信息科学与工程学院 专业班级 电气信息类 班 完成时间 2013 年 7 月 4 日 星期四 目录第一章 需求分析.第 1 页第二章 概要设计.第 2 页第三章 详细设计.第 3 页第四章 调试分析第 20 页第五章 测试结果第 23 页第六章 课程设计总结第 35 页第七章 参考文献第 36 页第八章 附录第 36 页C+程序设计之复数计算器 第一章 需求分析第1页第一章 需求分析1.1 程序设计的任务11.1 编程目的1.本次程序设计的目的运用面向对象程序设计知识,利用 C+语言设计和实现
2、一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算(5)实现实数、复数信息的输出1.1.2 编程要求在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出 C+语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。1.1.3 数据范围数据输入的形式为 float 型,输出形式亦是 float 型,数据(实数、复数的实部、虚部)范围是-2128 +2128,也即
3、-3.40E+38 +3.40E+38。1.2 本程序能实现的功能1.2.1 实数类(Complex)所实现的功能:实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算、前置自减运算、后置自减运算、求平方运算、求平方根运算;1.2.2 复数类(Complex1)所实现的功能:复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。1.2.3 主函数所能实现的功能1.提供给操作者操作数据的类型(实数还是复数)的标识;2.操作者选择数据类型后,提供运算类型操作的标识;C+程序设计之复数计算器 第一章 需求分
4、析第2页3.运用指针调用两个类的各成员函数分别完成各项计算。C+程序设计之复数计算器 第二章 概要设计 第3页第二章 概要设计2.1 构成部分2.1.1 系统由三部分构成:实数类(Complex) 、复数类(Complex1) 、主函数main。2.1.2.构成部分关系复数类(Complex1)由实数类(Complex)派生而来,其中两者成员函数中的enter(输入数据)函数是虚函数,用以实现多态性。主函数 main 通过指针调用实数类(Complex) 、复数类(Complex1)分别完成实数运算、复数运算。2.1.3.类层次实数类是父类,复数类是子类2.2 主程序流程以及程序模块之间的调用
5、关系如图 2.21 所示:输入 flag判断 flag判断 wflag=1flag=2实数运算复数运算w=3 w=4 w=5 w=6 w=12 v=3 v=4 v=5 v=6 v=11判断 v 加 法 运 算减 法 运 算乘 法 运 算除 法 运 算求 平 方 运 算加 法 运 算减 法 运 算乘 法 运 算除 法 运 算求 复 数 间 夹 角C+程序设计之复数计算器 第三章 详细设计 第4页图 2.2-1 主程序流程以及程序模块之间的调用关系图注:图 2.2-1 中没有画出1. flag=0 时退出系统;2. flag 不等于 0,1,2 时出现错误提示语句的选择结构;3. w,v 在选择范
6、围之外时出现错误提示语句的选择结构。4. 特殊处理:除法运算分母为 0;求二次方根数为负数;求单个复数夹角时判断象限的过程。第三章 详细设计3.1 类层次中各个类的描述3.1.1.实数类(Complex)私有部分仅数据:float 型数据 real;公共部分包括 12 个成员函数,分别是:类的构造函数:Complex()实数加法运算函数: Complex operator+(Complex coutreal;3.2.2 复数类(Complex1)1.类的构造函数函数体部分Complex1(); 2. 复数加法运算函数函数体部分Complex1 operator+(Complex1 cout=0
7、)cout0)cout0)coutreal;cinimag;coutflag;if(flag=1) /条件语句:如果 flag=1,则进行实数运算 coutw;if(w=3)coutenter();coutenter();coutoperator+(grad2);if(w=4)coutenter();coutenter();coutoperator-(grad2);if(w=5)coutenter();coutenter();coutoperator*(grad2);if(w=6)C+程序设计之复数计算器 第三章 详细设计 第16页coutenter();coutenter();coutope
8、rator/(grad2);if(w=7)coutenter();pt1-operator+();if(w=8)coutenter();pt1-operator-();if(w=9)coutenter();grad1+;if(w=10)coutenter();grad1-;if(w=11)C+程序设计之复数计算器 第三章 详细设计 第17页coutenter();pt1-RootOfTwo();if(w=12)coutenter();pt1-Square();if(w!=3C+程序设计之复数计算器 第三章 详细设计 第18页if(v=3)coutenter();coutenter();cout
9、operator+(revd2);if(v=4)coutenter();coutenter();coutoperator-(revd2);if(v=5)coutenter();coutenter();coutoperator*(revd2);if(v=6)coutenter();C+程序设计之复数计算器 第三章 详细设计 第19页coutenter();coutoperator/(revd2);if(v=7)coutenter();coutConjugate();if(v=8)coutenter();coutSquare1();if(v=9)coutenter();coutConjugate(
10、);if(v=10)coutenter();coutAngle1();C+程序设计之复数计算器 第三章 详细设计 第20页if(v=11)coutenter();coutenter();coutAngle2(revd2);if(v!=3const float i=3.1415927;class Complex /实数类 public: C+程序设计之复数计算器 第七章 参考文献 第八章 附录 第41页Complex(); /构造函数 Complex operator+(Complex coutreal;private: C+程序设计之复数计算器 第八章 附录 第45页float real; /
11、私有数据 ;class Complex1:public Complex /类的共有继承 生成复数类 public:Complex1(); /构造函数 Complex1 operator+(Complex1 cout=0)cout0)cout0)coutreal;cinimag;coutflag;C+程序设计之复数计算器 第八章 附录 第50页if(flag=1) /条件语句:如果 flag=1,则进行实数运算 coutw;if(w=3)coutenter();coutenter();coutoperator+(grad2);if(w=4)coutenter();coutenter();cout
12、operator-(grad2);C+程序设计之复数计算器 第八章 附录 第51页if(w=5)coutenter();coutenter();coutoperator*(grad2);if(w=6)coutenter();coutenter();coutoperator/(grad2);if(w=7)coutenter();pt1-operator+();if(w=8)coutenter();pt1-operator-();if(w=9)C+程序设计之复数计算器 第八章 附录 第52页coutenter();grad1+;if(w=10)coutenter();grad1-;if(w=11)coutenter();pt1-RootOfTwo();if(w=12)coutenter();pt1-Square()