成 绩 评 定 表
学生姓名 | 李勇强 | 班级学号 | 1103060215 | |
专 业 | 通信工程 | 课程设计题目 | 复数类的设计与实现 | |
评 语 | 组长签字: | |||
成绩 | ||||
日期 | 20 年 月 日 | |||
课程设计任务书
学 院 | 信息科学与工程学院 | 专 业 | 通信工程 | ||
学生姓名 | 李勇强 | 析构方法班级学号 | 1103060215 | ||
课程设计题目 | 复数类的设计与实现 | ||||
实践教学要求与任务 设计一个复数类,复数类的数据成员是real和imag,它们的数据类型是double,分别表示复数的实部和虚部,要求如下: (1)编写一个带有缺省参数的构造函数,默认值为(0,0),实现一个复数的构造。 (2)编写一个拷贝构造函数,实现一个复数的拷贝构造。 (3)编写一个析构函数,在函数中输出(real,imag)被析构,例如:如果复数的实部为1,虚部为2,则被析构时程序输出:“(1,2)被析构”。 (4)重载运算符“+”为复数类的成员函数,其功能是返回两个复数的相加的结果。 (5)重载运算符“-”为复数类的成员函数,其功能是返回两个复数的相减的结果。 (6)重载运算符“*”为复数类的友元函数,其功能是返回两个复数的相乘的结果。 (7)重载运算符“/”为复数类的友元函数,其功能是返回两个复数的相除的结果。 (8)重载单目运算符“-”为复数类的友元函数,其功能是返回当前复数的相反数。 (9)重载运算符“>>”为复数类的友元函数,其功能是按照以格式(real,imag)。 (10)输入复数。例如:如果复数的实部为1,虚部为2,则输入的格式是“(1,2)”。 (11)重载运算符“<<”为复数类的友元函数,其功能是按照以格式(real,imag) (12)输出复数。例如:如果复数的实部为1,虚部为2,则输出的结果是“(1,2)”。 (13)以上函数在类的内部写出函数原型,在类的外部写出函数实现代码,最后编写一个主函数main测试以上的函数功能。 工作计划与进度安排 第17周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第18周:程序的设计、调试与实现; 第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。 | |||||
指导教师: 201 年 月 日 | 专业负责人: 201 年 月 日 | 学院教学副院长: 201 年 月 日 | |||
摘 要
本文采用了C++语言来完成复数类的设计与实现。首先设计了复数类,在类中定义了复数的实部和虚部,然后在类中设计构造函数和析构函数用于对象的初始化和清理,类中的重载运算符函数用于实现对复数的一些基本运算和输入输出。程序分别采用Visual C++ 6.0的控制台工程和MFC工程来运行。最终,通过对两种程序的测试结果表明:复数类的方法函数设计正确,两种程序均能正确实现复数类方法函数的功能。
关键词:复数;复数类;控制台工程;MFC工程
1 需求分析 1
1 需求分析
(1)构造函数可以用于给对象赋初值;析构函数可以用于对象的生命期结束时,做一些清理工作;拷贝构造函数可以用于复制对象。
(2)类中重载运算符“+”、“-”、“*”、“/”的函数,可以依据复数的四则运算法则设计函数内部代码。
(3)复数的相反数为复数的实部与虚部分别取相反数。
(4)整个程序可以通过构建复数类,类中定义数据成员(复数的实部、虚部),设计方法,实现复数类对象的构造、析构,复数的加减乘除、取相反数的运算。并通过重载流提取运算符和流插入运算符,来进行复数的输入和输出。
(5)要求类的声明与实现相分离,可以将其保存在不同的文件中,并在类的实现文件中包含类的声明头文件。
2算法基本原理
(1)构造函数是一种特殊的成员函数,在建立对象时自动执行。其名字与类名同名,不具有任何类型,不返回任何值。构造函数中参数的值可以指定为默认值。拷贝构造函数只有一个参数,这个参数是本类的对象(一般约定加const声明)。
(2)析构函数也是一个特殊的成员函数,其名字是类名前加一个“~”符号。构造函数不返回任何值,无函数类型和函数参数。当对象的生命期结束时,自动执行析构函数。
(3)运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数。
(4)复数的加法法则:
设z1=a+bi,z2=c+di是任意两个复数,则它们的和为(a+bi)+(c+di)=(a+c)+(b+d)i。两个复数的和依然是复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部。
(5)复数的减法法则:
设z1=a+bi,z2=c+di是任意两个复数,则它们的差是 (a+bi)-(c+di)=(a-c)+(b-d)i。两个复数的差依然是复数,它的实部是原来两个复数实部的差,它的虚部是原来两个虚部的差。
(6)复数的乘法法则:
设z1=a+bi,z2=c+di是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i。把两个
复数相乘,类似两个多项式相乘,结果中i^2 = −1,把实部与虚部分别合并。两个复数的积依然是一个复数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论