欢迎来到天天文库
浏览记录
ID:13561189
大小:86.95 KB
页数:10页
时间:2018-07-23
《【最新精品版】C++复数计算器实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南京信息工程大学《面向对象程序设计》课程设计实验报告课程名:面向对象程序设计专业:网络工程班级:2班作者:张煜荻、吴辉煌、张一东日期:2011年5~6月实验内容题目:设计一个复数计算器。要求:1)所设计的复数计算器可以进行+、-、×运算。2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部、虚部并进行赋值。3)设计算器测试程序,对加减法进行测试,要求在两位数以内,对乘法进行测试,乘法要求为一位数的运算。小组分工姓名学号分工张煜荻20101346062程序设计、代码编写吴辉煌20101346059程序测试、报告撰写张一东20101346061资料查找、程序优化
2、程序源码#include#include#defineEPS1e-5//定义精度为10^-5usingnamespacestd;namespaceNameCalculator//定义空间NameCalculator{classCalculator//定义Calculator类{private:doubleReal,Image;//私有成员:实部Real、虚部Imagepublic:Calculator(doublereal=0,doubleimage=0)//构造函数{Real=real;Image=image;}intoperator==(Calcula
3、tor&com);//等于重载Calculatoroperator+(Calculator&com);//加法重载Calculatoroperator-(Calculator&com);//减法重载Calculatoroperator*(Calculator&com);//乘法重载Calculatoroperator*=(Calculator&com);//乘法赋值重载friendistream&operator>>(istream&is,Calculator&com);//输入重载friendostream&operator<<(ostream&os,Calculator&com);//
4、输出重载};intCalculator::operator==(Calculator&com)//重载等于{if(Real==com.Real&&Image==com.Image)return1;elsereturn0;}CalculatorCalculator::operator+(Calculator&com)//加法重载{Calculatorsum;sum.Real=Real+com.Real;sum.Image=Image+com.Image;returnsum;}CalculatorCalculator::operator-(Calculator&com)//减法重载{Calcu
5、latorsub;sub.Real=Real-com.Real;sub.Image=Image-com.Image;returnsub;}CalculatorCalculator::operator*(Calculator&com)//乘法重载{Calculatormulti;multi.Real=Real*com.Real-Image*com.Image;multi.Image=Real*com.Image+Image*com.Real;returnmulti;}CalculatorCalculator::operator*=(Calculator&com)//重载乘法赋值{double
6、nReal=Real*com.Real-Image*com.Image;doublenImage=Real*com.Image+Image*com.Real;Real=nReal;Image=nImage;return*this;}istream&operator>>(istream&is,Calculator&com)//重载输入{cout<<"请输入复数:";chars[20];is>>s;//用字符串形式接受输入的复数intlen=strlen(s);intn=0,sign=1;com.Image=com.Real=0;for(intk=0;k7、0'8、9、s[k]>'9')&&(s[k]!='+'&&s[k]!='-'&&s[k]!='i')){cout<<"输入错误"<10、11、s[k]=='+'))//字符是否是符号{com.Real=sign*n;n=0;//将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-')//
7、0'
8、
9、s[k]>'9')&&(s[k]!='+'&&s[k]!='-'&&s[k]!='i')){cout<<"输入错误"<10、11、s[k]=='+'))//字符是否是符号{com.Real=sign*n;n=0;//将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-')//
10、
11、s[k]=='+'))//字符是否是符号{com.Real=sign*n;n=0;//将原n*sign值赋给实部,将n清零,准备接受虚部的值}if(s[k]=='-')//
此文档下载收益归作者所有