永发信息网

实现复数的运算的一个程序

答案:1  悬赏:0  手机版
解决时间 2021-04-23 03:55
  • 提问者网友:练爱
  • 2021-04-22 09:47

程序的要求如下所述:1、有数的实部和虚部生成一个复数(默认输入两组);2、两个复数求和;3、两个复数求差;4、两个复数求和;5、从已知的复数中分离出实部6、从已知的复数中分离出虚部。运算结果以相应的复数和实数的表现形式显示。

#include <iostream>

#include <stdio.h>

#include <string.h>

#include <conio.h>

typedef struct{

float real;

float image;

}complex;

int createcomplex(complex z,float x,float y){

complex z;

z.real=x;

z.image=y;

return z;

}

int addcomplex(complex &z,complex &z1,complex &z2){

complex z;

z.real = z1.real + z2.real;

z.image = z1.image + z2.image;

return z;

}

int subcomplex(complex &z,complex &z1,complex &z2){

complex z;

z.real = z1.real - z2.real;

z.imag = z1.image - z2.image;

return z;

int xiangchencomplex(complex &z,complex &z1,complex &z2){

complex z;

z.real = z1.real * z2.real - z1.image * z2.image;

z.image = z1.image * z2.real + z1,real * z2.image;

return z;

}

int getreal(complex &z,float real){ /int getimage(complex &z,float image){ //* 有问题

complex z;

image=z.image;

return image;

}

int menu_select(){int sn;

printf ("请选择操作项目!");

printf ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");

printf ("@@@@@@@@@@ 1、请输入复数 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 2、加法 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 3、减法 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 4、乘法 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 5、输出实部 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 6、输出虚部 @@@@@@@@@@@");

printf ("@@@@@@@@@@ 7、退出 @@@@@@@@@@@");

printf ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");

scanf ("%d",&sn);

if (sn<1||sn>7)

cout<<"出错!重新输入!"<<endl;

else

return sn;

}

int main(){

complex z,z1,z2;

float x,y,image,real;

switch (int sn){

case 1:{

cout<<"请输入第一个复数的值:\n";

cin>>x>>y;

int createcomplex(complex Z1,float x,float y);

cout<<Z1<<endl;

cout<<"请输入第二个复数的值:\n";

cin>>x>>y;

int createcomplex(complex Z2,float x,float y);

cout<<Z2<<endl;}

break;

case 2:{

cout<<"将两个复数相加,输出结果:"<<endl;

int addcomplex(complex &z,complex &Z1,complex &Z2)

cout<<z<<endl; } break;

case 3:{

cout<<"将两个复数相减,输出结果:"<<endl;

int subcomplex(complex &z,complex &Z1,complex &Z2);

cout<<z<<endl;} break;

case 4:{

cout<<"将两个复数相乘,输出结果:"<<endl;

int xiangchencomplex(complex &z,complex &Z1,complex &Z2);

cout<<z<<endl;} break;

case 5:{

cout<<"输出复数的实部"<<endl;

int getreal(complex &z,float real);

cout<<real;}break;

case 6:{

cout<<"输出复数的虚部"<<endl;

int getreal(complex &z,float image);

cout<<image<<endl;}break;

case 7:return 0;

}

cout<<"thank you!"<<endl;

system("pause");

}


最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-04-22 10:13

下面是我给你修改的,基本上大换血,我不太懂你的思想,函数调用基本全错了。没有c++思想。希望对你有用。


#include <iostream.h>
#include <stdio.h>
#include <conio.h>
struct complex {
float real;
float image;
};

void createcomplex(complex z, float x,float y){
z.real=x;
z.image=y;
}


void addcomplex(complex &z,complex &z1,complex &z2){
z.real = z1.real + z2.real;
z.image = z1.image + z2.image;
}


void subcomplex(complex &z,complex &z1,complex &z2){
z.real = z1.real - z2.real;
z.image = z1.image - z2.image;
}


void xiangchencomplex(complex &z,complex &z1,complex &z2){
z.real = z1.real * z2.real - z1.image * z2.image;
z.image = z1.image * z2.real + z1.real * z2.image;
}



void getreal(complex &z,float real){ /void getimage(complex &z,float image){ //* 有问题
image=z.image;
}


int menu_select(){int sn;


printf ("请选择操作项目!\n");


printf ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 1、请输入复数 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 2、加法 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 3、减法 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 4、乘法 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 5、输出实部 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 6、输出虚部 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@ 7、退出 @@@@@@@@@@@\n");


printf ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");



scanf ("%d",&sn);



while (sn<1||sn>7)
{
cout<<"出错!重新输入!"<<endl;
cin>>sn;
}


return sn;


}


int main(){


complex z={0,0},z1={0,0},z2={0,0};


float x=0,y=0,image=0,real=0;
int choose;


cout<<"请先选择1给复数赋值,否则将采用系统 初值!"<<endl;
choose=menu_select();
switch (choose){


case 1:{


cout<<"请输入第一个复数的值:\n";


cin>>x>>y;


createcomplex( z1, x, y);


cout<<z1.real<<"+"<<z1.image<<"i"<<endl;



cout<<"请输入第二个复数的值:\n";


cin>>x>>y;


createcomplex( z2, x, y);


cout<<z2.real<<"+"<<z2.image<<"i"<<endl;}


break;


case 2:{


cout<<"将两个复数相加,输出结果:"<<endl;


addcomplex( z, z1, z2);


cout<<z.real<<"+"<<z.image<<"i"<<endl; } break;


case 3:{


cout<<"将两个复数相减,输出结果:"<<endl;


subcomplex( z, z1, z2);


cout<<z.real<<"+"<<z.image<<"i"<<endl;} break;


case 4:{


cout<<"将两个复数相乘,输出结果:"<<endl;


xiangchencomplex( z,z1,z2);


cout<<z.real<<"+"<<z.image<<"i"<<endl;} break;


case 5:{


cout<<"输出复数的实部"<<endl;


getreal( z, real);


cout<<real<<endl;}break;


case 6:{


cout<<"输出复数的虚部"<<endl;


getreal( z, image);


cout<<image<<endl;}break;


case 7:return 0;


}


cout<<"thank you!"<<endl;


getch();


}


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯