一、实验目的
·学习掌握声明和定义类及成员。
·学习掌握访问类对象成员。
·学习掌握保护数据如何屏蔽外部访问的原理,更好的认识类的封装
二、实验内容
(1)定义一个满足下列要求的Date类:
①用下面的格式输出日期:日/月/年
②可运行在日期上加一天操作
③设置日期
代码实现:
//Date.h
#include <iostream.h>
class Date{
public:
void Display();
void AddOneDay();
void SetDay(int y,int m,int d);
protected:
bool Legal(int y, int m, int d);
bool IsLeapYear(int y);
int year;
int month;
int day;
};
#include "546156.h"
#include <iostream.h>
void Date::SetDay(int y, int m, int d)
{
if (m < 1 || m > 12)
{
cout << "month error!" << endl;
return;
}
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
{
if (d < 1 || d > 31)
{
cout << "day error!" << endl;
return;
}
}
else if (m == 4 || m == 6 || m == 9 || m == 11)
{
if (d < 1 || d > 30)
{
cout << "day error!" << endl;
return;
}
}
else
{
if ((((y % 4) == 0) && ((y % 100) != 0)) || ((y % 400) == 0))
{
if (d < 1 || d > 29)
{
cout << "day error!" << endl;
return;
}
}
else
{
if (d < 1 || d > 28)
{
cout << "day error!" << endl;
return;
}
}
}
year = y;
month = m;
day = d;
}
void Date::Display()
{
cout << year<< "/" << month << "/" << day << endl;
}
void Date::AddOneDay()
{
day++;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if (day > 31)
{
day = 1;
month++;
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (day > 30)
{
day = 1;
month++;
}
}
else
{
if ((((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0))
{
if (day > 29)
{
day = 1;
month++;
}
}
else
{
if (day > 28)
{
day = 1;
month++;
}
}
}
if (month > 12)
{
month = 1;
year++;
}
}
bool Legal(int y, int m, int d);
bool IsLeapYear(int y)
{
if ((((y % 4) == 0) && ((y % 100) != 0)) || ((y % 400) == 0))
cout<<"This is a LeapYear!"<<endl;
else
cout<<"This is a not LeapYear!"<<endl;
return 0;
}
void main()
{
Date date;
date.SetDay(2000, 12, 31);
date.Display();
date.AddOneDay();
date.Display();
}
结果:
(2)定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。并将类定义作为接口,用多文件结构实现之。
代码实现:
//Time.h
#include <iostream.h>
class Time
{
public:
Time();
void Print();
void Set(int,int,int);
protected:
int min;
int sec;
int hour;
};
#include "321412.h"
#include <iostream.h>
Time::Time()
{
min=23;
sec=20;
hour=18;
}
void Time::Print()
{
cout<<hour<<":"<<min<<":"<<sec<<endl;
}
void Time::Set(int h,int m,int s)
{
if(h>24 || m>60 || s>60 || h<0 || m<0 || s<0)
cout<<"输入时间有问题!"<<endl;
hour=h;
min=m;
sec=s;
}
int main()
{
Time myTime;
cout<<"输出实验给出的时间:"<<endl;
myTime.Print();
cout<<"自己设置的时间:"<<endl;
myTime.Set(12,18,25); //设置时间
myTime.Print(); //打印时间
return 0;
}
结果: