c++之ATM(二)

c++之ATM(二)

#include<bits/stdc++.h>
using namespace std;
void test1();
void test2();
void test3();
class Time
{
private:
int month,day,hour,minute;
public:
Time(int m,int d,int h,int mi):month(m),day(d),hour(h),minute(mi){}
Time():month(0),day(0),hour(0),minute(0){}
friend ostream & operator <<(ostream & output,Time & obj);
void set_month(int x){month=x;}
void set_day(int x){day=x;}
void set_hour(int x){hour=x;}
void set_minute(int x){minute=x;}
int get_month(){return month;}
int get_day(){return day;}
int get_hour(){return hour;}
int get_minute(){return minute;}
};
ostream & operator <<(ostream &output,Time & obj)
{
output<<obj.month<<" "<<obj.day<<" "<<obj.hour<<" "<<obj.minute<<" ";
return output;
}
class Record
{
private:
int no;
Time date;
string type;
int jiner;
double yue;
public:
Record (int no,Time date,string type,int jiner,double yue)
{
this->no=no;
this->date=date;
this->type=type;
this->jiner=jiner;
this->yue=yue;
}
Record()
{
no=-1;
type="cq";
jiner=0;
yue=0;
}
friend ostream & operator <<(ostream & output,Record & obj);
void set_no(int x){no=x;}
void set_date(Time x){date=x;}
void set_type(string x){type=x;}
void set_jiner(int x){jiner=x;}
void set_yue(double x){yue=x;}
int get_no(){return no;}
Time get_date(){return date;}
string get_type(){return type;}
int get_jiner(){return jiner;}
double get_yue(){return yue;}
};
ostream & operator <<(ostream & output,Record & obj)
{
output<<obj.no<<" ";
output<<obj.date<<" ";
output<<obj.type<<" ";
output<<obj.jiner<<" ";
output<<obj.yue<<" ";
return output;
}
class User
{
private:
int no;
string name;
string mima;
double yue;
Record r[201];
int num;
public:
User(){}
User(int noo,string name,string mima,double yue):no(noo)
{
this->name=name;
this->mima=mima;
this->yue=yue;
this->num=0;
}
User(const User & obj):no(obj.no)
{
name=obj.name;
mima=obj.mima;
yue=obj.yue;
for(int i=0;i<=obj.num;++i)r[i]=obj.r[i];
num=obj.num;
}
friend ostream & operator <<(ostream & output,User & obj);
void set_name(string x){name=x;}
void set_mima(string x){mima=x;}
void set_yue(double x){yue=x;}
int get_no(){return no;}
string get_name(){return name;}
string get_mima(){return mima;}
double get_yue(){return yue;}
int get_num(){return num;}
void add(Record rr);
void dispRecord(int i);
void dispAllRecord();
void queryByTime(Time t1,Time t2);
void queryByType(string type);
};
ostream & operator <<(ostream & output,User & obj)
{
output<<obj.no<<" ";
output<<obj.name<<" ";
output<<obj.mima<<" ";
output<<obj.yue<<" ";
return output;
}
void User::add(Record rr)
{
num++;
r[num]=rr;
}
void User::dispRecord(int i)
{
if(i<=num)cout<<r[i];
}
void User::dispAllRecord()
{
for(int i=1;i<=num;++i)cout<<r[i]<<endl;
}
void User::queryByTime(Time t1,Time t2)
{
int a,b,c;
a=t1.get_month()*pow(10,6)+t1.get_day()*pow(10,4)+t1.get_hour()*100+t1.get_minute();
b=t2.get_month()*pow(10,6)+t2.get_day()*pow(10,4)+t2.get_hour()*100+t2.get_minute();
for(int i=1;i<=num;++i)
{
c=r[i].get_date().get_month()*pow(10,6)+r[i].get_date().get_day()*pow(10,4)
+r[i].get_date().get_hour()*100+r[i].get_date().get_minute();
if(c>=a&&c<=b)cout<<r[i]<<endl;
}
}
void User ::queryByType(string type)
{
for(int i=1;i<=num;++i)
{
if(r[i].get_type()==type)cout<<r[i]<<endl;
}
}
class UserOp
{
private:
User usr;
Time t;
public:
UserOp(int no);
UserOp(User obj);
void withdraw();
void deposit();
void queryByTime(Time t1,Time t2)
{
usr.queryByTime(t1,t2);
}
void queryByType(string type)
{
usr.queryByType(type);
}
void display()
{
cout<<usr<<endl;
usr.dispAllRecord();
}
void display_usr(){cout<< usr<<endl;}
void display_time(){cout<< t<<endl;}};
UserOp::UserOp(int no)
{ string name;
string mima;
double yue;
cin>>name>>mima>>yue;
usr=User(no,name,mima,yue);
int month,day,hour,minute;
cin>>month>>day>>hour>>minute;
t=Time(month,day,hour,minute);
}
UserOp::UserOp(User usr)
{
this->usr=usr;
int month,day,hour,minute;
cin>>month>>day>>hour>>minute;
t=Time(month,day,hour,minute);
}
void UserOp::withdraw()
{
int qq;
cin>>qq;
if(usr.get_yue()-qq>=1e-6)
{
usr.set_yue(usr.get_yue()-qq);
usr.add(Record(usr.get_no(),t,"qq",qq,usr.get_yue()));
}
else cout<<"ËùqqÊý³¬¹ýÕË»§Óà¶î"<<endl;
}
void UserOp::deposit()
{
int cq;
cin>>cq;
usr.set_yue(usr.get_yue()+cq);
usr.add(Record(usr.get_no(),t,"cq",cq,usr.get_yue()));
}
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
test1();
test2();
test3();
return 0;
}
void test1()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
Time test1(a,b,c,d);
cout<<test1<<endl;
Time test2;
cin>>a>>b>>c>>d;
test2.set_month(a),test2.set_day(b),test2.set_hour(c),test2.set_minute(d);
cout<<test2<<endl;
}
void test2()
{
Time t1(4,23,8,5);
int no;
string type;
int jiner;
double yue;
cin>>no>>type>>jiner>>yue;
Record r1(no,t1,type,jiner,yue);
cout<<r1<<endl;
Record r2;
int a,b,c,d;
cin>>no>>a>>b>>c>>d>>type>>jiner>>yue;
r2.set_no(no),r2.set_date(Time(a,b,c,d)),r2.set_type(type),r2.set_jiner(jiner),r2.set_yue(yue);
cout<<r2<<endl; }
void test3()
{
int no;
string name;
string mima;
double yue;
cin>>no>>name>>mima>>yue;
User u1(no,name,mima,yue);
cout<<u1<<endl;
u1.set_mima("778899");
cout<<u1<<endl;
Record r1(no,Time(4,22,8,10),"qq",200,2000),r2(no,Time(4,22,8,10),"cq",400,2400);
u1.add(r1);
u1.add(r2);
u1.dispRecord(2);
cout<<endl;
u1.queryByTime(Time(4,28,0,0),Time(4,29,0,0));
u1.dispAllRecord();
User u2(u1);
u2.queryByType("cq");
cout<<u2<<endl;
u2.dispAllRecord();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值