第十二周项目3:日期时间类

问题及代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:project.cpp
*作    者:陈文青
*完成日期:2015年5月31日
*版 本 号:v1.0
*
*问题描述:定义一个日期类Date,数据成员包括年、月、日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期;
再定义一个时间类Time,数据成员包括时、分、秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,
在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提供的方法,实现日期和时间的设置和显示。
请实现类TimeDate,下面是用于测试的主函数及参考运行结果。
*程序输入:
*程序输出:
*/
#include<iostream>

using namespace std;
class Date
{
public:
    Date(int y=0,int m=0,int d=0);
    void SetDate(int y,int m,int d);    //设置日期
    void PrintDate();    //显示日期
protected:
    int year;
    int month;
    int day;
};
Date::Date(int y,int m,int d):year(y),month(m),day(d) {}

void Date::SetDate(int y,int m,int d)    //设置日期
{
    year=y;
    month=m;
    day=d;
}
void Date::PrintDate()    //显示日期
{
    cout<<year<<"/"<<month<<"/"<<day;
}

class Time
{
public:
    Time(int h=0,int m=0,int s=0);
    void SetTime(int h,int m,int s);    //设置日期
    void PrintTime();    //显示日期
protected:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s) {}

void Time::SetTime(int h,int m,int s)    //设置时间
{
    hour=h;
    minute=m;
    second=s;
}
void Time::PrintTime()    //显示时间
{
    cout<<hour<<":"<<minute<<":"<<second;
}

class TimeDate:public Date,public Time
{
public:
    TimeDate(int y=0,int mo=0,int d=0,int h=0,int mi=0,int s=0);
    void PrintDate_Time();
};
TimeDate::TimeDate(int y,int mo,int d,int h,int mi,int s):Date(y,mo,d),Time(h,mi,s) {}

void TimeDate::PrintDate_Time()
{
    PrintDate();      //调用基类中的成员函数
    cout<<"  ";
    PrintTime();
    cout<<endl;
}
int main()
{
    TimeDate dt_a,dt_b(2010,4,16,9,30,0);
    cout<<"dt_a: ";
    dt_a.PrintDate_Time();
    cout<<endl;
    cout<<"dt_b: ";
    dt_b.PrintDate_Time();
    dt_a.SetTime(20,00,00);
    dt_a.SetDate(2008,8,7);
    cout<<endl;
    cout<<"dt_after uptate: ";
    dt_a.PrintDate_Time();
    return 0;
}

运行结果:

知识点总结:

日期时间类的构建。

学习心得:

在派生类成员函数的定义中,因为牵扯到基类数据成员的调用,所以要积极运用基类中的成员函数进行数据成员的操作。

时间: 2024-08-06 00:59:54

第十二周项目3:日期时间类的相关文章

第12周 项目三-日期时间类

定义一个日期类Date,数据成员包括年.月.日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期:再定义一个时间类Time,数据成员包括时.分.秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提供的方法,实现日期和时间的设置和显示.请实现类TimeDate,下面是用于测试的主函数及参考运行结果. int m

第十二周项目3-摩托车继承自行车和电动车

#include <iostream> #include<conio.h> #include <windows.h> using namespace std; enum vehicleStaus {rest, running}; //车辆状态:泊车.行进 class vehicle //车辆类,虚基类 { protected: int maxSpeed; //最大车速 int currentSpeed; //当前速度 int weight; //车重 vehicleSt

第12周上机实践项目3——日期时间类

定义一个日期类Date,数据成员包括年.月.日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期:再定义一个时间类Time,数据成员包括时.分.秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提供的方法,实现日期和时间的设置和显示.请实现类TimeDate. 代码 #include <iostream>

第十七周项目5-玩日期时间

定义一个表示时间(包括年.月.日.时.分.秒)的结构体,然后完成下面的功能. 提示:将各个功能分别设计成函数实现,在main函数中调用,进行测试.可以设计一个函数,即刻进行测试,以降低复杂度. 要实现的功能是: (1)输入一个时间(注意各部分数据的取值范围)将输入的时间保存在一个结构体变量中: (2)输出该日在本年中是第几天(注意闰年问题): (3)输出这是这一天中的第几秒: (4)输出这是这一年中的第几秒:(不要认为这个数荒唐,在计算中需要取随机数时需要一个不会重复的"种子数",这个

第十二周项目一 教师兼干部类】 共建虚基类person

项目1 - 教师兼干部类] 分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部).要求: (1)在两个基类中都包含姓名.年龄.性别.地址.电话等数据成员. (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资). (3)对两个基类中的姓名.年龄.性别.地址.电话等数据成员用相同的名字,在引用这些数据成

第十二周项目二——分离正整数的各位数

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:李晓凯 * 完成日期:2014年 11 月 17日 * 版 本 号:v1.0 * * 问题描述:将各位数分开,个位数在前,十位数紧随,最高位在最后,每位数后面有一个空格. * 输入描述:输入整数 * 程序输出:个位数在前,十位数紧随,最高位在最后,每位数后面有一个空格. */ #include <iostream> using n

第十二周项目4-1:点,圆的关系-位置比较

问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年5月31日 *版 本 号:v1.0 * *问题描述: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点): (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心: (3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要

第十二周项目二——刑警的射击成绩

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作    者:李晓凯 * 完成日期:2014年 11 月 17 日 * 版 本 号:v1.0 * * 问题描述:输入射击成绩,9环及以上的为A级,7环及以上的为B级,5环及以上的为C级,5环以下的为D级,输出各阶段的次数 * 输入描述:输入一组数 * 程序输出:各阶段的次数 */ #include <iostream> using namesp

第十二周项目3递归函数求解(3)

运行及代码: <span style="font-family:FangSong_GB2312;font-size:18px;color:#99ff99;BACKGROUND-COLOR: #009900"><em>/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2014年11月16日 *版 本 号:v1.0 * *问题描述:求多组整数最大