实验报告3—运算符重载.doc

上传人:飞****2 文档编号:60092055 上传时间:2022-11-13 格式:DOC 页数:11 大小:97KB
返回 下载 相关 举报
实验报告3—运算符重载.doc_第1页
第1页 / 共11页
实验报告3—运算符重载.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《实验报告3—运算符重载.doc》由会员分享,可在线阅读,更多相关《实验报告3—运算符重载.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实 验(实训)报 告项 目 名 称 实验三 运算符重载 所属课程名称 面向对象程序设计 项 目 类 型 验证性 实验(实训)日期 2012.4.13/4.20 班 级 学 号 姓 名 指导教师 刘亚楠 浙江财经学院教务处制一、实验(实训)概述:【目的及要求】1. 进一步了解运算符重载的概念和使用方法。2. 掌握几种常用的运算符重载的方法。3. 了解在Visual C+6.0环境下进行运算符重载要注意的问题。【基本原理】见谭浩强教材和课件第10章内容【实施环境】(使用的材料、设备、软件)Visual C+ 6.0注意:所有回答内容用蓝色字体标明!二、实验(实训)内容:第1题 填空【项目内容】在下

2、面的空白处填写正确答案。1假设a和b是两个整型变量,我们用a+b的形式求这两个变量的和:假设c和d为浮点型变量,我们用c+d的形式求这两个变量的和。显然,运算符+具有不同的用途,这是_的例子。2 关键字_引入了重载运算符函数的定义。3 要对类对象使用运算符,除了运算符_和_以外,其它的都必须重载。4 重载不能改变运算符的优先级、操作数的个数和_。5 C+中不能重载的运算符有_、_、_、_和_。第2题 课后习题1【项目内容】定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。【方案设计】请在此填写完整的程

3、序代码。回答:【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程,即输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579 (输出)回答:(请写出程序运行结果,并可适当进行分析)第3题 课后习题2【项目内容】定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积

4、、商。提示:注意复数的乘、除法计算。【方案设计】请在此填写修改后的完整程序代码:回答:【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程,即输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579 (输出)回答:(请写出程序运行结果,并可适当进行分析)第4题 课后习题3【项目内容】定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也

5、可以其中有一个是整数,顺序任意。例如:c1+c2, i+c1, c1+i均合法(设i为整数,c1,c2为复数)。编程序,分别求两个复数之和、整数和复数之和。【方案设计】请在此填写完整的程序代码。回答:【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程,即输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579 (输出)回答:(请写出程序运行结果,并可适当进行分析)第5题 重载Date类的加法

6、“+”【项目内容】有如下日期Date类:/ 头文件Date.h#include using namespace std;class Dateprivate: unsigned year,month,day;public:Date(unsigned y=2010,unsigned m=1, unsigned d=1): year(y),month(m),day(d) void DisplayDate() coutDate is day/month/yearendl; Date operator+ (int); /对当前对象加1天 Date operator+ (int d); /对当前对象加d天

7、 ;/类定义文件Date.cpp#include #include “Date.husing namespace std;Date Date:operator+(int)int y=year,m=month,d=day;day+; switch(month)case 1:case 3:case 5:case 7:case 8:case 10:day=(day31)?(month+,1):day;break;case 4:case 6:case 9:case 11:day=(day30)?(month+,1):day;break;case 2: if (year%4=0&year%100!=0|

8、year%400=0) day=(day29)?(month+,1):day; /是闰年else day=(day28)?(month+,1):day;break;case 12: day=(day31)?(year+,month=1,1):day;break; /end of switchDate temp(y,m,d);return temp; /返回计算前结果对象(值)Date Date:operator+(unsigned d)d+=day; int flag, y=year,m=month; do flag=0;switch(m)case 1:case 3:case 5:case 7

9、:case 8:case 10:d=(d31)?(flag=1,m+,d-=31):d;break;case 4:case 6:case 9:case 11:/请将此部分实现语句填写完整case 2: /请将此部分实现语句填写完整case 12: /请将此部分实现语句填写完整 /end of switchwhile (flag);Date temp(y,m,d);return temp; /返回计算结果对象值/主函数main.cpp#include #include “Date.husing namespace std;int main() Date d1(2009,12,31), d2;d1

10、.DisplayDate();d2.DisplayDate();d2=d1+5;d2.DisplayDate();d1+;d1.DisplayDate();return 0;【方案设计】请在此将运算符重载函数operator+的定义代码填写完整。回答:Date Date:operator+(unsigned d)d+=day; int flag, y=year,m=month; do flag=0;switch(m)case 1:case 3:case 5:case 7:case 8:case 10:d=(d31)?(flag=1,m+,d-=31):d;break;case 4:case 6

11、:case 9:case 11:/请将此部分实现语句填写完整case 2: /请将此部分实现语句填写完整case 12: /请将此部分实现语句填写完整 /end of switchwhile (flag);Date temp(y,m,d);return temp; /返回计算结果对象值【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程:输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579

12、 (输出)回答:(请写出程序运行结果,并可适当进行分析)第6题 课后习题4【项目内容】有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。【方案设计】请在此填写完整的程序代码。回答:【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程,即输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579 (输出)回答:(请写出程序运行结果,并可适当进行分析)第7题 课后习题5【项目内容】在第6题的基础上,重载流插入运算符“”,使之能用于该矩阵的输入和输出。【方案设计】请在此填写完整的程序代码。回答:【实验(实训)过程】(步骤、记录、数据、程序等)提示:请如实记录你在实验过程中出现的错误(如发现错误无法解决,请举手) ,对程序的错误进行修改并记录。回答:(若无错误请写“无”)【结论】(结果、分析)提示:请记录该程序的运行过程,即输入输出。比如:123 456(表示输入,如果没有输入,则没有这一行)a+b=579 (输出)回答:(请写出程序运行结果,并可适当进行分析)三、指导教师评语及成绩:评语:成绩: 指导教师签名: 批阅日期:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁