早教吧作业答案频道 -->其他-->
急急急!C++问题,答好再追加悬赏,帮做一下。多谢大神1复数ADT[问题描述]设计实现抽象数据类型“复数”。[基本要求]实现复数的加法、减法、乘法,以及求复数的实部、虚部等
题目详情
急急急!C++问题,答好再追加悬赏,帮做一下。多谢大神
1
复数ADT
[问题描述]
设计实现抽象数据类型“复数”。
[基本要求]
实现复数的加法、减法、乘法,以及求复数的实部、虚部等基本操作。
[测试数据]
由学生依据软件工程的测试技术自己确定。注意测试边界数据,如复数0。
[实现提示]
用结构体封装与“复数”对应的实部、虚部。
[选作内容]
实现复数的除法运算。
2
有理数ADT
[问题描述]
设计实现抽象数据类型“有理数”。
[基本要求]
实现有理数的加法、减法,以及求有理数的分子、分母等基本操作。
[测试数据]
由学生依据软件工程的测试技术自己确定。注意测试边界数据,如有理数0。
[实现提示]
用结构体封装与“有理数”对应的分子和分母。
[选作内容]
实现有理数的乘法、除法运算。
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));
}
#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++问题,答好再追...的网友还看了以下:
下列现象中由于光的折射而形成的是()A.平面镜使物体成等大的虚像B.月光下的人影C.小孔成像D.用 2020-04-26 …
男生贾里中的好词好句好段 一定要好!(1)描写学习态度的词语 勤奋 刻苦 认真 专注 钻研 踏实 2020-05-17 …
形容谦虚、好学的成语形容谦虚、好学的成语是什么?知道的都说来听听啊 2020-05-17 …
虚心——虚心是贬义词还是褒义词?有个词叫虚心好学我想应是褒义词有个词叫做贼心虚我想应是贬义词那么虚 2020-06-10 …
虚心好学,不断钻研,才能不断进步.哪错了说有病句.帮我看看:虚心好学,刻苦钻研,才能不断进步. 2020-06-18 …
人为什么要谦虚谦虚表示个人品德和作风的道德概念.与骄傲相反.指一个对己有自知之明,承认自己的缺点和 2020-06-25 …
22.将下面这个句子改写成三个连贯的短句。(4分)唐代诗人张若虚笔下那姣好和媚人的被中国人寄托了无 2020-07-06 …
有一个圆柱,B点在A点的正下方,现将一根红绳从A点沿虚线缠绕到B点,圆柱高为24cm,底面半径为3 2020-07-07 …
wish虚拟语气将来不大可能实现的愿望——主句:将来时从句:would/could+动词原形但为何 2020-07-15 …
请帮我翻译以下文字:本人谦虚,自律并且自信,工作态度认真,有强烈的责任心和进取心,虚心好学,乐于思考 2020-11-24 …