📄 gg.cpp
字号:
#include <iostream.h>
#include <string.h>
enum RESULT{FALSE,TRUE};
class ACCOUNT
{
private:
unsigned long ID_NO;
unsigned int password;
char name[10];
double balance;
public:
ACCOUNT(){};
ACCOUNT(unsigned long,unsigned int,char*,double);
RESULT deposit(unsigned long,unsigned int,double);
RESULT drawing(unsigned long,unsigned int,double);
double checkbalance(unsigned long,unsigned int);
RESULT check(unsigned long,unsigned int);
unsigned long Ret_ID(){return ID_NO;};
unsigned int Ret_pas(){return password;};
char* Ret_name(){return name;};
virtual void display();
};
ACCOUNT::ACCOUNT(unsigned long id,unsigned int pas,char *s,double m)
{
ID_NO=id;
password=pas;
strcpy(name,s);
balance=m;
}
RESULT ACCOUNT::deposit(unsigned long id,unsigned int pas,double m)
{
if(check(id,pas))
{
balance+=m;
return TRUE;
}
else
return FALSE;
}
RESULT ACCOUNT::drawing(unsigned long id,unsigned int pas,double m)
{
if(check(id,pas)&&(balance>=m))
{
balance-=m;
return TRUE;
}
else
return FALSE;
}
double ACCOUNT::checkbalance(unsigned long id,unsigned int pas)
{
if(check(id,pas))
return balance;
else
return 0;
}
RESULT ACCOUNT::check(unsigned long id,unsigned int pas)
{
if((pas=password)&&(id=ID_NO))
return TRUE;
else
return FALSE;
}
void ACCOUNT::display()
{
cout<<"你的帐户:"<<ID_NO<<endl;
cout<<"你的密码:"<<password<<endl;
}
class savingdeposit: public ACCOUNT
{
private:
float interest;
int s_year;
int s_month;
int s_day;
public:
savingdeposit(){};
savingdeposit(unsigned long,unsigned int,char*,double,float,int,int,int);
double cal_int(unsigned long,unsigned int,int);
int Ret_month(){return s_month;};
int Ret_year(){return s_year;};
float Ret_inter(){return interest;};
};
savingdeposit::savingdeposit(unsigned long id,unsigned int pas,char *s,double m,float inter,int y,int n,int d)
:ACCOUNT(id,pas,s,m)
{
interest=inter;
s_year=y;
s_month=n;
s_day=d;
}
double savingdeposit::cal_int(unsigned long id,unsigned int pas,int a)
{
double bal;
bal=checkbalance(id,pas)*a*Ret_inter()/12;
return bal;
}
class CountDep:public virtual ACCOUNT//活期
{
private:
double crate;
public:
CountDep(unsigned long id,unsigned int pas,char *s,double m,double c):
ACCOUNT(id,pas,s,m),crate(c){};
void display();
double Ret_cra(){return crate;};
};
void CountDep::display()
{
cout<<"************活期帐户**************"<<endl;
cout<<"活期利率为:"<<Ret_cra()<<endl;
cout<<"当前利息为:"<<checkbalance( Ret_ID(), Ret_pas() )*Ret_cra()<<endl;
cout<<"**********************************"<<endl;
}
class TimeDep:public virtual ACCOUNT//定期
{
private:
double trate;
double moneypermonth;
public:
TimeDep(unsigned long id,unsigned int pas,char *s,double m,double c,double t ,double p):
ACCOUNT(id,pas,s,m),trate(t),moneypermonth(p){};
double Ret_tra(){return trate;};
void display();
};
void TimeDep::display()
{
cout<<"***************定期帐户**************"<<endl;
cout<<"帐户:"<<Ret_ID()<<endl;
cout<<"密码:"<<Ret_pas()<<endl;
cout<<"定期利率:"<<Ret_tra()<<endl;
cout<<"当前利息:"<<checkbalance(Ret_ID(),Ret_pas())*Ret_tra()<<endl;
cout<<"*************************************"<<endl;
}
class ComDep:public CountDep,public TimeDep
{
public:
ComDep(unsigned long id,unsigned int pas,char *s,double m,double c,double t ,double p):
ACCOUNT(id,pas,s,m),CountDep(id,pas,s,m,c),TimeDep(id,pas,s,m,c,t,p){};
void display();
};
void ComDep::display()
{
cout<<"**************综合帐户信息*******************"<<endl;
cout<<"活期利率:"<<Ret_cra()<<endl;
cout<<"定期利率:"<<Ret_tra()<<endl;
cout<<"**********************************************"<<endl;
}
void display(ACCOUNT &acc)
{
acc.display();
};
void main()
{
ACCOUNT *pMyAcc[10];
pMyAcc[0]=0;
savingdeposit *MySavAcc;
ACCOUNT *from,*to;
int choice,choice1,p=0,h=0;
unsigned long id;
char name[10];
unsigned int pas;
double m;
double money;
do{
cout<<"**************自动取款机演示程序*****************"<<endl;
cout<<endl;
cout<<" 1开户"<<endl;
cout<<" 2.存款"<<endl;
cout<<" 3.取款"<<endl;
cout<<" 4.查询余额"<<endl;
cout<<" 5.转帐"<<endl;
cout<<" 6.查询利息"<<endl;
cout<<" 7.退出"<<endl;
cout<<"**************************************************"<<endl;
cout<<"请输入你的选择(1-5):"<<endl;
cin>>choice;
switch(choice)
{
case 1:
do{
cout<<"***********请选择开户种类**************"<<endl;
cout<<"1.活期帐户"<<endl;
cout<<"2.定期帐户"<<endl;
cout<<"3.综合帐户"<<endl;
cout<<"4. 退出"<<endl;
cout<<"***************************************"<<endl;
cout<<"请输入你的选择(1-4):"<<endl;
cin>>choice1;
switch(choice1)
{
case 1:
cout<<"请输入你的张号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
cout<<"请输入你的姓名:"<<endl;
cin>>name;
if(p<10)
{
pMyAcc[p++]=new CountDep(id,pas,name,0,0.025);
cout<<"开户成功"<<endl;
}
else
cout<<"开户失败"<<endl;break;
case 2:
cout<<"请输入你的帐号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
cout<<"请输入你的姓名:"<<endl;
cin>>name;
if(p<10)
{
pMyAcc[p++]=new TimeDep(id,pas,name,0,0.025,0.075,15000);
cout<<"开户成功"<<endl;
}
else
cout<<"开户失败"<<endl;break;
case 3:
cout<<"请输入你的张号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
cout<<"请输入你的姓名:"<<endl;
cin>>name;
if(p<10)
{
pMyAcc[p++]=new ComDep(id,pas,name,0,0.025,0.075,15000);
cout<<"开户成功"<<endl;
}
else
cout<<"开户失败"<<endl;break;
}
}while(choice1!=4);
break;
case 2:
cout<<"请输入你的张号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
cout<<"请输入你的存款金额:"<<endl;
cin>>m;
for(p=0;p<10;p++)
if(pMyAcc[p]->Ret_ID()==id)break;
if(pMyAcc[p]->deposit(id,pas,m))
cout<<"存款成功"<<endl;
else
cout<<"存款失败"<<endl;break;
case 3:
cout<<"请输入你的张号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
cout<<"请输入你的取额:"<<endl;
cin>>m;
for(p=0;p<10;p++)
if(pMyAcc[p]->Ret_ID()==id)break;
if(pMyAcc[p]->drawing(id,pas,m))
cout<<"取款成功"<<endl;
else
cout<<"取款失败"<<endl;break;
case 4:
cout<<"请输入你的张号:"<<endl;
cin>>id;
cout<<"请输你的密码:"<<endl;
cin>>pas;
for(p=0;p<10;p++)
if(pMyAcc[p]->Ret_ID()==id)break;
m=pMyAcc[p]->checkbalance(id,pas);
cout<<m <<endl;
break;
case 5:
cout<<"请输入你要转出的帐号:"<<endl;
cin>>id;
cout<<"请输你要转出的密码:"<<endl;
cin>>pas;
for(p=0;p<10;p++)
if((pMyAcc[p]->Ret_ID()==id)&&(pMyAcc[p]->Ret_pas()==pas))break;
from=pMyAcc[p];
display(*from);
cout<<"请输入你要转入的帐号:"<<endl;
cin>>id;
cout<<"请输入你要转入的密码:"<<endl;
cin>>pas;
for(p=0;p<10;p++)
if((pMyAcc[p]->Ret_ID()==id)&&(pMyAcc[p]->Ret_pas()==pas))break;
to=pMyAcc[p];
display(*to);
cout<<"请输入转出金额"<<endl;
cin>>money;
if(from->drawing(id,pas,money)==0)
cout<<"你的余额不足"<<endl;
else
to->deposit(id,pas,money);
display(*from);
display(*to);break;
case 6:
int year;
int month;
int a,b,c;
cout<<"请输入年份:"<<endl;
cin>>year;
if(year<2003){cout<<"你输入的年份有误"<<endl;
break;}
cout<<"请输入月份:"<<endl;
cin>>month;
MySavAcc= new savingdeposit(id,pas,name,m,0.0625,2003,1,1);
b=(year-2003)*12;
c=month-1;
a=b+c;
cout<<"你的帐户为:"<<id<<endl;
cout<<"你的姓名为:"<<name<<endl;
cout<<"你的余额为:"<<pMyAcc[p]->checkbalance(id,pas)<<endl;;
cout<<"利率:"<<MySavAcc->Ret_inter()<<endl;
cout<<"利息:"<<MySavAcc->cal_int(id,pas,a)<<endl;break;
}
}while(choice!=7);
cout<<"谢谢使用!"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -