#include<bits/stdc++.h>
using namespace std;
class Time
{
private :
int month;
int day;
int hour;
int minute;
public :
Time(int mo,int d,int h,int mi);
Time();
void show();
void setMonth(int mo){month=mo;};
void setDay(int d){day=d;};
void setHour(int h){hour=h;};
void setMinute(int mi){minute=mi;};
void setAll(int mo,int d,int h,int mi){month=mo;day=d;hour=h;minute=mi;};
int getMonth(){return month;};
int getDay(){return day;};
int getHour(){return hour;};
int getMinute(){return minute;};
};
Time::Time(int mo,int d,int h,int mi)
{
month=mo;
day=d;
hour=h;
minute=mi;
}
Time::Time()
{
month=0;
day=0;
hour=0;
minute=0;
}
void Time::show()
{
cout<<month<<"\t"<<day<<"\t"<<hour<<"\t"<<minute<<"\t";
}
class Record
{
private :
int number;
Time date;
string type;
int money;
double surplus;
public :
Record(int num1,Time date1,string type1,int money1,double surplus1);
Record();
void show();
void setNumber(int num1){number=num1;};
void setDate(Time date1){date=date1;};
void setMoney(int money1){money=money1;};
void setSurplus(double surplus1){surplus=surplus1;};
void setAll(int num1,int a,int b,int c,int d,string type1,int money1,double surplus1){number=num1;date.setAll(a,b,c,d);type=type1;money=money1;surplus=surplus1;};
int getNumber(){return number;};
string getType(){return type;};
int getMoney(){return money;};
double getSurplus(){return surplus;};
int getMonth(){date.getMonth();};
int getDay(){date.getDay();};
int getHour(){date.getHour();};
int getMinute(){date.getMinute();};
};
Record::Record(int num1,Time date1,string type1,int money1,double surplus1)
{
number=num1;
date=date1;
type=type1;
money=money1;
surplus=surplus1;
}
Record::Record()
{
number=0;
type=" ";
money=0;
surplus=0;
}
void Record::show()
{
cout<<number<<"\t";date.show();cout<<type<<"\t"<<money<<"\t"<<surplus<<endl;
}
class User
{
private :
int number;
string name;
string password;
double surplus;
Record r[200];
static int numbers;
public :
User(int num1,string name1,string pw1,double surplus1):number(num1),name(name1),password(pw1),surplus(surplus1){}
User(User&u);
void show();
void setNumbers(int nums1){numbers=nums1;};
void setPassword(string pw1){password=pw1;};
void setSurplus(double surplus1){surplus=surplus1;};
int getNumber(){return number;};
int getNumbers(){return numbers;};
string getName(){return name;};
string getPassword(){return password;};
double getSurplus(){return surplus;};
Record getRecord(int j){return r[j];};
void addRecord(Record r1){r[numbers++]=r1;};
void showRecord(int j){r[j].show();};
void showAllRecord();
void queryByTime(Time t1,Time t2);
void queryByType(string type);
void showAll();
};
User::User(User&u)
{
number=u.getNumber();
surplus=u.getSurplus();
name=u.getName();
numbers=u.getNumbers();
for(int j=0;j<=numbers;j++)
{
r[j]=u.getRecord(j);
}
}
int User::numbers=0;
void User::show()
{
cout<<number<<"\t"<<name<<"\t"<<password<<"\t"<<surplus<<endl;
}
void User::showAll()
{
show();
showAllRecord();
}
void User::showAllRecord()
{
for(int j=0;j<=numbers;j++)
showRecord(j);
}
void User::queryByTime(Time t1,Time t2)
{
for(int j=0;j<=numbers;j++)
{
if(r[j].getMonth()==t1.getMonth()&&(r[j].getMonth()==t2.getMonth()))
{
if(r[j].getDay()>=t1.getDay()&&(r[j].getDay()<=t2.getDay()))
r[j].show();
}
}
}
void User::queryByType(string type)
{
for(int j=0;j<=number;j++)
{
if(r[j].getType()==type)
r[j].show();
}
}
int main()
{
/*TimeÀà
int a,b,c,d;
cin>>a>>b>>c>>d;
Time t1(a,b,c,d);
t1.show();
Time t2;
t2.setAll(5,23,9,12);
t2.show();
return 0;
using namespace std;
class Time
{
private :
int month;
int day;
int hour;
int minute;
public :
Time(int mo,int d,int h,int mi);
Time();
void show();
void setMonth(int mo){month=mo;};
void setDay(int d){day=d;};
void setHour(int h){hour=h;};
void setMinute(int mi){minute=mi;};
void setAll(int mo,int d,int h,int mi){month=mo;day=d;hour=h;minute=mi;};
int getMonth(){return month;};
int getDay(){return day;};
int getHour(){return hour;};
int getMinute(){return minute;};
};
Time::Time(int mo,int d,int h,int mi)
{
month=mo;
day=d;
hour=h;
minute=mi;
}
Time::Time()
{
month=0;
day=0;
hour=0;
minute=0;
}
void Time::show()
{
cout<<month<<"\t"<<day<<"\t"<<hour<<"\t"<<minute<<"\t";
}
class Record
{
private :
int number;
Time date;
string type;
int money;
double surplus;
public :
Record(int num1,Time date1,string type1,int money1,double surplus1);
Record();
void show();
void setNumber(int num1){number=num1;};
void setDate(Time date1){date=date1;};
void setMoney(int money1){money=money1;};
void setSurplus(double surplus1){surplus=surplus1;};
void setAll(int num1,int a,int b,int c,int d,string type1,int money1,double surplus1){number=num1;date.setAll(a,b,c,d);type=type1;money=money1;surplus=surplus1;};
int getNumber(){return number;};
string getType(){return type;};
int getMoney(){return money;};
double getSurplus(){return surplus;};
int getMonth(){date.getMonth();};
int getDay(){date.getDay();};
int getHour(){date.getHour();};
int getMinute(){date.getMinute();};
};
Record::Record(int num1,Time date1,string type1,int money1,double surplus1)
{
number=num1;
date=date1;
type=type1;
money=money1;
surplus=surplus1;
}
Record::Record()
{
number=0;
type=" ";
money=0;
surplus=0;
}
void Record::show()
{
cout<<number<<"\t";date.show();cout<<type<<"\t"<<money<<"\t"<<surplus<<endl;
}
class User
{
private :
int number;
string name;
string password;
double surplus;
Record r[200];
static int numbers;
public :
User(int num1,string name1,string pw1,double surplus1):number(num1),name(name1),password(pw1),surplus(surplus1){}
User(User&u);
void show();
void setNumbers(int nums1){numbers=nums1;};
void setPassword(string pw1){password=pw1;};
void setSurplus(double surplus1){surplus=surplus1;};
int getNumber(){return number;};
int getNumbers(){return numbers;};
string getName(){return name;};
string getPassword(){return password;};
double getSurplus(){return surplus;};
Record getRecord(int j){return r[j];};
void addRecord(Record r1){r[numbers++]=r1;};
void showRecord(int j){r[j].show();};
void showAllRecord();
void queryByTime(Time t1,Time t2);
void queryByType(string type);
void showAll();
};
User::User(User&u)
{
number=u.getNumber();
surplus=u.getSurplus();
name=u.getName();
numbers=u.getNumbers();
for(int j=0;j<=numbers;j++)
{
r[j]=u.getRecord(j);
}
}
int User::numbers=0;
void User::show()
{
cout<<number<<"\t"<<name<<"\t"<<password<<"\t"<<surplus<<endl;
}
void User::showAll()
{
show();
showAllRecord();
}
void User::showAllRecord()
{
for(int j=0;j<=numbers;j++)
showRecord(j);
}
void User::queryByTime(Time t1,Time t2)
{
for(int j=0;j<=numbers;j++)
{
if(r[j].getMonth()==t1.getMonth()&&(r[j].getMonth()==t2.getMonth()))
{
if(r[j].getDay()>=t1.getDay()&&(r[j].getDay()<=t2.getDay()))
r[j].show();
}
}
}
void User::queryByType(string type)
{
for(int j=0;j<=number;j++)
{
if(r[j].getType()==type)
r[j].show();
}
}
int main()
{
/*TimeÀà
int a,b,c,d;
cin>>a>>b>>c>>d;
Time t1(a,b,c,d);
t1.show();
Time t2;
t2.setAll(5,23,9,12);
t2.show();
return 0;
Time t1(4,23,8,5);
int e,f,g;
string i;
cin>>e>>i>>f>>g;
Record r1(e,t1,i,f,g);
r1.show();
Record r2;
r2.setAll(1,5,23,9,12,"qq",200,1800);
r2.show();
return 0;*/
int number;
string password;
string name;
double surplus;
cin>>number>>name>>password>>surplus;
User u1(number,name,password,surplus);
u1.show();
u1.setPassword("778899");
u1.show();
Time t1(4,22,8,10),t2(4,28,13,20);
Record r1(number,t1,"qq",200,2000),r2(number,t2,"cq",400,2400);
u1.addRecord(r1);
u1.addRecord(r2);
u1.showRecord(1);
Time t3(4,28,0,0),t4(4,28,24,0);
u1.queryByTime(t3,t4);
u1.showAllRecord();
u1.show();
User u2(u1);
u1.queryByType("cq");
u2.showAllRecord();
u2.showAll();
}
int e,f,g;
string i;
cin>>e>>i>>f>>g;
Record r1(e,t1,i,f,g);
r1.show();
Record r2;
r2.setAll(1,5,23,9,12,"qq",200,1800);
r2.show();
return 0;*/
int number;
string password;
string name;
double surplus;
cin>>number>>name>>password>>surplus;
User u1(number,name,password,surplus);
u1.show();
u1.setPassword("778899");
u1.show();
Time t1(4,22,8,10),t2(4,28,13,20);
Record r1(number,t1,"qq",200,2000),r2(number,t2,"cq",400,2400);
u1.addRecord(r1);
u1.addRecord(r2);
u1.showRecord(1);
Time t3(4,28,0,0),t4(4,28,24,0);
u1.queryByTime(t3,t4);
u1.showAllRecord();
u1.show();
User u2(u1);
u1.queryByType("cq");
u2.showAllRecord();
u2.showAll();
}