⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gg.cpp

📁 这是一个ATM管理系统
💻 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 + -