早教吧 育儿知识 作业答案 考试题库 百科 知识分享

急急急!C++问题,答好再追加悬赏,帮做一下。多谢大神1复数ADT[问题描述]设计实现抽象数据类型“复数”。[基本要求]实现复数的加法、减法、乘法,以及求复数的实部、虚部等

题目详情
急急急!C++问题,答好再追加悬赏,帮做一下。多谢大神
1
复数ADT

[问题描述]
  设计实现抽象数据类型“复数”。

[基本要求]
  实现复数的加法、减法、乘法,以及求复数的实部、虚部等基本操作。

[测试数据]
  由学生依据软件工程的测试技术自己确定。注意测试边界数据,如复数0。

[实现提示]
  用结构体封装与“复数”对应的实部、虚部。

[选作内容]
  实现复数的除法运算。
2
有理数ADT

[问题描述]
  设计实现抽象数据类型“有理数”。

[基本要求]
  实现有理数的加法、减法,以及求有理数的分子、分母等基本操作。

[测试数据]
  由学生依据软件工程的测试技术自己确定。注意测试边界数据,如有理数0。

[实现提示]
  用结构体封装与“有理数”对应的分子和分母。

[选作内容]
  实现有理数的乘法、除法运算。
▼优质解答
答案和解析
头文件:Complex.h
#include
typedef struct {
float real;
float imag;

}Complex;
void InitialComplex(Complex&x,float r,float i)
{ x.real=r;
x.imag=i;

}
float GetReal(Complex x)
{
return x.real;
}
float GetImag(Complex x)
{
return x.imag;
}
void SetReal(Complex &x,float real)
{
x.real=real;
}
void SetImag(Complex &x,float imag)
{
x.imag=imag;
}
Complex add(Complex x,Complex y)
{
Complex z;
z.real=x.real+y.real;
z.imag=x.imag+y.imag;
return z;
}
Complex sub(Complex x,Complex y)
{
Complex z;
z.real=x.real-y.real;
z.imag=x.imag-y.imag;
return z;
}
Complex multi(Complex x,Complex y)
{
Complex z;
z.real=x.real*y.real-x.imag*y.imag;
z.imag=x.real*y.imag+x.imag*y.real;
return z;
}
Complex except(Complex x,Complex y)
{
Complex z;
z.real=(x.real*y.real+x.imag*y.imag)/(y.real*y.real+y.imag*y.imag);
z.imag=(x.real*(-y.imag)+y.real*x.imag)/(y.real*y.real+y.imag*y.imag);
return z;
}
源文件:main.cpp
#include"Complex.h"
void main()
{Complex a,b,c;
float r=0,i=0;
printf("请输入第一个复数的实部,虚部值,用空格隔开:\n");
scanf("%f%f",&r,&i);
InitialComplex(a,r,i);
printf("请输入第二个复数的实部,虚部值,用空格隔开:\n");
scanf("%f%f",&r,&i);
SetReal(b,r);
SetImag(b,i);
printf("第一个复数的实部为:%f,虚部为:%f\n",GetReal(a),GetImag(a));
printf("第二个复数的实部为:%f,虚部为:%f\n",GetReal(b),GetImag(b));
printf("两个复数之和:");
c=add(a,b);
printf("%f %f\n",GetReal(c),GetImag(c));
printf("两个复数乘积:");
c=multi(a,b);
printf("%f %f\n",GetReal(c),GetImag(c));
printf("两个复数之差:");
c=sub(a,b);
printf("%f %f\n",GetReal(c),GetImag(c));
printf("两个复数之商:");
c=except(a,b);
printf("%f %f\n",GetReal(c),GetImag(c));
}
看了 急急急!C++问题,答好再追...的网友还看了以下:

将复杂问题简单化,抽象问题具体化是解决问题的一种科学思维方法,在研究电场问题时,将难以理解、非常抽  2020-05-15 …

可能发生劣币驱逐良币现象的货币制度是( )。 A.金本位制 B.银本位制 C.金银复本位制  2020-05-21 …

可能发生劣币驱逐良币现象的货币制度是( )。 A.金本位制B.银本位制C.金银复本位制D.虚金  2020-05-30 …

用下面的词组打头,填诗:结构特点:我是我所具有的两个特点我好奇我所好奇的事情我听见一种想象的声音我  2020-06-13 …

关于英语口语考试中的复述问题复述这种类型题目是出现一段时间英文材料供考生阅读后消失,再根据自己的印象  2020-11-06 …

1789年爆发的法国大革命并没有解决根本问题,此后近百年,法国一直处于革命与复辟的轮回中,社会持续动  2020-11-11 …

关于连续复利的问题.急!传统中连续复利问题,复利的利率是不变的,但是如果复利率随着时间的变化而变化,  2020-11-21 …

一元复始万象更新.2009阅兵仪式我爷爷问我看过阅兵仪式以后对一元复始万象更新有什么新的理解!帮我回  2020-12-05 …

C++程序设计问题默认参数是在中说明的,默认参数可以多于一个。建立一个对象时,对象的状态是不确定的。  2020-12-10 …

北京大学教授钱乘旦说:“(法国)大革命并没有解决根本问题,此后近百年中,法国一直处于革命与复辟的轮回  2021-01-14 …