中南大学
高级程序设计实践(C++)
课程设计报告
题 目 复数计算器 学生姓名 曾立弘 指导教师 陈丽萍 学 院 信息科学与工程学院
专业班级 电子信息工程 1401 班 完成时间 2015年6月8日 星期一
目录
第一章 需求分析.................................第1页
第二章 概要设计.................................第2页
第三章 详细设计.................................第4页
第四章 调试分析................................第21页
第五章 测试结果................................第25页
第六章 课程设计总结............................第36页
第七章 参考文献................................第37页
第八章 附录....................................第37页
C++程序设计之复数计算器 第一章 需求分析
第一章 需求分析
1.1程序设计的任务
1.1.1编程目的
1.本次程序设计的目的运用面向对象程序设计知识,利用C++语言设计和实现一个复数计算器,要求具备如下主要功能: (1)建立实数类、复数类 (2)实现实数、复数信息的初始化
(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作 (4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算 (5)实现实数、复数信息的输出 1.1.2编程要求
在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。 1.1.3数据范围
数据输入的形式为float型,输出形式亦是float型,数据(实数、复数的实部、虚部)范围是-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38。
1.2本程序能实现的功能
1.2.1实数类(Complex)所实现的功能:
实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算、前置自减运算、后置自减运算、求平方运算、求平方根运算; 1.2.2复数类(Complex1)所实现的功能:
复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。
1.2.3主函数所能实现的功能
1.提供给操作者操作数据的类型(实数还是复数)的标识; 2.操作者选择数据类型后,提供运算类型操作的标识; 3.运用指针调用两个类的各成员函数分别完成各项计;
第1页
C++程序设计之复数计算器 第二章 概要设计
第二章 概要设计
2.1构成部分
2.1.1系统由三部分构成:实数类(Complex)、复数类(Complex1)、主函数main。 2.1.2.构成部分关系
复数类(Complex1)由实数类(Complex)派生而来,其中两者成员函数中的enter(输入数据)函数是虚函数,用以实现多态性。
主函数main通过指针调用实数类(Complex)、复数类(Complex1)分别完成实数运算、复数运算。 2.1.3.类层次
实数类是父类,复数类是子类。
2.2主程序流程以及程序模块之间的调用关系
如图2.2—1所示:
输入flag
flag=1 实数运算 判断flag flag=2 复数运算 判断w 判断v w=3 w=4 w=5 w=6 …… w=12 v=3 v=4 v=5 v=6 …… v=11 加 法 运 算 减法运算 乘法运算 除法运算
求平方运算 第2页 加法运算 减法运算 乘法运算 除法运算 求复数间夹角 C++程序设计之复数计算器 第二章 概要设计
图2.2--1主程序流程以及程序模块之间的调用关系图
注:图2.2--1中没有画出 1. flag=0时退出系统;
2. flag不等于0,1,2时出现错误提示语句的选择结构; 3. w,v在选择范围之外时出现错误提示语句的选择结构。 4. 特殊处理:
除法运算分母为0;求二次方根数为负数;求单个复数夹角时判断象限的过程。
第3页