pta实验报告2

模板与类(对象数组)

#include<bits/stdc++.h>
using namespace std;
template<class T>
T maxn(T x[],int len)
{
int i=1;
T max=x[0];
for(i;i<len;i++)
{
if(max<x[i])
max=x[i];
}
return max;
}
class Date{
private:
int year=0,month=0,day=0;
public:
Date(){};
void dateset(int a,int b,int c){
year=a;
month=b;
day=c;
}
bool operator<(Date a)
{
if(year*365+month*30+day<a.year*365+a.month*30+a.day)
return 1;
else
return 0;
}
int y(){ return year;
}
int m(){ return month;
}
int d(){ return day;
}
};
class Time{
private:
int hh=0,mm=0,ss=0;
public:
Time(){};
void timeset(int a,int b,int c){
hh=a;
mm=b;
ss=c;
}
int h(){return hh;
};
int m(){return mm;
};
int s(){return ss;
}
bool operator<(Time a)
{
if(hh*3600+mm*60+ss<a.hh*3600+a.mm*60+a.ss)
return 1;
else
return 0;
}
};
int main()
{
int flag;
int intArray[100];
double douArray[100];
Time timeArray[100];
Date dateArray[100];
while(1)
{ cin>>flag;
if(flag==-1)
break;
else
{
switch(flag)
{
case 1:{
int count=0;
for(int i=0;i<100;i++)
{
cin>>intArray[i];
if(intArray[i]==0)
break;
else
count++;
}
cout<<maxn(intArray,count)<<endl;
break;
};
case 2:{
int count=0;
for(int i=0;i<100;i++)
{
cin>>douArray[i];
if(douArray[i]==0)
break;
else
count++;
}
cout<<maxn(douArray,count)<<endl;
break;
};
case 3:{
int h,m,s,count=0;
while(cin>>h)
{
if(h==0)
break;
else
{
cin>>m>>s;
timeArray[count].timeset(h,m,s);
count++;
}
}
cout<<maxn(timeArray,count).h()<<" "<<maxn(timeArray,count).m()<<" "<<maxn(timeArray,count).s()<<endl;
break;
};
case 4:{
int y,m,d;
int count=0;
while(cin>>y)
{
if(y==0)
break;
else
{
cin>>m>>d;
dateArray[count].dateset(y,m,d);
count++;
}
}
cout<<maxn(dateArray,count).y()<<" "<<maxn(dateArray,count).m()<<" "<<maxn(dateArray,count).d()<<endl;
break;
}
}
}
}
return 0;
}

 

 

 

 

posted @   mo寒流xing  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示