acm日期比较代码实现.doc_第1页
acm日期比较代码实现.doc_第2页
acm日期比较代码实现.doc_第3页
acm日期比较代码实现.doc_第4页
acm日期比较代码实现.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十三次作业1. 编写正方形类Square,要求提供赋值运算符重载函数、拷贝构造函数,并在这两个成员函数中提供相应的输出信息。通过使用Square类,回答下面问题:(1)Square s1(4); Square s2=s1;/这里是调用运算符重载函数还是拷贝构造函数?(2)Square s1(4); Square s2;s2=s1;/这里是调用运算符重载函数还是拷贝构造函数?解:(1)#if !defined _Square_H_#define _Square_H_#include using std:istream;using std:ostream;class Squarefriend istream & operator(istream &input,Square &s);friend ostream & operator(ostream &output, Square &s);Square & operator=(const Square &s);public:Square(double a);Square(const Square &x);private: double n;#endif#include#includerong.husing namespace std;Square:Square(double a)n=a;cout这里调用构造函数!endl;Square:Square(const Square &x)cout这里调用拷贝构造函数!(istream &input,Square &s)inputs.n;return input;ostream & operator(ostream &output, Square &s)outputs.nendl;cout这里调用运算符重载函数!endl;return output;Square &Square:operator=(const Square &x)cout这里调用运算符=重载函数!endl;n=x.n;return *this;#include#includerong.husing namespace std;int main()double m;coutPlease enter the longth of square:endl;cout重载函数!m;Square s1(m);Square s2=s1;cout重载函数!4这里调用构造函数!这里调用拷贝构造函数!这里调用运算符=重载函数!4这里调用运算符重载函数!请按任意键继续. . .(2)#if !defined _Square_H_#define _Square_H_#include using std:istream;using std:ostream;class Squarefriend istream & operator(istream &input,Square &s);friend ostream & operator(ostream &output, Square &s);public:Square & operator=(const Square &s);Square(double a=0);Square(const Square &x);private: double n;#endif#include#includerong.husing namespace std;Square:Square(double a)n=a;cout这里调用构造函数!endl;Square:Square(const Square &x)cout这里调用拷贝构造函数!(istream &input,Square &s)inputs.n;return input;ostream & operator(ostream &output, Square &s)outputs.nendl;cout这里调用运算符重载函数!endl;return output;Square &Square:operator=(const Square &x)cout这里调用运算符=重载函数!endl;n=x.n;return *this;#include#includerong.husing namespace std;int main()double m;coutPlease enter the longth of square:endl;cout重载函数!m;Square s1(m);Square s2;s2=s1;cout重载函数!5这里调用构造函数!这里调用构造函数!这里调用运算符=重载函数!5这里调用运算符重载函数!请按任意键继续. . .2. 下面的题选自ACM虚拟班中级题,要求定义日期类,并对小于运算符、插入(输出)运算符进行重载。Problem 46 日期比较 Time Limit: 10 secDescription “明明,今天是哪年哪月哪日?”明明的爸爸问道。“2008年6月22号。”明明回答。“那明天呢?”明明的爸爸继续问道。“2008年6月23号。”明明回答。“那后天呢?”“2008年6月24号。”“2008年6月22号是不是在2008年6月23号前面?”明明的爸爸问。“是啊,这有什么好问的?”明明有些不耐烦。“2008年6月24号是不是在2008年6月23号后面?”明明的爸爸又问。接着明明的爸爸又问了很多类似的问题。明明终于烦了,他很奇怪爸爸怎么问这些问题。这时,明明的爸爸终于说出了他想说的话:“明明,你是不是觉得这些问题很简单,爸爸怎么会问这些问题?”明明说:“是的。”明明的爸爸接着说:“我想告诉你的是,人是会觉得烦的,因为人有一定的忍耐限度,一直问一个人同一个类似的问题,人会被搞的很烦躁,但是电脑就不会,即使你问他一百遍、一千遍相同的问题,电脑都不会烦,它会耐心地一次一次地回答你同一个问题。你能不能帮爸爸写一个程序,告诉程序两个日期,程序就能比较这两个日期中哪个在前哪个在后”明明想了想说:“没问题。”于是就去写程序了。明明爸爸的问题可以归结为:写一个程序,输入两个合法日期,比较这个两日期哪个在日历中靠前。(具体输出格式见Output)The Input 你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据两行,每组测试数据的第一行为第一个日期,日期的格式为dd mm yyyy,dd表示日,mm表示月,yyyy表示年,中间用一个空格隔开,每组测试数据的第二行为第二个日期,格式与第一个日期一样,每组测试数据的两个日期保证是不同的并且合法。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。The Output 对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为一句话,格式如下:“01 01 1999 is earlier than 02 02 1999”。首先输出靠前的日期,接着输出“ is earlier than ”,然后在输出靠后的日期,注意,小于10的日期、月份之前要加0。每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。注:通常,显示屏为标准输出设备。Sample Input 01 01 199902 02 199911 11 111112 12 1212Sample Output 01 01 1999 is earlier than 02 02 199911 11 1111 is earlier than 12 12 1212解:#if !defined _DAY_h_#define _DAY_h_#includeusing std:istream;using std:ostream;class Dayfriend istream & operator(istream &input,Day &s);friend ostream & operator(ostream &output,Day &s);public:Day(int a=0,int b=0,int c=0);int Break(void);int operator(Day &s);private:int day;int mon;int year;#endif#includerong.h#include#include using namespace std;Day:Day(int a, int b, int c)mon=a;day=b;year=c;int Day:Break(void)if(day=0&mon=0&year=0)return 0;else return 1;istream &operator(istream &input,Day &s)inputs.mons.days.year;return input;ostream &operator(ostream &output,Day &s)outputsetfill(0)setw(2)s.mon setfill(0)setw(2)s.day setfill(0)setw(4)s.year ;return output;int Day:operator12|s.mon=0)cout您输入的月份错误!31)cout您输入的日期错误!31)cout您输入的日期错误!29&s.mon=2)cout您输入的日期错误!28&s.mon=2)cout您输入的日期错误!12|mon=0) cout您输入的月份错误!31)cout您输入的日期错误!31)cout您输入的日期错误!29&mon=2)cout您输入的日期错误!28&mon=2)cout您输入的日期错误!endl;return 2;if(years.year)return 0;elseif(mons.mon) return 0;else if(days.day) return 0;else return -1;#include#includerong.husing namespace std;int ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论