C++课程设计报告 - 复数计算器 - 2015 - 电信1401 - 曾立弘 - 0903140114 下载本文

内容发布更新时间 : 2024/5/4 19:45:32星期一 下面是文章的全部内容请认真阅读。

中南大学

高级程序设计实践(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页