复数计算器
- 格式:doc
- 大小:45.00 KB
- 文档页数:12
JAVA-复数计算器使⽤java组件做⼀个复数计算器⾸先,建三个类:⼀个组件类,⼀个类(将⽂本框与字符封装起来),⼀个复数类。
下⾯是组件类的代码:package b;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class JComplex extends JFrame implements ActionListener{//设置组件public JComboBox<String> combox_add,combox_minus;private static String[] add={"+","-"};private static String[] minus={"+","-"};private JButton button_equal;//建⾯板类的对象ComJPanel x1=new ComJPanel();ComJPanel x2=new ComJPanel();ComJPanel x3=new ComJPanel();ComJPanel result=new ComJPanel();public JComplex(){super("复数运算器");this.setLayout(null);this.setSize(400,220);this.setLocationRelativeTo(null);//添加组件this.add(box_add=new JComboBox<String>(JComplex.add));this.add(box_minus=new JComboBox<String>(JComplex.minus));this.add(this.button_equal=new JButton("="));this.add(x1);this.add(x2);this.add(x3);this.add(result);//设置组件的距离和⼤⼩combox_add.setBounds(20, 70, 60, 30);combox_minus.setBounds(20, 110, 60, 30);button_equal.setBounds(20, 150, 60, 30);x1.setBounds(100, 5, 300, 50);x2.setBounds(100, 50, 300, 50);x3.setBounds(100, 100, 300, 50);result.setBounds(100, 150, 300, 50);//设置动作监听combox_add.addActionListener(this);combox_minus.addActionListener(this);button_equal.addActionListener(this);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e){//获取⽂本框的内容String s1=x1.text_real.getText();String s2=x1.text_i.getText();String s3=x2.text_real.getText();String s4=x2.text_i.getText();String s5=x3.text_real.getText();String s6=x3.text_i.getText();//建复数类的对象Complex c1=new Complex(s1,s2);Complex c2=new Complex(s3,s4);Complex c3=new Complex(s5,s6);//动作响应if(e.getSource().equals(combox_add)){if(combox_add.getSelectedItem().equals("+")) combox_add.setSelectedItem("+");else if(combox_add.getSelectedItem().equals("-")) combox_add.getSelectedItem().equals("-");}if(e.getSource().equals(combox_minus)){if(combox_minus.getSelectedItem().equals("+")) combox_minus.setSelectedItem("+");else if(combox_minus.getSelectedItem().equals("-")) combox_minus.setSelectedItem("-");}if(e.getSource().equals(button_equal)){if(combox_add.getSelectedItem().equals("+")){c1.add(c2);}else if(combox_add.getSelectedItem().equals("-")) {c1.minus(c2);}if(combox_minus.getSelectedItem().equals("+")){c1.add(c3);}else if(combox_minus.getSelectedItem().equals("-")) {c1.minus(c3);}}result.text_real.setText(Double.toString(c1.x)); result.text_i.setText(Double.toString(c1.y));}public static void main(String []args){new JComplex();}}class ComJPanel extends JPanel {private JLabel label_add,label_i;JTextField text_real,text_i;String s1,s2;public ComJPanel(){//⾯板类this.setLayout(null);this.add(this.text_real=new JTextField());this.add(bel_add=new JLabel("+"));this.add(this.text_i=new JTextField());this.add(bel_i=new JLabel("i"));text_real.setBounds(20,0,100,30);text_i.setBounds(150,0,100, 30);label_add.setBounds(130,0,20, 25); label_i.setBounds(260,0,20, 25);}}复数类就是简单的复数类,就不贴代码啦。
卡西欧计算器复数化为极坐标形式卡西欧计算器是一种常见的科学计算器,它具有复数运算功能,可以将复数表示为极坐标的形式。
在卡西欧计算器中,复数的极坐标形式通常使用指数形式来表示,即复数的模长和辐角。
在卡西欧计算器中,复数可以表示为 a + bi 的形式,其中 a 和b 分别表示复数的实部和虚部。
为了将复数表示为极坐标形式,我们需要计算复数的模长和辐角。
复数的模长可以使用公式:|z| = sqrt(a^2 + b^2)其中,sqrt表示平方根。
通过计算复数的实部和虚部的平方和,我们可以得到复数的模长。
复数的辐角可以使用公式:θ = atan(b / a)其中,atan表示反正切函数。
通过计算复数的实部和虚部的比值,我们可以得到复数的辐角。
有了复数的模长和辐角,我们就可以将复数表示为极坐标形式:z = |z| * exp(iθ)在卡西欧计算器中,exp表示指数函数,i表示虚数单位。
通过将复数的模长和辐角代入上述公式,我们就可以得到复数的极坐标形式。
通过卡西欧计算器,我们可以进行复数的加法、减法、乘法和除法等运算。
当进行这些运算时,卡西欧计算器会自动转换为复数的极坐标形式来进行计算,从而得到正确的结果。
除了复数运算功能,卡西欧计算器还具有其他常见的科学计算功能,比如三角函数、指数函数、对数函数等。
这些功能使得卡西欧计算器成为数学、物理、工程等领域中常用的计算工具。
总之,卡西欧计算器具有复数运算功能,可以将复数表示为极坐标形式。
通过计算复数的模长和辐角,我们可以将复数表示为模长和辐角的乘积形式。
卡西欧计算器的这一功能在解决复数运算问题时非常有用,同时也可以应用到其他领域的计算中。
计算器的复数运算方法复数运算是指涉及复数的各种数学运算,包括加法、减法、乘法、除法等。
计算器作为一种便捷的工具,可以通过输入相应的运算表达式进行复数的计算。
以下是关于计算器进行复数运算的详细方法说明。
一、计算器复数运算的基础知识1.复数定义复数是由实数和虚数部分构成的数,一般写成a+bi的形式,其中a 为实数部分,b为虚数部分,i为虚数单位,且i满足i^2 = -1例如,3+2i就是一个复数,其中实数部分是3,虚数部分是22.复数的加法和减法复数的加法和减法规则与实数的加法和减法类似,实数部分和虚数部分分别相加或相减。
例如,(3+2i)+(1+4i)=4+6i,(3+2i)-(1+4i)=2-2i。
3.复数的乘法复数的乘法使用分配律展开,然后根据i的平方等于-1进行计算。
例如,(3+2i)*(1+4i)=3*(1+4i)+2i*(1+4i)=3+12i+2i-8=-5+14i。
4.复数的除法复数的除法需要进行分母分子的有理化,然后进行分子分母的化简和分配律展开。
例如,(3+2i)/(1+4i)=(3+2i)*(1-4i)/(1+4i)*(1-4i)=(-10-5i)/17=-10/17-5i/17二、计算器实际操作步骤1.打开计算器首先按下计算器的开关按钮,打开计算器的电源。
2.选择复数模式计算器可能提供实数和复数两种模式选择,需要选择复数模式来进行复数运算。
通常,选择复数模式需要按下模式选择键,然后选择复数模式。
3.输入复数使用计算器上的数字键盘输入要进行运算的复数。
实数部分和虚数部分的输入可以使用不同的键或符号进行表示,具体使用方法可以参考计算器的使用说明书。
4.选择运算符号输入完复数后,选择相应的运算符号,例如加号、减号、乘号或除号。
5.输入第二个复数继续使用数字键盘输入第二个复数。
6.进行计算当输入完第二个复数后,按下等号键,计算器将进行复数运算,并在屏幕上显示结果。
结果以复数的形式显示,包括实数部分和虚数部分。
#include<iostream.h>#include<cmath>#include<stdlib.h>#define PAI 3.1415926 //宏定义,将PAI替换为3.1415926class Complex_0 //声明一个名Complex_0的类{public:Complex_0(){real=0;}Complex_0(float r){real=r;} //定义Complex_0类的构造函数Complex_0(float r,float i){real=r;imag=i;}Complex_0 operator+(Complex_0&c1);Complex_0 operator-(Complex_0&c1);Complex_0 operator*(Complex_0&c1);Complex_0 operator/(Complex_0&c1);//在类中声明运算符重载void qiuhe(Complex_0&,Complex_0&);void qiucha(Complex_0&,Complex_0&);void qiuji(Complex_0&,Complex_0&);void qiushang(Complex_0&,Complex_0&);void qumo(Complex_0&);void pingfang(Complex_0&);void gonge(Complex_0&);void dujiao(Complex_0&);void jiajiao(Complex_0&,Complex_0&); //在类Complex_0中声明的成员函数friend istream & operator>>(istream&,Complex_0&);friend ostream & operator<<(ostream&,Complex_0&);//声明Complex_0的两个友元函数protected:float real;float imag; //Complex_0中数据成员,声明为protected};Complex_0 Complex_0::operator+(Complex_0&c1) //运算符+重载函数定义{Complex_0 c;c.real=real+c1.real;c.imag=imag+c1.imag;return c;}Complex_0 Complex_0::operator-(Complex_0&c1) //运算符-重载函数定义{Complex_0 c;c.real=real-c1.real;c.imag=imag-c1.imag;return c;}Complex_0 Complex_0::operator*(Complex_0&c1) //运算符*重载函数定义{Complex_0 c;c.real=real*c1.real-imag*c1.imag;c.imag=imag*c1.real+real*c1.real;return c;}Complex_0 Complex_0::operator/(Complex_0&c1) //运算符/重载函数定义{Complex_0 c;c.real=(real*c1.real+imag*c1.imag)/(c1.real*c1.real+c1.imag*c1.imag);c.imag=(imag*c1.real-real*c1.imag)/(c1.real*c1.real+c1.imag*c1.imag);return c;}void Complex_0::qiuhe(Complex_0&c1,Complex_0&c2) //类Complex_0中成员函数qiuhe()定义{cout<<"下面进行的是复数和运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a2=";cin>>c2;cout<<"这两个数的和是:"<<c1+c2<<endl;}void Complex_0::qiucha(Complex_0&c1,Complex_0&c2) //类Complex_0中成员函数qiucha()定义{cout<<"下面进行的是复数差运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a2=";cin>>c2;cout<<"这两个数的和是:"<<c1-c2<<endl;}void Complex_0::qiuji(Complex_0&c1,Complex_0&c2) //类Complex_0中成员函数qiuji()定义{cout<<"下面进行的是复数积运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a2=";cin>>c2;cout<<"这两个数的积是:"<<c1*c2<<endl;}void Complex_0::qiushang(Complex_0&c1,Complex_0&c2) //类Complex_0中成员函数qiushang()定义{cout<<"下面进行的是复数商运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a2=";cin>>c2;cout<<"这两个数的商是:"<<c1/c2<<endl;}void Complex_0::qumo(Complex_0&c) //类Complex_0中成员函数qumo()定义{cout<<"下面进行的是复数取模运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a=";cin>>c;double m;m=sqrt(c.real*c.real+c.imag*c.imag);cout<<"这个复数的模是:"<<m<<endl;}void Complex_0::pingfang(Complex_0&c1) //类Complex_0中成员函数pingfang()定义{cout<<"下面进行的是复数取平方运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a=";cin>>c1;Complex_0 c;c.real=c1.real*c1.real-c1.imag*c1.imag;c.imag=2*c1.real*c1.imag;cout<<"这个复数的平方是:"<<c<<endl;}void Complex_0::gonge(Complex_0&c1) //类Complex_0中成员函数gonge()定义{cout<<"下面进行的是复数取共轭运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a=";cin>>c1;Complex_0 c;c.real=c1.real;c.imag=-c1.imag;cout<<"这个复数的共轭是:"<<c<<endl;}void Complex_0::dujiao(Complex_0&c1) //类Complex_0中成员函数dujiao()定义{cout<<"下面进行的是复数取向量角运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a=";cin>>c1;double m;m=atan(c1.imag/c1.real)*180/PAI;cout<<"这个复数的向量角是:"<<m<<"'"<<endl;}void Complex_0::jiajiao(Complex_0&c1,Complex_0&c2) //类Complex_0中成员函数jiajiao()定义{cout<<"下面进行的是两复数夹角运算:"<<endl;cout<<"请输入一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个复数的实部和虚部,中间用空格分开"<<endl;cout<<"a2=";cin>>c2;double m;m=(atan(c1.imag/c1.real)-atan(c2.imag/c2.real))*180/PAI;if(m>=0)cout<<"这两个复数的夹角是:"<<m<<"'"<<endl;elsecout<<"这两个复数的夹角是:"<<-m<<"'"<<endl;}class Real //声明一个名为Real的类{public:Real(){real=0;}Real(float num){real=num;} //类Real中构造函数int qiuhe(Real&,Real&);int qiucha(Real&,Real&);int qiuji(Real&,Real&);int qiushang(Real&,Real&);int zizeng(Real&);int zijian(Real&);int pingfang(Real&);int fanggen(Real&); //Real类中成员函数的函数声明friend istream & operator>>(istream&,Real&);friend ostream & operator<<(ostream&,Real&); //声明Real的两个友元函数protected:float real; //Real类中数据成员,声明为protected};int Real::qiuhe(Real&c1,Real&c2) //类Real中成员函数qiuhe()定义{cout<<"下面进行的是实数和运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个实数:"<<endl;cout<<"a2=";cout<<"这两个数的和是:"<<c1.real+c2.real<<endl;return 0;}int Real::qiucha(Real&c1,Real&c2) //类Real中成员函数qiucha()定义{cout<<"下面进行的是实数差运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个实数:"<<endl;cout<<"a2=";cin>>c2;cout<<"这两个数的差是:"<<c1.real-c2.real<<endl;return 0;}int Real::qiuji(Real&c1,Real&c2) //类Real中成员函数qiuji()定义{cout<<"下面进行的是实数积运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个实数:"<<endl;cout<<"a2=";cin>>c2;double t;t=c1.real*c2.real;cout<<"这两个数的积是:"<<t<<endl;return 0;}int Real::qiushang(Real&c1,Real&c2) //类Real中成员函数qiushang()定义{cout<<"下面进行的是实数商运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a1=";cin>>c1;cout<<"请输入另一个实数:"<<endl;cout<<"a2=";double t;t=c1.real/c2.real;cout<<"这两个数的和是:"<<t<<endl;return 0;}int Real::zizeng(Real&c1) //类Real中成员函数zizeng()定义{const int m=120,n=121;char x=m,y=n;cout<<"下面进行的是实数自增运算";cout<<"x:自增"<<"y:停止"<<endl;cout<<"a=";cin>>c1;char z;for(int i=0;z;i++){cin>>z;if(z==x){c1.real=c1.real+1;continue;}if(z==y)break;if(z!=x&&z!=y){cout<<"Error!!!";return 0;}}cout<<"执行了"<<i<<"次自增运算:"<<endl;cout<<"执行后a="<<c1.real<<endl;return 0;}int Real::zijian(Real&c1) //类Real中成员函数zijian()定义{const int m=120,n=121;char x=m,y=n;cout<<"下面进行的是实数自减运算";cout<<"请输入一个实数:"<<endl;cout<<"a=";cin>>c1;cout<<"x:自减y:停止"<<endl;cout<<"请输入字母:";char z;for(int i=0;z;i++){cin>>z;if(z==x){c1.real=c1.real-1;continue;}if(z==y)break;if(z!=x&&z!=y){cout<<"Error!!!";return 0;}}cout<<"执行了"<<i<<"次自增运算:"<<endl;cout<<"执行后a="<<c1.real<<endl;return 0;}int Real::pingfang(Real&c1) //类Real中成员函数pingfang()定义{cout<<"下面进行的是实数平方运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a=";cin>>c1;double t;t=c1.real*c1.real;cout<<"a的平方是:"<<t<<endl;return 0;}int Real::fanggen(Real&c1) //类Real中成员函数fanggen()定义{cout<<"下面进行的是实数方根运算:"<<endl;cout<<"请输入一个实数:"<<endl;cout<<"a=";cin>>c1;double t;if(c1.real>=0)t=sqrt(c1.real);else{cout<<"math error!!!"<<endl;return 0;}cout<<"a的平方根是:"<<t<<endl;return 0;}istream & operator>>(istream &input,Real&c) //输入>>运算符重载函数定义{input>>c.real;return input;}ostream & operator<<(ostream&output,Real&c) //输入<<运算符重载函数定义{output<<c.real<<endl;return output;}istream & operator>>(istream &input,Complex_0&c) //输入>>运算符重载函数定义{input>>c.real>>c.imag;return input;}ostream & operator<<(ostream&output,Complex_0&c) //输入<<运算符重载函数定义{if(c.real!=0&&c.imag>0){output<<"("<<c.real<<"+"<<c.imag<<"i)";return output;}else if(c.real!=0&&c.imag<0){output<<"("<<c.real<<c.imag<<"i)";return output;}else if(c.real==0&&c.imag!=0){output<<c.imag<<"i";return output;}else{output<<c.real;return output;}}int shishu() //定义一个函数shishu(),进行对实数类Real的调用{char x;cout<<"下面进行的是实数运算:"<<endl;cout<<" a:求和"<<" b:求差"<<" "<<"c:求积"<<" d:求商"<<endl;cout<<" e:自增"<<" f:自减"<<" "<<"g:求平方"<<" h:求方根"<<endl;cout<<"请选择实数计算类型,输入计算类型前面字母:"<<endl;cin>>x;Real c1,c2,c3;switch(x) //switch语句用于判断需要进行的判断类型{case 97:c3.qiuhe(c1,c2);break;case 98:c3.qiucha(c1,c2);break;case 99:c3.qiuji(c1,c2);break;case 100:c3.qiushang(c1,c2);break;case 101:c3.zizeng(c1);break;case 102:c3.zijian(c1);break;case 103:c3.pingfang(c1);break;case 104:c3.fanggen(c2);break; //根据判断的结果调用Real类的各个成员函数,实现运算default:cout<<"Error!!!"<<endl;}return 0;}int xushu() //定义一个函数xushu(),进行对复数类Complex_0的调用{char x;cout<<"下面进行的是复数运算:"<<endl;cout<<" a:求和"<<" b:求差"<<" c:求积"<<" d:求商"<<" e:取模"<<endl;cout<<" f:求平方"<<" g:求共轭"<<" h:求向量角"<<" i:求夹角"<<endl;cout<<"请选择复数计算类型,输入计算类型前面字母:"<<endl;cin>>x;Complex_0 c1,c2,c3;switch(x) //switch语句用于判断需要进行的判断类型{case 97:c3.qiuhe(c1,c2);break;case 98:c3.qiucha(c1,c2);break;case 99:c3.qiuji(c1,c2);break;case 100:c3.qiushang(c1,c2);break;case 101:c3.qumo(c1);break;case 102:c3.pingfang(c1);break;case 103:c3.gonge(c1);break;case 104:c3.dujiao(c2);break;case 105:c3.jiajiao(c1,c2);break; //根据判断的结果调用complex_0类的各个成员函数,实现运算default:cout<<"Error!!!"<<endl;}return 0;}int xunhuan() //定义一个函数xunhuan(),完成函数shishu()和xushu()具体调用{cout<<" 实数:R 或r"<<" "<<"复数:X 或x"<<endl;cout<<endl;cout<<"请按上述提示选择计算类型,输入计算类型前的字母:"<<endl;char a;cin>>a;switch(a) //switch语句用于判断需要进行的判断类型{case 'R':shishu();break;case 'r':shishu();break;case 'X':xushu();break;case 'x':xushu();break; //用于判断调用函数,分别具体实现实数或者复数的操作default:cout<<"Error!!!"<<endl;}cout<<"***************************************************************"<<endl; int b;cout<<"1:屏幕上保存运算结果继续运算2:清屏运算结果继续运算3:退出"<<endl;cout<<"请选择:‘1’or‘2’or‘3’"<<endl;cin>>b;switch(b){case 1: cout<<"***************************************************************"<<endl;xu nhuan();break; //函数的嵌套调用,实现循环case 2:system("cls");cout<<endl;cout<<" "<<"复数计算器"<<endl;cout<<endl;xunhuan();break;//运用清屏函数,清除屏幕数据,函数嵌套,实现循环case 3:cout<<"谢谢使用!!!"<<endl;return 0;default:cout<<"Error!!!"<<endl;cout<<"1:屏幕上保存运算结果继续运算2:清屏运算结果继续运算3:退出"<<endl;cout<<"请选择:‘1’or‘2’or‘3’"<<endl;cin>>b; cout<<"***************************************************************"<<endl;xu nhuan();}return 0;}int main() //定义主函数{const int R=82,r=114;const int X=70,x=102;cout<<endl;cout<<" "<<"复数计算器"<<endl;//输出这是一个复数计算器cout<<endl;xunhuan();//调用函数xunhuan()return 0;}。
百通计算器算复数复数是数学中的一种特殊数,由实数和虚数组成。
实数由有理数和无理数组成,而虚数是以虚数单位i表示的数。
计算复数的过程可以通过百通计算器来实现,下面将详细介绍如何使用百通计算器进行复数的加减乘除及其他常见计算。
首先,打开百通计算器,并将计算模式设置为复数计算模式。
现代的计算器通常都支持复数计算,所以在设置中选择复数模式即可。
接下来介绍复数的表示形式。
复数由一个实数部分和一个虚数部分组成,通常可以表示为"a + bi"的形式,其中a为实数部分,b为虚数部分。
在百通计算器中,复数的输入形式为"实数+虚数单位i",例如1+2i表示实部为1,虚部为2的复数。
一、复数的加法运算:复数的加法运算遵循实部相加,虚部相加的原则。
例如计算(1+2i)+(3+4i),首先输入(1+2i),然后按下加号键,再输入(3+4i),最后按下等号键即可得到结果。
百通计算器将自动进行实部和虚部的相加,输出结果为4+i。
二、复数的减法运算:复数的减法运算遵循实部相减,虚部相减的原则。
例如计算(1+2i)-(3+4i),操作步骤与加法运算类似,只需将减号键代替加号键即可。
百通计算器将自动进行实部和虚部的相减,输出结果为-2-2i。
三、复数的乘法运算:复数的乘法运算遵循分配律和乘法公式。
例如计算(1+2i)*(3+4i),首先输入(1+2i),然后按下乘号键,再输入(3+4i),最后按下等号键即可得到结果。
百通计算器将自动按照乘法公式展开,最终输出结果为-5+10i。
四、复数的除法运算:复数的除法运算需要先将除数与被除数进行共轭复数处理,然后利用乘法运算进行计算。
例如计算(1+2i)/(3+4i),首先输入(1+2i),然后按下除号键,再输入(3+4i),最后按下等号键即可得到结果。
百通计算器将自动进行共轭复数处理,并将除法转化为乘法运算,输出结果为0.44+0.08i。
五、其他复数的计算:在百通计算器中,除了基本的加减乘除运算外,还可以进行复数的指数运算、对数运算、三角函数运算等。
天雁计算器复数键
天雁计算器是一种特定型号的计算器,通常它的复数键会标识为"C" 或 "CPLX" 或 "COMPLEX",具体标识可能会有所不同取决于具体的型号。
复数键的作用是允许用户在计算器中进行复数运算。
使用复数键时,可以输入和操作复数数值,包括实部和虚部。
可以通过按下复数键来进入复数模式,并使用相应的按键来输入复数的实部和虚部,然后进行复数运算,如加法、减法、乘法、除法等。
除了复数键之外,天雁计算器通常还会配备其他与复数相关的功能键,如共轭键(Conj),用于计算复数的共轭,以及极坐标键(Polar),用于将复数转换为极坐标形式表示。
请注意,不同的天雁计算器型号可能存在一些差异,因此最好参考具体的用户手册或产品说明书,以确定复数键和相关功能的具体位置和使用方法。
卡西欧计算器复数化为极坐标形式复数(也称为虚数)是由一个实数部分和一个虚数部分组成的数。
卡西欧计算器可以将复数表示为极坐标形式。
在极坐标形式中,复数用一个模和一个幅角表示。
模表示复数到原点的距离,幅角表示复数与x轴正半轴的夹角。
复数的极坐标形式可以通过复数的雅可比公式来计算。
雅可比公式是复平面上与x轴正半轴夹角为θ,模为r的复数的极坐标形式公式。
在卡西欧计算器上计算复数的极坐标形式可以使用以下步骤:1. 将复数表示为实部和虚部的形式。
复数通常写成a + bi的形式,其中a是实部,b是虚部。
例如,复数3 + 4i的实部是3,虚部是4。
2. 计算复数的模。
复数的模由以下公式给出:r = √(a² + b²),其中a是实部,b是虚部。
对于复数3 + 4i,模r = √(3² + 4²) = √(9 + 16) = √25 = 5。
3. 计算复数的幅角。
复数的幅角由以下公式给出:θ = atan2(b, a),其中b是虚部,a是实部。
幅角的单位是弧度而不是角度。
对于复数3 + 4i,幅角θ = atan2(4, 3) ≈ 0.93 弧度。
4. 使用模和幅角写出复数的极坐标形式。
利用步骤2和步骤3中计算得到的模和幅角,可以将复数写成极坐标形式。
对于复数3 + 4i,极坐标形式为5∠0.93。
卡西欧计算器提供了计算复数的模和幅角的函数。
这样可以更方便地计算复数的极坐标形式。
在卡西欧计算器上,可以按如下步骤进行计算:1. 输入复数的实部和虚部。
使用计算器的数字键和运算符键,输入复数的实部和虚部。
2. 使用计算器的模函数计算复数的模。
在卡西欧计算器上,可以使用函数键和相关的函数名称来计算复数的模。
例如,可以使用sqrt函数计算平方根。
输入sqrt(a²+ b²),其中a和b是复数的实部和虚部。
3. 使用计算器的幅角函数计算复数的幅角。
在卡西欧计算器上,可以使用函数键和相关的函数名称来计算复数的幅角。
科学计算器进⾏复数运算的⽅法
科学计算器计算复数 (KK-82MS-1)
复数由实部和虚部组成:实部即为X,虚部为Y,看作是直⾓坐标系,其计算形式如同直⾓坐标系与极坐标系之间的换算。(计算器不同,计算
⽅法也不同)
计算举例
1.代数式化成极坐标式 例如: 3 + j 4 = 5 /53.13º 步骤: POL↓(3,4)。结果=5; 再按键rcl↓F(即tan键)↓。 结果等于53.13.(注意:F键
即tan键)
2.极坐标化成代数式 例如: 15 /-50º = 9.64- j11.49
按键步骤:SHIFT↓REC↓(15,-50)。结果等于9.64. 再按rcl↓F (即tan键)。结果等于-11.49.
3.代数式的加减乘除 例如: ( 5 - j 4 ) × ( 6 + j 3 ) = 42 - j 9 = 42.953/-12.095º
1.步骤:先进⾏简单的加减运算得到42 - j 9。 POL↓(42,-9)。结果等于42.953;
再rcl↓F(即tan键)。结果等于-12.095.
4.极坐标式的加减乘除 例:电路原理217页习题5-10的(1):I1=5 /17ºA;I2=7/-42ºA;则电流只和为:I=5 /17ºA+ 7/-42ºA = 9.98 - j3.19 = 22.213/-
17.788º
步骤:先将5 /17ºA化成代数式4.78+j1.46(具体参照上⽂极坐标化成代数式),将7/-42ºA化成代数式5.20-j4.68;然后两式相加9.98-j3.22.然后
转换成极坐标。如进⾏其它运算只需将乘号换成要进⾏的计算号即可。
卡西欧计算器复数化为极坐标形式卡西欧计算器是现代生活中不可或缺的智能工具之一,它简便而强大的功能使我们在各类数学问题中得到准确的答案。
在数学应用领域中,尤其是在复数计算方面,卡西欧计算器作为一种多功能工具,可以将复数化为极坐标形式,为我们解决问题提供了更多的可能性和便利。
复数是数学中的一种特殊形式,由实数部分和虚数部分组成。
而极坐标形式则将一个复数转化成模长和辐角的形式,使得我们更容易理解和操作。
卡西欧计算器通过简单的操作步骤,就可以实现将复数转化成极坐标形式的功能。
使用卡西欧计算器将复数转化为极坐标形式的方法如下:1. 打开计算器并选择复数模式(COMPLEX MODE),进入复数计算的界面;2. 输入待转化的复数,并找到对应的功能键,一般是“<-POL”或“->POL”;3. 按下对应的键,计算器会自动将复数转化为极坐标形式,并显示在屏幕上。
值得注意的是,在计算器上,极坐标形式通常以两个数值表示,第一个数值代表模长(r),第二个数值表示辐角(θ),通常单位为弧度。
这种表示形式更贴近复数在数学中的定义,使得我们更方便地进行进一步的计算和运算。
复数的极坐标形式在求解各类复数运算问题中具有重要的意义和指导作用。
通过将复数转化为极坐标形式,我们可以更清晰地看到复数在平面上的位置和性质,进而更好地理解和运用复数的概念。
在解析几何中,极坐标形式可以帮助我们表示和分析各类曲线和图形。
比如,圆的方程通常写成极坐标形式,通过改变模长和辐角的值,我们可以绘制出不同大小和旋转角度的圆。
这对于探索和研究空间中各种物体的形态和运动规律具有重要意义。
在电路分析和信号处理领域,复数的极坐标形式也能够帮助我们理解和计算交流电路的性质和响应。
通过将复数表示成极坐标形式,我们可以轻松计算电流和电压的幅值和相位角,进而更好地分析交流电路的稳定性和频率响应。
另外,在数学和物理等学科中,复数的极坐标形式还广泛应用于解决各类方程和问题。
卡西欧计算器复数化为极坐标形式导言:卡西欧计算器是一款常见的计算工具,广泛应用于数学、物理、工程等领域。
在计算器中,可以进行复数运算,并将复数化为极坐标形式。
本文将介绍卡西欧计算器如何将复数转化为极坐标形式,并探讨极坐标形式的应用。
一、复数的定义与表示复数是由实部和虚部组成的数,可以表示为a+bi的形式,其中a 为实部,b为虚部,i为虚数单位。
在卡西欧计算器中,可以直接输入复数,并进行相应的运算。
二、复数的极坐标形式复数还可以用极坐标形式表示,即r(cosθ + isinθ)。
其中,r为复数的模,θ为辐角。
在卡西欧计算器中,可以将复数转化为极坐标形式,并进行相关计算。
三、卡西欧计算器中的复数转化为极坐标形式卡西欧计算器提供了将复数转化为极坐标形式的功能。
具体操作如下:1. 打开卡西欧计算器,选择复数模式。
2. 输入待转化的复数,以a+bi的形式输入。
3. 通过计算器的功能键,将复数转化为极坐标形式。
计算器会自动计算出模r和辐角θ的值。
4. 得到复数的极坐标形式r(cosθ + isinθ)。
四、极坐标形式的应用极坐标形式在数学和物理等领域有广泛的应用。
以下列举几个常见的应用场景:1. 复数的乘法和除法:在极坐标形式下,复数的乘法和除法变得更加简洁,只需将两个复数的模相乘或相除,辐角相加或相减即可。
2. 复数的指数表示:在极坐标形式下,复数的指数表示形式为e^(iθ),其中e为自然对数的底,θ为辐角。
3. 复数的幅角和辐角计算:在极坐标形式下,可以直观地计算复数的幅角和辐角,便于对复数进行分析和理解。
4. 极坐标图的绘制:利用复数的极坐标形式,可以绘制出复数在平面上的位置,形成极坐标图,有助于对复数进行可视化分析。
五、总结卡西欧计算器提供了将复数转化为极坐标形式的功能,使得复数运算更加方便和直观。
极坐标形式在数学和物理等领域有着广泛的应用,可以简化复数的乘除计算,方便复数的指数表示,便于计算幅角和辐角,以及绘制极坐标图等。
Dim save As StringDim a As SingleDim points, over, b, c, d, e As BooleanPrivate Sub Command1_Click(Index As Integer) If over = True ThenText1.Text = ""End IfIf b = True ThenText1.Text = Text1.Text & Trim(Str(Index)) ElseIf c = True ThenText2.Text = Text2.Text & Trim(Str(Index))ElseIf d = True ThenText4.Text = Text4.Text & Trim(Str(Index)) ElseIf e = True ThenText5.Text = Text5.Text & Trim(Str(Index)) End Ifover = FalseEnd SubPrivate Sub Command2_Click()If points = False ThenIf b = True ThenIf Text1.Text = "" ThenText1.Text = 0 & "."points = TrueElseText1.Text = Text1.Text & "."points = TrueEnd IfElseIf c = True ThenIf Text2.Text = "" ThenText2.Text = 0 & "."points = TrueElseText2.Text = Text2.Text & "."points = TrueEnd IfElseIf d = True ThenIf Text4.Text = "" ThenText4.Text = 0 & "."points = TrueElseText4.Text = Text4.Text & "."points = TrueEnd IfElseIf e = True ThenIf Text5.Text = "" ThenText5.Text = 0 & "."points = TrueElseText5.Text = Text5.Text & "."points = TrueEnd IfEnd IfEnd IfEnd SubPrivate Sub Command3_Click()If b = True ThenIf Text1.Text <> "" ThenText1.Text = Left(Text1.Text, Len(Text1.Text) - 1) End IfElseIf c = True ThenIf Text2.Text <> "" ThenText2.Text = Left(Text2.Text, Len(Text2.Text) - 1) End IfElseIf d = True ThenIf Text4.Text <> "" ThenText4.Text = Left(Text4.Text, Len(Text4.Text) - 1) End IfElseIf e = True ThenIf Text5.Text <> "" ThenText5.Text = Left(Text5.Text, Len(Text5.Text) - 1)End IfEnd IfEnd SubPrivate Sub Command4_Click(Index As Integer)Const Pi = 3.1415926Select Case IndexCase 0Text3.Text = Str(Val(Text1.Text) + Val(Text2.Text))Text6.Text = Str(Val(Text4.Text) + Val(Text5.Text))Text7.Text = Sqr(Val((Text4.Text) * Val(Text4.Text)) + (Val(Text1.Text) * Val(Text1.Text)))Text8.Text = Sqr(Val((Text2.Text) * Val(Text2.Text)) + (Val(Text5.Text) * Val(Text5.Text)))Text9.Text = Sqr(Val((Text3.Text) * Val(Text3.Text)) + (Val(Text6.Text) * Val(Text6.Text)))Case 1Text3.Text = Str(Val(Text1.Text) - Val(Text2.Text))Text6.Text = Str(Val(Text4.Text) - Val(Text5.Text))Text7.Text = Sqr(Val((Text4.Text) * Val(Text4.Text)) + (Val(Text1.Text) * Val(Text1.Text)))Text8.Text = Sqr(Val((Text2.Text) * Val(Text2.Text)) + (Val(Text5.Text) * Val(Text5.Text)))Text9.Text = Sqr(Val((Text3.Text) * Val(Text3.Text)) + (Val(Text6.Text) * Val(Text6.Text)))Case 2Text3.Text = Str(Val(Text1.Text) * Val(Text2.Text) - Val(Text4.Text) * Val(Text5.Text))Text6.Text = Str(Val(Text1.Text) * Val(Text5.Text) + Val(Text4.Text) * Val(Text2.Text))Text7.Text = Sqr(Val((Text4.Text) * Val(Text4.Text)) + (Val(Text1.Text) * Val(Text1.Text)))Text8.Text = Sqr(Val((Text2.Text) * Val(Text2.Text)) + (Val(Text5.Text) * Val(Text5.Text)))Text9.Text = Sqr(Val((Text3.Text) * Val(Text3.Text)) + (Val(Text6.Text) * Val(Text6.Text)))Case 3Text3.Text = (V al(Text1.Text) * Val(Text2.Text) + Val(Text4.Text) * Val(Text5.Text)) / (Val(Text2.Text) * Val(Text2.Text) + Val(Text5.Text) * Val(Text5.Text))Text6.Text = (Val(Text4.Text) * Val(Text2.Text) - Val(Text1.Text) * Val(Text5.Text)) / (Val(Text2.Text) * Val(Text2.Text) + Val(Text5.Text) * Val(Text5.Text))Text7.Text = Sqr(Val((Text4.Text) * Val(Text4.Text)) + (Val(Text1.Text) * Val(Text1.Text)))Text8.Text = Sqr(Val((Text2.Text) * Val(Text2.Text)) + (Val(Text5.Text) *Val(Text5.Text)))Text9.Text = Sqr(Val((Text3.Text) * Val(Text3.Text)) + (Val(Text6.Text) * Val(Text6.Text)))End Selectpoints = FalseEnd SubPrivate Sub Command6_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""over = 0points = 0save = 0End SubPrivate Sub Command7_Click()If b = True ThenText1.Text = Str(-Val(Text1.Text))ElseIf c = True ThenText2.Text = Str(-Val(Text2.Text))ElseIf d = True ThenText4.Text = Str(-Val(Text4.Text))ElseIf e = True ThenText5.Text = Str(-Val(Text5.Text))End IfEnd SubPrivate Sub Command8_Click()If Text1.Text = Text2.Text And Text4.Text = Text5.Text ThenText3.Text = "相等"Text6.Text = " "End IfIf Text1.Text <> Text2.Text Or Text4.Text <> Text5.Text ThenText3.Text = "不相等"Text6.Text = " "End IfEnd SubPrivate Sub Form_Load() points = Falseover = Falsec = Falseb = Trued = Falsee = FalseEnd SubPrivate Sub Text1_Click()b = Truec = Falsed = Falsee = FalseEnd SubPrivate Sub Text2_Click() c = Trueb = Falsed = Falsee = FalseEnd SubPrivate Sub Text4_Click() c = Falseb = Falsee = Falsed = TrueEnd SubPrivate Sub Text5_Click() e = Trueb = Falsed = Falsec = FalseEnd SubPrivate Sub 关于_Click() form2.ShowEnd Sub。
对于复数的运算利用计算器进行非常简单,下面以SHARP EL-506P型计算器为例说明复数的有关运算。
一、使用方法1.利用计算器进行复数计算必须要用计算器的度,按DRG键,使计算器显示窗中要有“DEG”标致(表示计算器进行所有带角度的运算均以“度”为单位)。
2.让计算器进入复数运算状态,分别按2ndF 和CPLX,显示窗中有“CPLX”标致,表示计算器只能进行复数的运算,而进行其它计算则是无效的。
取消则重复进行即可。
进行复数的加减乘除运算时计算器必须处于复数运算状态。
二、计算说明1.计算器中a、b的分别表示进行复数运算的实部和虑部,进行代数式输入时可以直接按此键。
2.计算器中→rθ、→xy的分别表示进行复数运算的模和角,进行极坐标式输入时必须利用上档键功能进行;同时这两个按键也是代数式和极坐标式转换的功能键。
3.计算器在进行复数运算时均是以代数式形式进行的,就是说在进行极坐标式计算时必须要先化成代数式,计算的结果也是代数式,如果希望得到极坐标式计算完成后也要进行转换。
4.显示结果运算完成后的结果就是代数式且显示的是实部,按b显示虑部,再按a就显示实部,转换成极坐标式后则按a显示模,按b显示角,也可重复显示。
5.在输入带有负号的值时,应先输入数值,再输入负号,输入负号应按+/-键。
三、计算举例1.代数式化成极坐标式例如:3 + j 4 = 5 /53.13º按键步骤:(按键动作用“↓”表示。
)3↓a↓4↓b↓2ndF↓→rθ↓显示模5,b↓显示角53.13º。
2.极坐标式化成代数式例如:15 /-50º = 9.64- j11.49按键步骤:15↓a↓50↓+/-↓b↓2ndF↓→xy↓显示实部9.64,b↓显示虑部-11.49。
3.代数式的加减乘除例如:( 5 - j 4 ) × ( 6 + j 3 ) = 42 - j 9 = 42.953/-12.095º按键步骤:5↓a↓4↓+/-↓b↓×↓6↓a↓3↓ b↓=↓显示实部42 b↓显示虑部–9。
计算器在电路复数运算中的使用引言电路复数运算是电路理论中的一个重要概念,它是通过使用复数来描述电路中元件的电压、电流和阻抗等物理量。
计算器在电路复数运算中起到了很大的作用,它可以快速、准确地进行复数的运算,方便电路设计与分析的过程。
本文将介绍计算器在电路复数运算中的应用,包括复数的表示方式、复数的四则运算、复数的幂运算以及复数在电路中的应用案例。
一、复数的表示方式在电路理论中,复数可以用直角坐标形式和极坐标形式来表示。
1.直角坐标形式直角坐标形式是使用复数的实部和虚部来表示一个复数。
在计算器中,直角坐标形式的复数通常用"a+bi"的形式表示,其中a为实部,b为虚部,i为虚数单位。
例如,一个直角坐标形式的复数可以是3+2i。
2.极坐标形式极坐标形式是通过使用复数的模和幅角来表示一个复数。
在计算器中,极坐标形式的复数通常用"r∠θ"的形式表示,其中r为模,θ为幅角。
例如,一个极坐标形式的复数可以是2∠30°。
二、复数的四则运算计算器可以实现复数的加法、减法、乘法和除法等四则运算,使得在电路复数运算中的运算结果快速获取。
以直角坐标形式为例,下面将介绍四则运算的步骤。
1.复数的加法和减法复数的加法和减法可以通过对实部和虚部进行分别的运算来实现。
例如,对于复数a+bi和c+di,其加法结果为(a+c)+(b+d)i,减法结果为(a-c)+(b-d)i。
2.复数的乘法复数的乘法可以通过分别对实部和虚部进行运算,并利用i的平方等于-1来得到结果。
例如,对于复数a+bi和c+di,其乘法结果为(ac-bd)+(bc+ad)i。
3.复数的除法复数的除法可以通过乘以复数的共轭来实现。
复数的共轭是将复数的虚部取负得到的。
例如,对于复数a+bi和c+di的除法,可以将其表示为(a+bi) / (c+di) = (a+bi)(c-di) / (c+di)(c-di),然后进行分子分母的乘法运算,得到结果。
#include<iostream>#include<cmath>#include<cstdlib>#include<cstring>#include<fstream>#include<ctime>#define EPS 1e-5 //定义精度常数using namespace std; //使用标准空间命名stdnamespace NameCComplex //定义命名空间NameCComplex{class CComplex ////定义一个CComplex类{private:double Real,Image;public:CComplex(double real=0,double image=0) //构造函数{Real=real;Image=image;}friend istream & operator>>(istream &is,CComplex &com); //重载输入friend ostream & operator<<(ostream &os,CComplex &com); //重载输出CComplex operator+(CComplex &com); //加法重载CComplex operator-(CComplex &com); //减法重载CComplex operator*(CComplex &com); //乘法重载CComplex operator+=(CComplex &com); //加法赋值重载CComplex operator-=(CComplex &com); //减法赋值重载CComplex operator*=(CComplex &com); //乘法赋值重载CComplex operator++(); //自加CComplex operator--(); //自减double mod(void); //求复数的模int operator>(CComplex &com);int operator<(CComplex &com);int operator!=(CComplex &com);int operator==(CComplex &com);};struct User //用户结构体类型定义{char szName[20]; //用户名int nTime; //使用次数int nTest; //测试次数double alAve; //平均成绩int nAdd; //加法次数int nSub; //减法次数int nMul; //乘法次数double dlScore[3]; //3次测试得分}user; //定义全局变量CComplex CComplex::operator++() //重载运算符"++",实部与虚部均加1 {Real++;Image++;return *this;}CComplex CComplex::operator--() //重载运算符"--",实部与虚部均减1 {Real--;Image--;return *this;}double CComplex::mod() //求复数的模的平方,返回实部^2+虚部^2{return Real*Real+Image*Image;}int CComplex::operator>(CComplex &com) //重载运算符">",比较模的大小{if(mod()>com.mod())return 1;elsereturn 0;}int CComplex::operator<(CComplex &com){if(mod()<com.mod())return 1; //若大,则返回1elsereturn 0;}int CComplex::operator!=(CComplex &com)//重载运算符"!=",分别判断复数的实部和虚部{if(*this==com)return 0;elsereturn 1;}istream & operator>>(istream &is,CComplex &com) //重载输入,可以输入a+bi的形式{cout<<"请输入复数:";char s[80];is>>s; //用字符串的形式接受复数int len=strlen(s); //求出字符串的长度int n=0,sign=1;//n为当前从字符串中提取出来的数字,初始化为0;sign是难道符号,初始化为正com.Image=com.Real=0;for(int k=0;k<len;k++) //判断接受的字符串是否合法{if((s[k]<'0' || s[k]> '9') && (s[k]!='+' && s[k]!='-' && s[k]!='i')){cout<<"error"<<endl;return is; //错误,输出出错信息并返回}}for(k=0;k<len;) //顺序识别字符串中各字符{if(n!=0 &&(s[k]=='-'||s[k]=='+')) //当前字符是否是符号位{com.Real=sign*n;//是符号位,且n!=0,即n已被赋值,表明当前读取的是虚部的符号n=0; //将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-') //当前字符为负号{sign=-1;k++; //给符号标志赋值}if(s[k]=='+') //当前字符为正号{sign=1;k++; //给符号标志赋值}if(s[k]=='i') //当前字符为'I'{if(k!=len-1) //判断字符'I'是否为字符串中作后一个字符cout<<"error\n"; //如果不是,说明复数数据格式错误elsecom.Image=sign*n;//是最后一个字符,复数对象已接受完,用sign*n为虚部赋值break;}while(s[k]>='0' && s[k]<='9')//当前字符在0~9之间,将数字字符转换成数字数值{n=n*10+s[k]-'0';k++;}}if(s[len-1]!='i' && n!=0)//如果最后一个字符不是'I',表示复数对象内只有实部,没有虚部{com.Real=n*sign;}return is;}ostream & operator<<(ostream &os,CComplex &com) //重载输入{if(fabs(com.Image)<EPS) // 如果虚部为0os<<com.Real; //只输出实部else if((fabs(com.Real)<EPS)) //如果实部为0os<<com.Image<<"i"; //只输出虚部else if(com.Image>0)os<<com.Real<<"+"<<com.Image<<"i";elseos<<com.Real<<com.Image<<"i"; //虚部为正return os;}CComplex CComplex::operator+(CComplex &com) //加法重载{CComplex sum;sum.Real=Real+com.Real; //实部相加sum.Image=Image+com.Image; //虚部相加return sum;}CComplex CComplex::operator*(CComplex &com) //乘法重载{CComplex multi;multi.Real=Real*com.Real-Image*com.Image; //乘积实部multi.Image=Real*com.Image+Image*com.Real; //乘积虚部return multi;}CComplex CComplex::operator-(CComplex &com) //减法重载{CComplex sub;sub.Real=Real-com.Real;sub.Image=Image-com.Image;return sub;}CComplex CComplex::operator+=(CComplex &com) //重载加法赋值{Real=Real+com.Real;Image=Image+com.Image;return *this;}CComplex CComplex::operator-=(CComplex &com) //重载减法赋值{Real=Real-com.Real;Image=Image-com.Image;return *this;}CComplex CComplex::operator*=(CComplex &com) //重载乘法赋值{double nReal=Real*com.Real-Image*com.Image;double nImage=Real*com.Image+Image*com.Real;Real=nReal;Image=nImage;return *this;}int CComplex::operator==(CComplex &com) //重载等于{if(Real==com.Real && Image==com.Image)return 1;elsereturn 0;}void Test(void) //测试函数{user.nTest++;cout<<"共10道题,做100以内的加减运算,满分100分:\n"; double real1,real2,image1,image2,real3,real4,image3,image4; CComplex answer,temp;int score=0;char op;for(int i=0;i<=9;i++){/////为复数产生随机值real1=rand()%200-100;image1=rand()%200-100;real2=rand()%200-100;image2=rand()%200-100;CComplex a(real1,image1),b(real2,image2); real3=rand()%20-10;image3=rand()%20-10;real4=rand()%20-10;image4=rand()%20-10;CComplex c(real3,image3),d(real4,image4); op=rand()%3; //产生随机加减乘法运算的三个值switch(op){case 0:answer=a+b;cout<<a<<"加上"<<b<<"等于";break;case 1:answer=a-b;cout<<a<<"减去"<<b<<"等于";break;case 2:answer=c*d;cout<<c<<"乘以"<<d<<"等于";break;}cin>>temp; //输入用户计算值if(answer==temp) //比较用户计算值{score+=10;}else{cout<<"此题做错了\n";cout<<"正确答案为:"<<answer<<endl;}}cout<<"你的最后得分是:"<<score<<endl;if(user.nTest<=3){user.alAve=0;user.dlScore[user.nTest-1]=score;for(int i=0;i<user.nTest;i++)user.alAve+=user.dlScore[i];user.alAve=user.alAve/user.nTest;}else{user.dlScore[0]=user.dlScore[1];user.dlScore[1]=user.dlScore[2];user.dlScore[2]=score;for(i=0,user.alAve=0;i<3;i++)user.alAve+=user.dlScore[i];user.alAve=user.alAve/3;}cout<<"请按任意键继续\n";cout.flush();cin.get();cin.get();}void Add() //复数加法运算函数{user.nAdd++;CComplex num1,num2,sum,Zero(0,0);cout<<"加法计算\n"<<"最少输入两个复数,并且以0结束\n"; cout<<"第一个复数:";cin>>num1;cout<<"第二个复数:";cin>>num2;sum=num1+num2;cout<<"第三个复数:";cin>>num1;int i=4;while(!(num1==Zero)){sum=sum+num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"加法结果是:"<<sum<<endl;cout<<"请按任意键继续\n";cout.flush();cin.get();cin.get();}void Sub() //复数减法预算函数{user.nSub++;CComplex num1,num2,sub,Zero(0,0);cout<<"最少输入两个复数,并且以0结束\n";cout<<"第1个复数:";cout<<"第2个复数:";cin>>num2;sub=num1-num2;cout<<"第3个复数:";cin>>num1;int i=4;while(!(num1==Zero)){sub=sub-num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"减法结果是:"<<sub<<endl;cout<<"请按任意键继续\n";cout.flush();cin.get();cin.get();}void Mul() //复数乘积函数{user.nMul++;CComplex num1,num2,mul,Zero(0,0);cout<<"乘法计算\n"<<"最少输入两个复数,并且以零结束\n"; cout<<"第一个复数:";cin>>num1;cout<<"第二个复数:";cin>>num2;mul=num1*num2;cout<<"第三个复数:";cin>>num1;int i=4;while(!(num1==Zero)){mul*=num1;cout<<"第"<<i<<"个复数:";cin>>num1;i++;}cout<<"乘法结果是:"<<mul<<endl;cout<<"请按任意键继续\n";cout.flush();cin.get();}void Add1(){user.nAdd ++;CComplex num1;cin>>num1;++num1;cout<<"自加的结果为"<<num1<<endl;cout<<"按任意键结束\n";cout.flush();cin.get();cin.get();}void Sub1() //复数自加运算函数{user.nSub++;CComplex num1;cin>>num1;--num1;cout<<"自减的结果为"<<num1<<endl;cout<<"按任意键结束\n";cout.flush();cin.get();cin.get();}void compare() //两复数比较函数{CComplex num1,num2;cout<<"输入两个复数\n";cout<<"第一个复数:";cin>>num1;cout<<"输入第二个复数\n";cin>>num2;if(num1==num2)cout<<"这两个复数相等\n";else if(num1>num2)cout<<num1<<"的模大于"<<num2<<"的模\n"; else if(num1<num2)cout<<num2<<"的模大于"<<num1<<"的模\n"; elsecout<<"这两个复数的模相等\n";cout<<"按任意键继续\n";cin.get();}void userprint() //输出用户信息函数{cout<<user.szName<<"使用的次数为:"<<user.nTime<<endl;cout<<"其中:\t加法的次数:"<<user.nAdd<<"\t减法的次数:"<<user.nSub<<"\t乘法的次数:"<<user.nMul<<endl;cout<<"\t测试次数:"<<user.nTest<<"\t平均成绩:"<<user.alAve<<endl;}void Login() //当前用户信息函数{char szName[20];cout<<"请输入您的姓名:";cin.getline(szName,20);ifstream infile;User user1;infile.open("user.dat",ios::binary|ios::in);if(!infile){cout<<"没有原始记录文件,您是第一个用户!\n";strcpy(user.szName,szName);user.nTest++;return;}infile.read((char *)&user1,sizeof(User));while(!infile.eof()){if(strcmp(user1.szName,szName)==0){user=user1;user.nTime++;cout<<"欢迎您再次使用复数计算器!";userprint();cin.get();infile.close();return;}infile.read((char *) &user1,sizeof(User));}cout<<"欢迎您再次使用复数计算器!";strcpy(user.szName,szName);user.nTime++;infile.close();return;}void SaveFile() //用户资料保存函数{userprint();fstream file;User user1;file.open("user.dat",ios::binary|ios::in|ios::out);if(!file){cout<<"文件打开错误,不能进行更新!\n";return;}file.seekp(0,ios::beg);while(!file.eof()){file.read((char *)&user1,sizeof(User));if(strcmp(user1.szName,user.szName)==0){file.seekp(-(sizeof(User)),ios::cur);file.write((char *)&user,sizeof(User));file.close();return;}}file.close();fstream outfile;outfile.open("user.dat",ios::binary|ios::app);outfile.write((char *)&user,sizeof(User));outfile.close();return;}}using namespace NameCComplex;int main(void) //主函数开始{srand(time(NULL)); //初始化随机数“种子”语句Login(); //当前用户信息函数char strChoise[20]; //定义字符串名do{system("cls");cout<<"\t这是一个简单的复数计算器程序,可以实现以下功能,请按对应的按键(1-7)\n\n\n";cout<<"\t=========================MENU===========================\ n";cout<<"\t1:多复数加法,以0结束\n";cout<<"\t2:多复数减法,以0结束\n";cout<<"\t3:测试100以内的复数加减乘法运算,1次测试10道题\n"; cout<<"\t4:多复数乘法,以0结束\n";cout<<"\t5:复数自加\n:";cout<<"\t6:复数自减\n:";cout<<"\t7:复数比较\n:";cout<<"\t0:退出程序\n\n:";cout<<"\t请您选择:";cin>>strChoise;if(strcmp(strChoise,"1")==0) //用户选1则调用Add()函数Add();else if(strcmp(strChoise,"2")==0) //用户选2则调用Sub()函数Sub();else if(strcmp(strChoise,"3")==0) //用户选3则调用Test()函数Test();else if(strcmp(strChoise,"4")==0) //用户选4则调用Add()函数Mul();else if(strcmp(strChoise,"5")==0) //用户选5调用Add1()函数Add1();else if(strcmp(strChoise,"6")==0) //用户选6则调用Sub1()函数Sub1();else if(strcmp(strChoise,"7")==0) //用户选7则调用Compare()函数compare();else if(strcmp(strChoise,"0")==0) //用户选0则结束调用函数{cout<<"\n\n\t欢迎下次继续使用复数计算器!\n\n";break;}else{cout<<"\n\t输入错误,请按任意键继续!\n";cin.get();cin.get();}}while((strcmp(strChoise,"0")));SaveFile(); //调用用户资料保存函数return 0;}。