当前位置:   article > 正文

PTA 7-4 日程安排(多重继承+重载) (20分) c++ 第5章类继承_7-4 日程安排(多重继承+重载) 分数 20 作者 余春艳 单位 福州大学 已有一个日期类

7-4 日程安排(多重继承+重载) 分数 20 作者 余春艳 单位 福州大学 已有一个日期类

题目

已有一个日期类Date,包括三个protected成员数据

int year;
int month;
int day;

另有一个时间类Time,包括三个protected成员数据

int hour;
int minute;
int second;

现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员:

int ID;//日程的ID
bool operator < (const Schedule & s2);//判断当前日程时间是否早于s2

生成以上类,并编写主函数,根据输入的各项日程信息,建立日程对象,找出需要最早安排的日程,并输出该日程对象的信息。
输入格式: 测试输入包含若干日程,每个日程占一行(日程编号ID 日程日期(**//)日程时间(::))。当读入0时输入结束,相应的结果不要输出。
输入样例:
1 2014/06/27 08:00:01
2 2014/06/28 08:00:01
0
输出样例:
The urgent schedule is No.1: 2014/6/27 8:0:1

AC代码


```css
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<string>
#include<vector>
#include<iomanip>
#include<iostream>

using namespace std;
class Date
{
protected://题目里这么说的
    int year;
    int month;
    int day;
public:
    Date(int a = 0, int b = 0, int c = 0):year(a), month(b), day(c) {};
};

class Time
{
protected://题目里就这么说的
    int hour;
    int minute;
    int second;
public:
    Time(int a = 0, int b = 0, int c = 0):hour(a), minute(b), second(c) {};
};

class Schedule : protected Date, protected Time
{
public:
    bool operator < (const Schedule & s){
        if(year<s.year){
            return true;
        }
        if(year==s.year&&month<s.month){
            return true;
        }
        if(year==s.year&&month==s.month&&day<s.day){
            return true;
        }
       int sum1=hour*3600+minute*60+second;
       int sum2=s.hour*3600+s.minute*60+s.second;
        if(year==s.year&&month==s.month&&day==s.day&&sum1<sum2){
            return true;
        }
        return false;

    }

    Schedule(int y = 99999, int m = 0, int d = 0, int h = 0, int min = 0, int s = 0, int id = 0)
    :Date(y, m, d), Time(h, min, s)
    {
        ID=id;
    };
    void show(){
    cout<<ID<<": "<<year<<"/"<<month<<"/"<<day<<" "<<hour<<":"<<minute<<":"<<second<<endl;
    }
protected:
    int ID;
};
int main()
{   int y,m,d,h,min,s,id;
    Schedule mx;
	cin>>id;
	while(id!=0){
		//scanf真好使哈哈哈
        scanf("%d/%d/%d%d:%d:%d",&y,&m,&d,&h,&min,&s);
        Schedule sch(y,m,d,h,min,s,id);
        if(!(mx<sch)){//呜呜呜写完之后发现我可能写反了?
            mx=sch;//加个!一切问题不大嘿嘿嘿
        }
        cin>>id;
        //sch.show();
	}
	cout<<"The urgent schedule is No.";
	mx.show();
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/182118?site
推荐阅读
相关标签
  

闽ICP备14008679号