预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验报告 (2016/2017学年第二学期) 课程名称面向对象程序设计及C++实验名称实验一:类和对象的定义及使用实验时间2017年3月25日指导单位光电工程学院指导教师陈景强 学生姓名班级学号学院(系)专业 实验报告 实验名称类和对象的定义及使用指导教师实验类型验证实验学时2实验时间实验目的和要求 (1)掌握类与对象的定义与使用方法,理解面向对象方法中通过对象间传递消息的工作机制。 (2)正确掌握类的不同属性成员的使用方法。 (3)掌握构造函数与析构函数的概念,理解构造函数与析构函数的执行过程。 (4)掌握友元函数和友元类的定义和使用。 (5)基本掌握指针和引用作为函数参数的应用。 二、实验环境(实验设备) 硬件:微型计算机 软件:MicrosoftVisualC++6.0 三、实验原理及内容 实验题目(1)定义一个时间类Time,有三个私有成员变量Hour、Minute、Second,定义构造函数、析构函数以及用于改变、获取、输出时间信息的公有函数,主函数中定义时间对象,并通过调用各种成员函数完成时间的设定、改变、获取、输出等功能。 ①按要求完成类的定义与实现。 ②修改数据成员的访问方式,观察编译结果。 ③在Time类中定义一个成员函数,用于实现时间增加一秒的功能,主函数中通过对象调用该函数,并输出增加一秒后的时间信息。 ④定义一个普通函数。 voidf(Timet) { t.PrintTime(); } 在Time类中增加拷贝构造函数的定义,主函数中调用该函数,运用调试工具跟踪,分析整个程序调用构造函数(包括拷贝构造函数)和析构函数的次数;再将f函数的形式参数分别修改为引用参数和指针参数(此时函数代码修改为{t->PrintTime();},主函数中调用,再分析此时调用构造函数和析构函数的次数。实验报告 参考实验教材中相应的实验提示部分按要求完成程序,并回答相关问题。 要求①完成后的源程序代码如下: #include<iostream> usingnamespacestd; classTime { private: intHour,Minute,Second; public: Time(inth=0,intm=0,ints=0); Time(constTime&ob); ~Time(); voidChangeTime(inth,intm,ints); intGetHour(); intGetMinute(); intGetSecond(); voidPrintTime(); voidIncreaseOneSecond(); }; Time::Time(inth,intm,ints) { Hour=h; Minute=m; Second=s; } Time::Time(constTime&ob) { Hour=ob.Hour; Minute=ob.Minute; Second=ob.Second; } Time::~Time() { } voidTime::ChangeTime(inth,intm,ints) { Hour=h; Minute=m; Second=s; } intTime::GetHour() { returnHour; } intTime::GetMinute() { returnMinute; } intTime::GetSecond() { returnSecond; } voidTime::PrintTime() { cout<<Hour<<":"<<Minute<<":"<<Second<<endl; } voidTime::IncreaseOneSecond() { Second++; } /*voidTime::f(Timet) { t.PrintTime(); cout<<"callf\n"; }*/ intmain() { Timea; Timeb(13); Timec(13,15); Timed(13,15,45); a.PrintTime(); b.PrintTime(); c.PrintTime(); d.PrintTime(); a.ChangeTime(12,15,45); b.ChangeTime(12,15,45); c.ChangeTime(12,15,45); d.ChangeTime(12,15,45); cout<<a.GetHour()<<":"<<a.GetMinute()<<":"<<a.GetSecond()<<endl; cout<<b.GetHour()<<":"<<b.GetMinute()<<":"<<b.GetSecond()<<endl; cout<<c.GetHour()<<":"<<c.GetMinu