高等程序设计实验报告总结归纳精品推荐.docx
- 文档编号:25252240
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:24
- 大小:20.03KB
高等程序设计实验报告总结归纳精品推荐.docx
《高等程序设计实验报告总结归纳精品推荐.docx》由会员分享,可在线阅读,更多相关《高等程序设计实验报告总结归纳精品推荐.docx(24页珍藏版)》请在冰豆网上搜索。
高等程序设计实验报告总结归纳精品推荐
高等程序设计实验报告
实验名称
实验12运算符重载
(2)
系别
姓名
学号
班级
实验时间
实验地点
实验成绩
一、实验目的及要求
进一步理解运算符重载,运用成员函数和友元函数等方法实现运算符的重载。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
硬件设备:
联网的个人计算机
操作系统:
Windowsxp
编译系统:
DevC++
三、实验内容及步骤(包含简要的实验步骤流程)
1、重载函数调用运算符(),将以下的二维数组的下标表示方法:
chessBoard[row][column]改为常用的表示方法:
chessBoard(row,column)
2、重载下标运算符使之返回集合中最大的元素、次最大的元素以及第三大的元素。
3、开发多项式类Polynomial,多项式的每一项用数组表示,每项包含一个系数和一个指数。
例如:
2x4的指数为4,系数为2。
请开发一个完整的Polynomial类,包括构造函数、析构函数以及"get"函数和"set"函数。
该类还要提供下述重载的运算符(分别使用成员函数和友元函数):
1)重载加法运算符+,将两个多项式相加;
2)重载减法运算符-,将两个多项式相减;
3)重载赋值运算符=,将一个多项式赋给另外一个多项式;
4)重载乘法算符*,将两个多项式相乘;
5)重载加法赋值运算符+=、减法赋值运算符-=以及乘法赋值运算符*=。
4.设计一个日期类Date,,要求:
(1)包含年(year)、月(month)和日(day)私有数据成员。
(2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-、重载输出运算符<<与输入运算符>>等。
提示:
由于各C++编译器对于重载输入/出运算符为友元的兼容性都存在问题,最好重载输入/出运算符不声明为成员函数与友元函数,而声明一般函数,为编程更方便,可增加一些成员函数,比如:
voidSetYear(inty);//设置年
intSetMonth(intm);//设置月
intSetDay(intd);//设置日
intGetYear()const;//返回年
intGetMonth()const;//返回月
intGetDay()const;//返回日
staticintIsLeapyear(inty);//判断年份y是否为润年
staticintGetDays(inty);//年份y的天数
staticintGetDays(constDate&d);//日期d当前月份的天数
staticintDateToNum(constDate&d);//返回从公元1年1月1日起的天数
staticDateNumToDate(intn);//由从公元1年1月1日起的天数返回日期
润年条件:
年份能被4整除,并且年份不能被100整除,或者年份能被400整除
润年天数:
366
平年天数:
365
润年2月份天数:
29
平年2月份天数:
28
5.设计一个时间类Time,要求:
(1)包含时(hour)、分(minute)和秒(second)私有数据成员。
(2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间的减加运算符-、重载输出运算符<<与输入运算符>>等。
提示:
可仿照第4题编程实现,可将时间转换成秒数,将秒数转成时间进行辅助编程。
时间转换成秒数:
秒数=时*3600+分*60+秒
秒数转换成时间:
时=秒数/3600
分=(秒数-时*3600)/60
秒=秒数%60
为编程更方便,可增加一些成员函数,比如:
voidSetHour(inthh);//设置小时
voidSetMinute(intmm);//设置分钟
voidSetSecond(intss);//设置秒
intGetHour()const;//返回小时
intGetMinute()const;//返回分钟
intGetSecond()const;//返回秒
4、实验结果(包括程序或图表、结论陈述、数据记录及分析等,可附页)
1、重载函数调用运算符(),将以下的二维数组的下标表示方法:
chessBoard[row][column]改为常用的表示方法:
chessBoard(row,column)
代码实现:
#include
#include
usingnamespacestd;
classshuzu{
intchessBoard[8][8];
public:
shuzu(){
for(inti=0;i<8;i++)
for(intj=0;j<8;j++)
chessBoard[i][j]=i+j;
}
intoperator()(inta,intb){returnchessBoard[a][b];}
};
intmain()
{
shuzua;
cout<<"输出(6,7)="< cout<<"矩阵:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等 程序设计 实验 报告 总结 归纳 精品 推荐