c++求大神写一个代码

#include<iostream>using namespace std;class fushu{public:void getsfz(const int &m){sfz=m;}void getsfm(const int &m){sfm=m;}void getxfz(const int &m){xfz=m;}void getxfm(const int &m){xfm=m;}void print()const{cout<<"这个复数是:"<<sfz<<"\\"<<sfm<<"+"<<xfz<<"\\"<<xfm<<"i"<<endl;}private:int sfz;int sfm;int xfz;int xfm;};int main(){fushu miss;int tempz,tempm;cout<<"输入一个复数实部的分子和分母:"<<endl;cin>>tempz>>tempm;miss.getsfz(tempz);miss.getsfm(tempm);cout<<"输入一个复数虚部的分子和分母:"<<endl;cin>>tempz>>tempm;miss.getxfz(tempz);miss.getxfm(tempm);miss.print();return 0;}

#include<iostream>
using namespace std;
class fushu
{
public:
void getsfz(const int &m)
{
sfz=m;
}
void getsfm(const int &m)
{
sfm=m;
}
void getxfz(const int &m)
{
xfz=m;
}
void getxfm(const int &m)
{
xfm=m;
}
void print()const
{
cout<<"这个复数是:"<<sfz<<"\\"<<sfm<<"+"<<xfz<<"\\"<<xfm<<"i"<<endl;
}
//因为是按值返回,所以=就不重载了
const fushu operator+(const fushu &scd)
{
fushu temp;
temp.sfz=sfz*(scd.sfm)+sfm*(scd.sfz);
temp.sfm=sfm*(scd.sfm);
temp.xfz=xfz*(scd.xfm)+xfm*(scd.xfz);
temp.xfm=xfm*(scd.xfm);
return temp;
}//加法运算
const fushu operator-(const fushu &scd)
{
fushu temp;
temp.sfz=sfz*(scd.sfm)-sfm*(scd.sfz);
temp.sfm=sfm*(scd.sfm);
temp.xfz=xfz*(scd.xfm)-xfm*(scd.xfz);
temp.xfm=xfm*(scd.xfm);
return temp;
}//减法运算
const fushu operator*(const fushu &scd)
{
fushu temp;
temp.sfz=sfz*(scd.sfz)*xfm*(scd.xfm)-sfm*(scd.sfm)*xfz*(scd.xfz);
temp.sfm=sfm*(scd.sfm)*xfm*(scd.xfm);
temp.xfz=sfz*(scd.xfz)*xfm*(scd.sfm)+xfz*(scd.sfz)*sfm*sfm*(scd.xfm);
temp.xfm=sfm*(scd.sfm)*xfm*(scd.xfm);
return temp;
}//乘法运算
const fushu operator/(const fushu &scd)
{
fushu temp;
double a=sfz/sfm,b=xfz/xfm,c=(scd.sfz)/(scd.sfm),d=(scd.xfz)/(scd.xfm);
temp.sfz=a*c+b*d;
temp.sfm=c*c+d*d;
temp.xfz=b*c-a*d;
temp.xfm=temp.sfm;
return temp;
}//除法运算 此处比较特殊,采取强制类型转换先把int转换为double运算除法然后再转换为int计算出一个取整的近似值
private:
double sfz;
double sfm;
double xfz;
double xfm;
};
int main()
{
fushu miss;
fushu wusheng;
fushu pis;
int tempz,tempm;
cout<<"输入一个复数实部的分子和分母:"<<endl;
cin>>tempz>>tempm;
miss.getsfz(tempz);
miss.getsfm(tempm);
cout<<"输入一个复数虚部的分子和分母:"<<endl;
cin>>tempz>>tempm;
miss.getxfz(tempz);
miss.getxfm(tempm);
miss.print();
cout<<"输入第二个复数实部的分子和分母:"<<endl;
cin>>tempz>>tempm;
wusheng.getsfz(tempz);
wusheng.getsfm(tempm);
cout<<"输入第二个复数虚部的分子和分母:"<<endl;
cin>>tempz>>tempm;
wusheng.getxfz(tempz);
wusheng.getxfm(tempm);
wusheng.print();
pis=miss+wusheng;
cout<<"这两个复数的和可以求出:"<<endl;
pis.print();
pis=miss-wusheng;
cout<<"这两个复数的差可以求出:"<<endl;
pis.print();
pis=miss*wusheng;
cout<<"这两个复数的积可以求出:"<<endl;
pis.print();
pis=miss/wusheng;
cout<<"这两个复数的商可以求出:"<<endl;
pis.print();
return 0;
}

//这里由于除法的运算比较特殊,只能把除法弄成double型显示分数,不然很多运算全会显示0/0就是之前那个程序,具体用哪个你自己抉择吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-06
代码如下:
#include<cstdio>
#include<queue>
#include<cctype>

using namespace std;
queue<char>q;
int main()
{
char c;
while((c=getchar())!=EOF&&isalpha(c)==0);
ungetc(c,stdin);
while((c=getchar())!=EOF)
{
ungetc(c,stdin);
while((c=getchar())!=EOF&&isalpha(c)==0);
ungetc(c,stdin);
while((c=getchar())!=EOF&&isalpha(c))
q.push(c);
while((c=getchar())!=EOF&&isalpha(c))
putchar(c-'a'+'A');
putchar('.');
while(q.size())
{
putchar(q.front());
q.pop();
}
putchar('\n');
while((c=getchar())!=EOF&&isalpha(c)==0);
ungetc(c,stdin);
}
return 0;
}//每行输入姓和名就行了,用空格或换行区分,不要有奇怪的字符,输完了按Enter再按Ctrl+z再按Enter再按Ctrl+z
相似回答