- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告
( 2014 / 2015 学年 第 二 学期)
课程名称
面向对象程序设计及C++
实验名称
实验四:流运算符的重载及文件的使用
实验时间
2016
年
5
月
30
日
指导单位
计算机研究中心
指导教师
陈景强
学生姓名
班级学号
学院(系)
专 业
PAGE 7
实 验 报 告
实验名称
流运算符的重载及文件的使用
指导教师
陈景强
实验类型
验证
实验学时
2
实验时间
4
实验目的和要求
(1)掌握在自定义的类中重载输入流运算符和输出流运算符,并输入/输出本类对象。
(2)掌握文件操作的步骤和方法,能利用程序建立数据文件、打开数据文件并进行相关操作。
二、实验环境(实验设备)
硬件: 微型计算机
软件: Microsoft Visual C++6.0
三、实验原理及内容
实验题目(1): 在多态性实验第2题的基础上,在复数类中增加输入流运算符和输出流运算符的重载,主函数通过“cin对象名”输入对象的值,通过“cout对象名”输出对象的值,输出复数值时将原来主函数中“对象名.print( )”改成“cout对象名”形式。
在上一步完成的基础上,将复数类改成一个类模板,只设一个模板参数,即实部和虚部用同一种类型,修改相应的代码,完成输入、输出功能。
实验解答:
(1)源代码参考多态性实验第2题。
(2)记录重载operator函数的代码:
ostream operator(ostream s,const Complex c)
{
coutc.real;
if(c.imag!=0)
{
if(c.imag0)cout+;
coutc.imagi;
}
coutendl;
return s;
}
(3) 将类改写成类模板:(多态性实验代码中的重载符号仅保留加法+,其他可省略)#includeiostream
using namespace std;
template class T
class Complex
{
private:
T real;
T imag;
public:
Complex(T r=0,T i=0)
{
real=r;
imag=i;
}
friend Complex operator+(const Complex a,const Complex b);
friend Complex operator-(const Complex a,const Complex b);
friend ostream operator(ostream out,const Complex a);
friend istream operator(istream in,const Complex a);
Complex operator*(const Complex a);
Complex operator/(const Complex a);
};
template class T
ostream operator(ostream out,const Complex a)
{
outa.real;
if(a.imag!=0)
{
if(a.imag0)
out+;
outa.imagi;
}
outendl;
return out;
}
template class T
istream operator(istream in,const Complex a)
{
ina.real;
if(a.imag!=0)
{
if(a.imag0)
in+;
ina.imagi;
}
return in;
}
template class T
Complex T operator+(const Complex T a,const Complex T b)
{
Complex T temp;
temp.real=a.real+b.real;
temp.imag=a.imag+b.imag;
return temp;
}
template class T
Complex T operator-(const Complex T a,const Complex T b)
{
Complex T temp;
temp.real=a.real-b.real;
temp.imag=a.imag-b.imag;
return temp;
}
template class T
Complex T Complex T::operator*(const Complex T a
您可能关注的文档
最近下载
- 2023届高考数学一轮复习专题:三角函数有关w的值及w取值范围的求法题型总结.docx
- 2024新湘艺版音乐七年级上册第二单元 汉族民歌 课件.pptx
- 教师资格证小学科目二默写本《教育知识与能力》.pdf VIP
- 江苏省淮安市淮安区2022-2023学年统考八年级上学期期中数学试卷 .docx
- GB-T17167-1997企业能源计量器具配备和管理导则.pdf
- 【优质】某地区一级水电站建设项目可行性研究报告-优秀甲级资质可研报告180页.doc
- 灶具成品检测标准.pdf
- 腹股沟疝(共27张PPT).pptx
- 部编版小学语文五年级上册第四单元整体解读与教学建议.doc
- 幼儿园 中班数学《10以内的倒数》.ppt VIP
文档评论(0)