欢迎来到天天文库
浏览记录
ID:35486878
大小:65.20 KB
页数:7页
时间:2019-03-25
《类和对象实验报告_计算机软件及应用_it计算机_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机科学与技术实验报告实验三类和对象(2)姓名:易班级:计科二班学号:2015110121实验目的:1、深入理解类和对象,学会定义类,申明私有、公有变量,学会定义对象,并调用成员函数,解决实际问题。2、掌握构造函数,析构函数,复制构造函数实验内容:1•定义一个日期类CDate,包含的内容如下:(1)3个私有成员变量year>month、day,类型为int;(2)公有成员函数:无参数构造函数,实现功能是将3个成员变量的值初始化为2015-9-25,输出“无参数构造函数被调用”。(3)公有成员函数:带参数
2、构造函数,实现功能为3个成员变量赋值,并输出“带参数构造函数被调用”。(4)公有成员函数:析构函数,实现功能输出“析构函数被调用”。(5)公有成员函数:打印输出函数PrintDate,输出具体的年、月、Ro编程实现如下功能:(1)创建一个CDate类的对象dl;(2)调用Print.Date输出dl的内容;(3)创建一个CDate类的对象d2,并按日期2015-9-26对d2初始化;(4)调用PrintDate输出d2的内容。代码:#includeusingnamespacestd;c
3、lassCdate{private:intyear;intmonth;intday;public:Cdate(){year=2015;month=9;day二25;}Cdate(inty,intm,intd){yearly;month=m;day二d;}voidPrintDatc(){cout<4、Cdated2(2015,9,26);d2.PrintDate();运行结果:5、i1D:MyprogramcodeblocksOObinDebugOO.exe2015/9/252015/9/26析构函数被调用析构函数被调用Processreturned0(0x0)executiontime:0.340sPressanykeytocontinue.2•修改CDate类的定义:(1)增加3个公有成员函数,分别设置3个成员变量的值;(2)增加复制构造函数,支持对象复制;编程实现如下功能:(1)由用户6、输入当天的年、月、日;(2)创建CDate类的对象today,以输入的口期初始化today;(3)创建CDate类的对象tomorrow,使用对象today为tomorrow初始化;(4)修改tomorrow的成员变量的值,使之成为today的第二天的值,考虑日期表示的合理性。例如6月份不能有第31天;(5)输出tomorrow的内容。代码:#ineludeusingnamespacestd;classCdate{private:intyear;intmonth;intday;publ7、ic:Cdate(){year=2015;month二9;day=25;Cdate(inty,intm,intd){year=y;month二m;day=d;}voidYear(inty){year=y;}voidMonth(intm){month=m;voidDay(intd){day=d;}Cdate(constCdate&r){yeai-r.year;month二r.month;day=r.day;}voidPrintDate(){cout<8、ay<>y;cin>>m;COUt<<,Z请输入日:〃cin>>d;Cdatetoday(y,m,d);//将输入的年月日赋给todayCdatetomorrow=today;tomorrow.Day(d+1);//正常情况下明天只需在今天的日期上面加一if(d二二31&&沪二12)//若遇到年底,则年份加一,月和F1跳转到一月一F1{tomorrow.Year(++3O;tomorrow.Month(9、1);tomorrow.Day(1);}//月底跳转设置if((d==30)&&(m==410、11、m==612、13、m==914、15、m==ll)){tomorrow.Month(++m);tomorrow.Day(1);}if((d==31&&(m==lI16、m==317、18、m==519、20、m==721、22、m==823、24、m==10))){tomorrow.Month(++m);tomorrow.Day(1);}〃闰年和平年处理ruen=((y%4==0)&
4、Cdated2(2015,9,26);d2.PrintDate();运行结果:
5、i1D:MyprogramcodeblocksOObinDebugOO.exe2015/9/252015/9/26析构函数被调用析构函数被调用Processreturned0(0x0)executiontime:0.340sPressanykeytocontinue.2•修改CDate类的定义:(1)增加3个公有成员函数,分别设置3个成员变量的值;(2)增加复制构造函数,支持对象复制;编程实现如下功能:(1)由用户
6、输入当天的年、月、日;(2)创建CDate类的对象today,以输入的口期初始化today;(3)创建CDate类的对象tomorrow,使用对象today为tomorrow初始化;(4)修改tomorrow的成员变量的值,使之成为today的第二天的值,考虑日期表示的合理性。例如6月份不能有第31天;(5)输出tomorrow的内容。代码:#ineludeusingnamespacestd;classCdate{private:intyear;intmonth;intday;publ
7、ic:Cdate(){year=2015;month二9;day=25;Cdate(inty,intm,intd){year=y;month二m;day=d;}voidYear(inty){year=y;}voidMonth(intm){month=m;voidDay(intd){day=d;}Cdate(constCdate&r){yeai-r.year;month二r.month;day=r.day;}voidPrintDate(){cout<8、ay<>y;cin>>m;COUt<<,Z请输入日:〃cin>>d;Cdatetoday(y,m,d);//将输入的年月日赋给todayCdatetomorrow=today;tomorrow.Day(d+1);//正常情况下明天只需在今天的日期上面加一if(d二二31&&沪二12)//若遇到年底,则年份加一,月和F1跳转到一月一F1{tomorrow.Year(++3O;tomorrow.Month(9、1);tomorrow.Day(1);}//月底跳转设置if((d==30)&&(m==410、11、m==612、13、m==914、15、m==ll)){tomorrow.Month(++m);tomorrow.Day(1);}if((d==31&&(m==lI16、m==317、18、m==519、20、m==721、22、m==823、24、m==10))){tomorrow.Month(++m);tomorrow.Day(1);}〃闰年和平年处理ruen=((y%4==0)&
8、ay<>y;cin>>m;COUt<<,Z请输入日:〃cin>>d;Cdatetoday(y,m,d);//将输入的年月日赋给todayCdatetomorrow=today;tomorrow.Day(d+1);//正常情况下明天只需在今天的日期上面加一if(d二二31&&沪二12)//若遇到年底,则年份加一,月和F1跳转到一月一F1{tomorrow.Year(++3O;tomorrow.Month(
9、1);tomorrow.Day(1);}//月底跳转设置if((d==30)&&(m==4
10、
11、m==6
12、
13、m==9
14、
15、m==ll)){tomorrow.Month(++m);tomorrow.Day(1);}if((d==31&&(m==lI
16、m==3
17、
18、m==5
19、
20、m==7
21、
22、m==8
23、
24、m==10))){tomorrow.Month(++m);tomorrow.Day(1);}〃闰年和平年处理ruen=((y%4==0)&
此文档下载收益归作者所有