高等程序设计实验报告推荐7427.pdf
《高等程序设计实验报告推荐7427.pdf》由会员分享,可在线阅读,更多相关《高等程序设计实验报告推荐7427.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高等程序设计实验报告 实验名称 实验 12 运算符重载(2)系 别 姓 名 学 号 班 级 实验时间 实验地点 实验成绩 一、实验目的及要求 进一步理解运算符重载,运用成员函数和友元函数等方法实现运算符的重载。二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)硬件设备:联网的个人计算机 操作系统:Windows xp 编译系统:Dev C+三、实验内容及步骤(包含简要的实验步骤流程)1、重载函数调用运算符(),将以下的二维数组的下标表示方法:chessBoardrowcolumn改为常用的表示方法:chessBoard(row,column)2、重载下标运算符使之返回集合中最大
2、的元素、次最大的元素以及第三大的元素。3、开发多项式类 Polynomial,多项式的每一项用数组表示,每项包含一个系数和一个指数。例如:2x4的指数为 4,系数为 2。请开发一个完整的 Polynomial 类,包括构造函数、析构函数以及get函数和set函数。该类还要提供下述重载的运算符(分别使用成员函数和友元函数):1)重载加法运算符+,将两个多项式相加;2)重载减法运算符-,将两个多项式相减;3)重载赋值运算符=,将一个多项式赋给另外一个多项式;4)重载乘法算符*,将两个多项式相乘;5)重载加法赋值运算符+=、减法赋值运算符-=以及乘法赋值运算符*=。4设计一个日期类 Date,,要求
3、:(1)包含年(year)、月(month)和日(day)私有数据成员。(2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-、重载输出运算符等。提示:由于各 C+编译器对于重载输入/出运算符为友元的兼容性都存在问题,最好重载输入/出运算符不声明为成员函数与友元函数,而声明一般函数,为编程更方便,可增加一些成员函数,比如:void SetYear(int y);/设置年 int SetMonth(int m);/设置月 int SetDay(int d);/设置日 int GetYear()const;/返回年 int GetMonth()const;/
4、返回月 int GetDay()const;/返回日 static int IsLeapyear(int y);/判断年份 y 是否为润年 static int GetDays(int y);/年份 y 的天数 static int GetDays(const Date&d);/日期 d 当前月份的天数 static int DateToNum(const Date&d);/返回从公元 1 年 1 月 1 日起的天数 static Date NumToDate(int n);/由从公元 1 年 1 月 1 日起的天数返回日期 润年条件:年份能被 4 整除,并且年份不能被 100 整除,或者年份
5、能被 400 整除 润年天数:366 平年天数:365 润年 2 月份天数:29 平年 2 月份天数:28 5设计一个时间类 Time,要求:(1)包含时(hour)、分(minute)和秒(second)私有数据成员。(2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间的减加运算符-、重载输出运算符等。提示:可仿照第 4 题编程实现,可将时间转换成秒数,将秒数转成时间进行辅助编程。时间转换成秒数:秒数=时*3600+分*60+秒 秒数转换成时间:时=秒数/3600 分=(秒数-时*3600)/60 秒=秒数%60 为编程更方便,可增加一些成员函数,比如:v
6、oid SetHour(int hh);/设置小时 void SetMinute(int mm);/设置分钟 void SetSecond(int ss);/设置秒 int GetHour()const;/返回小时 int GetMinute()const;/返回分钟 int GetSecond()const;/返回秒 四、实验结果(包括程序或图表、结论陈述、数据记录及分析等,可附页)1、重载函数调用运算符(),将以下的二维数组的下标表示方法:chessBoardrowcolumn改为常用的表示方法:chessBoard(row,column)代码实现:#include#include usi
7、ng namespace std;class shuzu int chessBoard88;public:shuzu()for(int i=0;i8;i+)for(int j=0;j8;j+)chessBoardij=i+j;int operator()(int a,int b)return chessBoardab;int main()shuzu a;cout输出(6,7)=a(6,7)endl;cout矩阵:endl;for(int i=0;i8;i+)for(int j=0;j8;j+)couta(i,j)t;coutendl;getch();return 0;结果截图:2、重载下标运算
8、符使之返回集合中最大的元素、次最大的元素以及第三大的元素。3、开发多项式类 Polynomial,多项式的每一项用数组表示,每项包含一个系数和一个指数。例如:2x4的指数为 4,系数为 2。请开发一个完整的 Polynomial 类,包括构造函数、析构函数以及get函数和set函数。该类还要提供下述重载的运算符(分别使用成员函数和友元函数):1)重载加法运算符+,将两个多项式相加;2)重载减法运算符-,将两个多项式相减;3)重载赋值运算符=,将一个多项式赋给另外一个多项式;4)重载乘法算符*,将两个多项式相乘;5)重载加法赋值运算符+=、减法赋值运算符-=以及乘法赋值运算符*=。代码实现:#i
9、nclude#include using namespace std;class J private:int a5;public:J(int s)for(int i=0;i5;i+)ai=si;void paixu()for(int i=0;i4;i+)for(int j=0;jaj+1)int temp=aj;aj=aj+1;aj+1=temp;int operator(int b)return ab;int main()int s5;cout请输入 5 个数:endl;for(int i=0;isi;J j(s);();cout 最 大 的 元 素、次 最 大 的 元 素 以 及 第 三
10、大 的 元 素 依 次 为:j4,j3,j2endl;getch();return 0;结果截图:4设计一个日期类 Date,,要求:(1)包含年(year)、月(month)和日(day)私有数据成员。(2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-、重载输出运算符等。提示:由于各 C+编译器对于重载输入/出运算符为友元的兼容性都存在问题,最好重载输入/出运算符不声明为成员函数与友元函数,而声明一般函数,为编程更方便,可增加一些成员函数,比如:void SetYear(int y);/设置年 int SetMonth(int m);/设置月 in
11、t SetDay(int d);/设置日 int GetYear()const;/返回年 int GetMonth()const;/返回月 int GetDay()const;/返回日 static int IsLeapyear(int y);/判断年份 y 是否为润年 static int GetDays(int y);/年份 y 的天数 static int GetDays(const Date&d);/日期 d 当前月份的天数 static int DateToNum(const Date&d);/返回从公元 1 年 1 月 1 日起的天数 static Date NumToDate(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等 程序设计 实验 报告 推荐 7427
限制150内