OJ第三批——Problem H:C++习题 继承与组合

定义一个Date 类,数据成员有year,month, day。以“年_月_日“的格式输出日期, 还提供把天加一的成员函数nextdate( ),要求能测试出如下的结果: 定义一个Date 类,数据成员有year,month, day。以“年_月_日“的格式输出日期, 还提供把天加一的成员函数nextdate( ),要求能测试出如下的结果: a. 能够进入下一个月。 b. 能够进入下一个年。 c. 能显示日期。 立即下载

问题及代码:

Problem H: C++习题 继承与组合

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 803   Solved: 582
[ Submit][ Status][ Web Board]

Description

已知类如下:
(1) BirthDate(生日类) 含有:year,month,day 等数据成员
(2) Teacher(教师类)含有:num,name,sex 等数据成员
(3) Professor(教授类)含有:教师类和生日类的数据成员
要求:
(1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor
(2)定义Professor类对象prof,并给出所有数据的初值
(3)修改prof的生日数据
(4)输出prof的全部最新数据

Input

 num,name,sex,year,month,day 和修改后的year,month,day

Output

 num,name,sex,year,month,day 

Sample Input

2001 Huang m
1970 1 1
1994 5 26

Sample Output

num:2001
name:Huang
sex:m
birthday:1994/5/26

HINT

 前置代码及类型定义已给定如下,提交时不需要包含,会自动添加到程序前部


/* C++代码 */

#include <iostream>

#include <string>

using namespace std;

class BirthDate {

public:

    BirthDate(int,int,int);

    void display();

    void setbirthday(int,int,int);

private:

    int year;

    int month;

    int day;

};

class Teacher

{

public:

    Teacher(int,string,char);

    void display();

private:

    int num;

    string name;

    char sex;

};


class Professor:public Teacher

{

public:

    Professor(int,string,char,BirthDate);

    void display();

    void setbirthday(int,int,int);

private:

    BirthDate birthday;

};


主函数已给定如下,提交时不需要包含,会自动添加到程序尾部

/* C++代码 */

int main()

{

    int num;

    string name;

    char sex;

    int year,month,day;

    cin>>num>>name>>sex;

    cin>>year>>month>>day;

    Professor prof(num,name,sex,BirthDate(year,month,day));

    cin>>year>>month>>day;

    prof.setbirthday(year,month,day);

    prof.display();

    return 0;

}

 

 

#include <iostream>
#include <string>

using namespace std;

class BirthDate
{
public:
    BirthDate(int,int,int);
    void display();
    void setbirthday(int,int,int);
private:
    int year;
    int month;
    int day;
};

class Teacher
{
public:
    Teacher(int,string,char);
    void display();
private:
    int num;
    string name;
    char sex;
};

class Professor:public Teacher
{
public:
    Professor(int,string,char,BirthDate);
    void display();
    void setbirthday(int,int,int);
private:
    BirthDate birthday;
};

BirthDate::BirthDate(int y,int m,int d):year(y),month(m),day(d) {}

void BirthDate::display()
{
    cout<<"birthday:"<<year<<"/"<<month<<"/"<<day<<endl;
}

void BirthDate::setbirthday(int y,int m,int d)
{
    year=y;
    month=m;
    day=d;
}

Teacher::Teacher(int n,string nam,char s)
{
    num=n;
    name=nam;
    sex=s;
}

Professor::Professor(int n,string nam,char s,BirthDate(b)):Teacher(n,nam,s),birthday(b) {}

void Professor::display()
{
    Teacher::display();
    birthday.display();
}

void Professor::setbirthday(int y,int m,int d)
{
    birthday.setbirthday(y,m,d);
}

void Teacher::display()
{
    cout<<"num:"<<num<<endl;
    cout<<"name:"<<name<<endl;
    cout<<"sex:"<<sex<<endl;
}

int main()
{
    int num;
    string name;
    char sex;
    int year,month,day;
    cin>>num>>name>>sex;
    cin>>year>>month>>day;
    Professor prof(num,name,sex,BirthDate(year,month,day));
    cin>>year>>month>>day;
    prof.setbirthday(year,month,day);
    prof.display();
    return 0;
}


 

运行结果:

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码) 本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。 阅读详情

相关推荐

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2064

YTU OJ 2476 C++习题 继承与组合

Description已知类如下:(1) BirthDate(生日类) 含有:year,month,day 等数据成员(2) Teacher(教师类)含有:num,name,sex 等数据成员(3) Professor(教授类)含有:教师类和生日类的数据成员要求:(1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor(2)定义Professor类对象prof,并给...

mcp3128 1623

智能车实战——从ADC采集到PWM控制,让电磁车精准循迹

本文详细介绍了电磁循迹智能车的实现原理与实战技巧,涵盖从ADC信号采集、PWM控制到PID算法整定的全流程。通过STM32代码示例解析电感信号处理、差比和偏差计算及电机驱动等关键技术,帮助开发者快速掌握智能车精准循迹的核心方法,提升电磁车竞赛项目的开发效率。

weixin_29192211的博客 301

YTU-OJ-继承与组合

Problem H: C++习题 继承与组合 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 750  Solved: 543 [Submit][Status][Web Board] Description 已知类如下: (1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teach

Some. 792

OCCT(Open CASCADE Technology)入门-2.搭建开发环境

安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】

2501_91235145的博客 2876

pytorch中dataloader的num_workers参数

结论速递 在Windows系统中,num_workers参数建议设为0,在Linux系统则不需担心。 1 问题描述 在之前的任务超大图上的节点表征学习中,使用PyG库用于数据加载的DataLoader,ClusterLoader等类时,会涉及到参数num_workers。在不同系统环境试验该参数的设定值时,会出现不同的结果 colab(Linux),设为12 有warning message,提示num_workers参数设置不合理,不影响继续运行 /usr/local/lib/python3.7/di

qq_40990057的博客 1万+

编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个 Employee对象的生日,则将该雇员的工资增加666元。定义一个Employee类,MyDate类

编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个 Employee对象的生日,则将该雇员的工资增加666元。 实验说明: (1)定义一个Employee类,该类包含: private成员变量name,number,birthday,其中birthday 为MyDate类的对象; abstract方法earnings(); toString()方法输出对象的name,number和birthday。 (2)MyDate类包含: private成员变量year,month,day ; to

YingxueSec 3254

深度学习驱动的股票波动率预测:LSTM和Transformer模型的实战解析

股票市场的波动率一直是金融领域关注的焦点之一。波动率预测对于风险管理、期权定价和资产配置至关重要。深度学习模型,如长短时记忆网络(LSTM)和Transformer,已经在时间序列数据分析领域取得了显著的成就。本博客将向您展示如何使用这两种深度学习模型来进行股票波动率预测,提供清晰的思路和相应的Python代码,以帮助您理解和应用这一重要任务。

斌擎科技 974

例9.11 有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求用同一个表格来处理。

printf("学生\n班级:%s\n姓名:%s\n",p->mes.class,p->name);printf("老师\n职务:%s\n姓名:%s\n",p->mes.job,p->name);printf("请输入职业:student or teacher\n");\n请重新入\n");printf("请输入学生班级:\n");printf("请输入学生姓名:\n");printf("请输入老师职务:\n");printf("请输入老师姓名:\n");printf("请输入有几个人的数据:\n");..

ljh1046922652的博客 866

EDKII环境配置完整版

参考博客【EDK2 UDK2018的环境搭建】:https://blog.youkuaiyun.com/qq_39155263/article/details/82965744下载EDK2 1.直接从https://github.com/tianocore/edk2/ 网站下载.zip压缩文件 2.运用svn 从http://svn.code.sf.net/p/edk2/code/trunk/edk2edk2下载 3.安装Visual Studio2017 安装其他Tool 1.IASL 从https..

tianpu2320959696的博客 1855

ROS机器人里程计模型

3.5 移动机器人系统模型 相信大家的机器人平台STM32端底层控制和机器人urdf建模都已经顺利完成了,在正式开始ros端编写机器人启动功能包之前,我们还不得不学习一些必要的理论知识。别担心数学不好,这里基本都是高中数学。下面我们开始,Are you ready? 没准备好也开始了。 3.5.1 常用坐标系系统模型 在移动机器人技术研究中,最为常用的坐标系统是笛卡尔坐标系统。而在SLAM算法研究中,有如下几个比较常见的笛卡尔坐标系统,它们分别为机器人坐标系XR YR OR 、传感器坐标系XS YS OS

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 1万+

【用 Vibe Coding 实现的 C++17 在线判题系统】项目准备 + 后端开发

本文介绍了基于Vibe Coding方法搭建仿LeetCode的OJ平台项目准备过程。首先在Gitee创建项目仓库,通过AI引导的深度访谈梳理需求并生成SPEC.md文档。随后根据文档安装必要依赖项,包括构建工具、C++库、MySQL数据库等。项目采用C++后端(cpp-httplib)和原生前端技术栈,最终按照SPEC文档构建了完整的项目目录结构。整个过程展示了如何使用AI辅助进行项目规划和初始化工作。

无限进步!!! 421

YOLO环境配置+项目启动全流程(Conda+PyCharm超详解)

YOLO(You Only Look Once)是一个基于深度学习的目标检测算法,广泛应用于智能识别领域。本篇保姆级教学将手把手教你如何从零开始运行一个YOLO项目,适合完全没有基础的新手。

一键难忘的博客 1541

SDUSTOJ1390 Problem C: 时间类的常量

Description 封装一个时间类Time,用于时间处理的相关功能,支持以下操作: Time::Time()无参构造方法。 Time::Time(int,int,int)构造方法:传递时分秒的三个参数构造对象。 Time::Time(const T&)拷贝构造方法。 成员读函数: Time::hour() :返回Time的小时数; Time::minute():返回Time的分钟数; Time::second():返回Time的秒数。 成员写函数: Time::ho

MrLeeSour的博客 268

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SDUSTOJ1389 Problem B: 时间类的错误数据处理

Description 封装一个时间类Time,用于时间处理的相关功能,支持以下操作: Time::Time()无参构造方法。 Time::Time(int,int,int)构造方法:传递时分秒的三个参数构造对象。 Time::Time(const T&)拷贝构造方法。 成员读函数: Time::hour() :返回Time的小时数; Time::minute():返回Time的分钟数; Time::second():返回Time的秒数。 成员写函数: Time::ho

MrLeeSour的博客 322

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

算法竞赛开源项目技术分析:从评估到集成的完整指南

算法与数据结构是计算机科学的核心基础,其高效实现直接影响程序性能。在算法竞赛领域,解题代码不仅是逻辑的体现,更是工程实践的结晶。开源项目为学习者提供了宝贵的研究样本,通过分析其代码质量、算法选择和工程结构,可以深入理解复杂问题的求解思路与优化技巧。这类项目通常聚焦于特定赛题的高效解法,并可能封装通用模板,具有极高的学习与参考价值。对于开发者而言,掌握如何评估、运行并借鉴此类代码,能有效提升个人算法能力和工程素养。本文以典型的“赛题开源”项目为例,探讨从环境准备、代码验证到集成学习的全流程技术分析框架,帮助读

weixin_34025151的博客 360

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

时间类的静态成员计数

Description 封装一个时间类Time,用于时间处理的相关功能,支持以下操作: 1. Time::Time()无参构造方法。 2. Time::Time(int,int,int)构造方法:传递时分秒的三个参数构造对象。 3. Time::Time(const T&amp;amp;amp;)拷贝构造方法。 4. 对象整体读写方法: Time::setTime(int,int,int)方法:...

fighting123678的博客 390

C++程序设计——继承与派生(二)

编程题 1.简单继承方式派生类构造函数的使用 代码: 运行结果: 2.有子对象的派生类构造函数的使用 代码: 运行结果: 3.观察派生类构造函数与析构函数的调用顺序 运行结果: 4.掌握单继承方式、多重继承方式下,派生类构造函数的使用 运行结果: 5.按要求完成下面的编程 (1) 1)建立一个基类Account,成员变量包含账号accnumber、姓名accname。 2)从Account类派生出CreditAccount类,添加成员变量信用额度credit。 3)Account类包括默认

weixin_50464560的博客 2028

C++习题 继承与组合

Problem C: C++习题 继承与组合 [Submit][Status][Web Board] Description 已知类如下: (1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teacher(教师类)含有:num,name,sex 等数据成员 (3) Professor(教授类)含有:教师类和生日类的数据成员 要求

u013629228的专栏 4859

C++ 记录问答(定义一个 Date 类,包括 year 、 month、 day 三个数据成员)

定义一个 Date 类,包括 year 、 month、 day 三个数据成员,通过 set_date 成员函。写一个完整的程序,检验此类。注意:对于日期 day 成员,不能接受大于 31 或小于 1。的值,对于月 month,不能接受大于 12 或小于 1 的值。

weijianjain的博客 2809

oj继承与组合

问题://已知类如下: //(1) BirthDate(生日类) 含有:year,month,day 等数据成员 //(2) Teacher(教师类)含有:num,name,sex 等数据成员 //(3) Professor(教授类)含有:教师类和生日类的数据成员 //要求: //(1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor //(2)定义Profess

玲玲的专栏 1404

[YTU]_2476(C++习题 继承与组合)

题目描述 已知类如下: (1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teacher(教师类)含有:num,name,sex 等数据成员 (3) Professor(教授类)含有:教师类和生日类的数据成员 要求: (1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor (2)定义...

weixin_30487317的博客 458

继承与组合

Description 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。 (1)参加运算的两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意。例如,c1+c2,d+c1,c1+d均合法(设d为实数,c1,c2为复数)。 (2)输出的算数,在复数两端加上括号,实部和虚部均保留两位小数,如(8.23+2.00i)、(7.45-3.40i)、(-3.

小西 1270

OJ 1.F

/* 已知类如下: (1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teacher(教师类)含有:num,name,sex 等数据成员 (3) Professor(教授类)含有:教师类和生日类的数据成员 要求: (1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor (2)定义Professor类对象pr

u012369069的专栏 1175

OJ 继承与组合

已知类如下: (1) BirthDate(生日类) 含有:year,month,day 等数据成员 (2) Teacher(教师类)含有:num,name,sex 等数据成员 (3) Professor(教授类)含有:教师类和生日类的数据成员 要求: (1)通过对Teacher和BirthDate使用继承和组合的方式设计Professor (2)定义Professor类对象prof,并

我沿着陌生人的志向攀登 724
上一篇: OJ第三批——Problem G:C++习题 多重继承
下一篇: OJ第三批——Problem I:投简历
Timor7hao
博客等级 码龄12年 22粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值