重载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学理学院
信息与计算科学专业操作性实验报告
年级:2015级姓名:郭峰学号:201511101105 指导教师:张志坚
实验课程名称: C++程序设计开课实验室:理学楼210
实验内容:
1.实验/作业题目:
用运算符重载写一个分数的四则运算
2.实验/作业课时:
两课时
3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能):
实验环境:机房
实验内容:
用运算符重载写一个分数的四则运算,四则运算包括加减乘除,要对
四个运算符进行重载,重载运算符要用上operator做声明,细节要
注意
完成实验要求的知识或技能:
1、学会如何构造函数
2、学会定义一个运算符重载
3、了解重载的本质就是函数的重载
4、要理解运算符重载可以加上友元函数更加明了
5、逻辑关系的理解。
4.程序结构(程序中的函数调用关系图)
#include
using namespace std;
class fenshu
{ public:
void input(); 输入函数成员
friend fenshu operator+(fenshu &c1,fenshu &c2);定义为友元函数, friend fenshu operator-(fenshu &c1,fenshu &c2);重载函数
friend fenshu operator*(fenshu &c1,fenshu &c2);
friend fenshu operator/(fenshu &c1,fenshu &c2);
void display();
private:
int fenzi;
int fenmu;
char fenshuxian; 数据声明
};
void fenshu::input()
{
//cout<<"请输入两个分数:";
cin>>fenzi;
cin>>fenshuxian;
cin>>fenmu;
}
fenshu operator+(fenshu &c1,fenshu &c2) 友元函数可以不作为
类的成员可
以较好地调
用
{
fenshu c;
c.fenzi=c1.fenmu*c2.fenzi+c2.fenmu*c1.fenzi;
c.fenmu=c1.fenmu*c2.fenmu;
c.fenshuxian=c1.fenshuxian;
return c;
}
fenshu operator-(fenshu &c1,fenshu &c2)
{
fenshu c;
c.fenzi=c1.fenmu*c2.fenzi-c2.fenmu*c1.fenzi;
c.fenmu=c1.fenmu*c2.fenmu;
c.fenshuxian=c1.fenshuxian;
return c;
}
fenshu operator*(fenshu &c1,fenshu &c2)
{
fenshu c;
c.fenzi=c1.fenzi*c2.fenzi;
c.fenmu=c1.fenmu*c2.fenmu;
c.fenshuxian=c1.fenshuxian;
return c;
}
fenshu operator/(fenshu &c1,fenshu &c2)
{
fenshu c;
c.fenzi=c1.fenzi*c2.fenmu;
c.fenmu=c1.fenmu*c2.fenzi;
c.fenshuxian=c1.fenshuxian;
return c;
}
void fenshu::display()
{
cout< } int main() {fenshu c1,c2,c3,c4,c5,c6; cout <<"请输入两个分数:"< c1.input(); c2.input(); c3=c1+c2; c4=c1-c2; c5=c1*c2; c6=c1/c2; cout<<"c1+c2=";c3.display(); cout<<"c1-c2=";c4.display(); cout<<"c1*c2=";c5.display(); cout<<"c1/c2=";c6.display(); } 5.算法描述、流程图或操作步骤: 6.实验数据和实验结果(用屏幕图形表示,可另加附页):结果 程序输出结果是采用dev –c++编译器编译,界面与VC有所不同;Dev比VC编译功能更加强大。 7.改进建议: 本程序可以实现分数加减乘除,但是不能化简为最简分数,因为化简为最简的要找到最大公约数,会大大增加程序复杂度,但也会得到较好的评价。 评分标准学风--报告格式规范,文字清晰观察能力--正确描述和理解需要操作的问题 操作能力--正确输入程序,熟悉编程环境调试能力--熟练使用调试功能解决程序错误