【PTA】日程安排(多重继承+重载)
生活随笔
收集整理的這篇文章主要介紹了
【PTA】日程安排(多重继承+重载)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
已有一個日期類Date,包括三個protected成員數(shù)據(jù)
int year;
int month;
int day;
另有一個時(shí)間類Time,包括三個protected成員數(shù)據(jù)
int hour;
int minute;
int second;
現(xiàn)需根據(jù)輸入的日程的日期時(shí)間,安排前后順序,為此以Date類和Time類為基類,建立一個日程類Schedule,包括以下新增成員:
int ID;//日程的ID
bool operator < (const Schedule & s2);//判斷當(dāng)前日程時(shí)間是否早于s2
生成以上類,并編寫主函數(shù),根據(jù)輸入的各項(xiàng)日程信息,建立日程對象,找出需要最早安排的日程,并輸出該日程對象的信息。
輸入格式: 測試輸入包含若干日程,每個日程占一行(日程編號ID 日程日期(**//)日程時(shí)間(::))。當(dāng)讀入0時(shí)輸入結(jié)束,相應(yīng)的結(jié)果不要輸出。
輸入樣例:
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
#include <iostream> using namespace std; class Date{ protected:int year;int month;int day; public:Date(int year, int month, int day) : year(year), month(month), day(day) {}public:int toIntData(){return year*10000+month*100+day;}void showdate(){cout<<" "<<year<<"/"<<month<<"/"<<day;} }; class Time{ protected:int hour;int minute;int second; public:Time(int hour, int minute, int second) : hour(hour), minute(minute), second(second) {}public:int toIntTime(){return hour*10000+minute*100+second;}void showtime(){cout<<" "<<hour<<":"<<minute<<":"<<second;} }; class Schedule:public Date,Time{ protected:int id; public:Schedule(int id,int year, int month, int day, int hour, int minute, int second) : Date(year, month, day),Time(hour, minute, second),id(id) {}//構(gòu)造函數(shù)public:bool operator < (Schedule s2){if (this->toIntData()!=s2.toIntData()){return toIntData()<s2.toIntData();} else{return toIntTime()<s2.toIntTime();}}void show(){cout<<"No."<<id<<":";Date::showdate();Time::showtime();} }; int main(){int n;int a,b,c,d,e,f;Schedule s2(0,9999,9999,9999,999,999,99);while (cin>>n,n!=0){scanf("%d/%d/%d",&a,&b,&c);scanf("%d:%d:%d",&d,&e,&f);Schedule s1(n,a,b,c,d,e,f);if(s1<s2){s2=s1;}}cout<<"The urgent schedule is ";s2.show();}總結(jié)
以上是生活随笔為你收集整理的【PTA】日程安排(多重继承+重载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: test 4:假币问题
- 下一篇: 字符集字符编码方式