面向对象程序设计方法学》实验指导书(2)

2019-06-04 22:54

(4)观察构造函数和析构函数的调用顺序; (5)观察具有不同访问属性的成员的访问方式。

3、实验要求

(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。

(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。

4、实验步骤

(1)添加一个头文件TDate.h来定义TDate类。包含:

1)私有数据成员:年(year)、月(month)、日(day)等;

2)定义2个构造函数,并对其中的一个构造函数设置缺省参数; 3)定义1个析构函数。

4)定义成员函数SetDate来设置日期,AddOneDay来对日期进行加1天的操作,print来输出日期。

(2)添加一个源文件TDate.cpp来实现成员函数。

(3)在主程序中定义若干个TDate类的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。写在TDate.cpp文件中或另外一个cpp文件中。

(4)将成员函数print的访问属性设为private或protected后,重新编译,观察编译结果。 //======日期类定义部分TDate.h======// #include using namespace std; #ifndef TDate_H #define TDate_H class TDate {

public: TDate() { year=2003;month=1;day=1; cout<<\调用缺省的构造函数\ } TDate(int y,int m=1,int d=1) { year=y;month=m;day=d; cout<<\调用带参数的构造函数\ }; void SetDate(int y,int m,int d); void AddOneDay(); void print(); ~TDate(){cout<<\调用析构函数\private: int year; int month; int day; };

#endif

//======日期类实现部分TDate.cpp ======// #include \int maxDays(int,int); void TDate::print()

{cout<maxDays(year,month)) {month=month+1; day=1;} if (month>12) {year=year+1; month=1; } }

int maxDays(int y,int m) { int days; switch(m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; //31天 break; case 2: if ((y%4==0&&y0!=0)||y@0==0)//闰年29天 days=29; else days=28; break; //} default://30天 days=30; break; } return days; };

int main() {

TDate d0;

cout<<\不带参数的日期对象:\d0.print(); TDate d1(2003);

cout<<\带1个参数的日期对象:\d1.print(); TDate d2(2003,12);

cout<<\带2个参数的日期对象:\d2.print(); TDate d3(2004,10,14); d3.AddOneDay();

cout<<\带3个参数的日期对象加一天后:\d3.print(); d3.SetDate(2005,4,8);

cout<<\重新设定日期后:\d3.print(); return 0;

}

实验四 静态成员与常成员的使用(2学时)

1、 实验目的

(1)学习静态成员的使用 (2)学习常成员的使用

(3)掌握静态数据成员与常数据成员的初始化

2、实验内容

(1)某商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记录下目前库存的货物的总重量,现在要求设计一个Goods类并使用静态成员来模拟商店货物购进和卖出的情况;

(2)为上面的Goods类添加一个常数据成员(货物名称),并对货物名称进行初始化;

(3)将前面已定义的某些成员函数改写为常成员函数,观察是否该类中所有的成员函数是否都可设定为常成员函数。

3、实验要求

(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。

(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。

4、实验步骤

(1)添加一个头文件Goods.h来定义Goods类。包含:

1)私有数据成员货物重量(weight)、私有静态数据成员库存总重量(totalWeight); 2)定义构造函数来描述进货过程;

3)定义成员函数Sell来描述货物卖出过程,成员函数GetWeight来获取当前货物重量。 4)定义静态成员函数GetTotalWeight来读取当前货物的库存总重量。 5)自定义若干个成员函数。

(2)添加一个源文件Goods.cpp来实现成员函数。

(3)在主程序中定义若干个Goods类的对象,模拟进货与卖出的过程。查看运行结果。

(4)为Goods类添加一个常数据成员const char * name来表示货物名称,改写构造函数及主程序的调用,在构造函数的成员初始化列表中对货物名称赋初值。重新编译,观察运行结果。

(5)将前面已定义的某些成员函数改写为常成员函数,观察是否该类中所有的成员函数是否都可设定为常成员函数。

参考程序如下: #include class Goods {

public:

Goods(int w);

int GetWeight() const; void Sell();

static int GetTotalWeight(); private:

int weight;

static int totalWeight; public: const char* name; };

Goods::Goods(int w):name(\鸡蛋\{

weight=w;

totalWeight+=w; }

void Goods::Sell() { weight=0;

totalWeight-=weight; }

int Goods::GetWeight() const {

return weight; }

int Goods::GetTotalWeight() {

return totalWeight; }

int Goods::totalWeight=0; int main() {

int w; cout<<\购进第1箱货物重量为:\ cin>>w;

Goods g1(w); cout<<\购进第2箱货物重量为:\ cin>>w;

Goods g2(w); cout<<\库存货物重量为:\

cout<


面向对象程序设计方法学》实验指导书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于建设虚拟化系统的请示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: