永发信息网

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

答案:1  悬赏:0  手机版
解决时间 2021-04-23 03:55

程序的要求如下所述: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");

}


最佳答案

下面是我给你修改的,基本上大换血,我不太懂你的思想,函数调用基本全错了。没有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();


}


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是个女孩子,可是手上的毛和腿上的毛很多,有
目前世界上人的最长寿命是多大,你知道是谁吗
陶渊明《桃花源记》里的一句“便要还家”的要
韩国最有名的高中叫什么名字?
效果和利益 出力服务 全心全力的出力 带效的
有比冷恋更爱寒熙的人吗?
情人节了,想租个情人过节,两天时间,18一28
描写红包的诗句
我下载的QQ魔域更新不了
好久没有上网勒,有那些歌好听?
问问积分/经验怎样变化的?
有关英语的口号第一,急求一个英语口号,四句
电脑同时打开很多的窗口,是否会被电脑有所影
郭大餐厅怎么去啊,有知道地址的么
AVA已经被推广员激活了还可以申请推广员不能
推荐资讯
幸福的繁体代码是多少阿
上什么网找古董鉴定专家
男朋友把工作看成比我重要。我是不是在他心里
把原始图片缩小了,现在又想把它调大些,有什么
怎么看非好友的超级QQ等级?
日本海啸产生的原因
DNF谁能帮我解决这个问题
关于网址的问题
惠威 M1 适合家用吗
一个已婚已育女人想改变自己该从何做起?
今年高考里科分数是多少分上线
There are some maps on the desk.(否定句)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?