日程安排(多重继承+重载)
2022/5/31 23:21: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
#include<iostream> #include<iomanip> #include<math.h> using namespace std; class date { protected: int year,month,day=0; }; class time { protected: int hour,minute,second=0; }; class schedule:public date,time { protected: int id; public: void dis() { cout<<"The urgent schedule is No."<<id<<": "<<year<<"/"<<month<<"/"<<day<<" "<<hour<<":"<<minute<<":"<<second<<endl; } void set(int y,int m,int d,int h,int min,int s,int i) { year=y;month=m;day=d;hour=h;minute=min;second=s;id=i; } bool operator < (const schedule & s2) { double all;//暴力求和,可替换 all=year*365+month*30+day+hour/24.0+minute/1440.0+second/86400.0; double all2; all2=s2.year*365+s2.month*30+s2.day+s2.hour/24.0+s2.minute/1440.0+s2.second/86400.0; if(all<all2) { return true; } else { return false; } } }; int main() { int id; schedule s1; s1.set(9999,0,0,0,0,0,0); for(;;) { cin>>id; if(id==0){break;} int y,m,d,h,min,s; char c1,c2,c3,c4; cin>>y>>c1>>m>>c2>>d>>h>>c3>>min>>c4>>s;//如果是cin输入,记得有字符。可替换 schedule s2; s2.set(y,m,d,h,min,s,id); if(s2<s1) { s1=s2; } } s1.dis(); return 0; }
这篇关于日程安排(多重继承+重载)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行