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

📄 3.16.cpp

📁 面向对象技术作业银行系统
💻 CPP
字号:
#include <string>
#include <vector>
#include <iostream>
using namespace std;
class bankaccount//银行帐户类
{
	private:
		int account_id;//帐号
		string account_name;//帐户人
		int balance;//余额
	public:
		bankaccount(int account_id,string account_name,int balance)
		{
			this->account_id=account_id;
			this->account_name=account_name;
			this->balance=balance;
		}
		void setBalance(int balance)
		{
			this->balance=balance;
		}
		int getBalance()
		{
			return balance;
		}
		int getAccount_id()
		{
			return account_id;
		}
		string getAccount_name()
		{
			return account_name;
		}
		
};
class banktransaction//银行交易类
{
	private:
		int bankaccount_id;//帐号种子
		vector<bankaccount*> accountlist;
	public:
		banktransaction()
		{
			bankaccount_id=0;
		}
		bool openAccount(string account_name,int balance)//开户
		{
			bankaccount_id++;
			bankaccount* bap=new bankaccount(bankaccount_id,account_name,balance);
			accountlist.push_back(bap);
			return true;

		}
		bool cancelAccount(int bankaccount_id)//消户,通过帐号
		{
			vector <bankaccount*>::iterator ba_iterator;
			bankaccount* bap;
			for(ba_iterator=accountlist.begin();ba_iterator!=accountlist.end();ba_iterator++)
			{
				bap=*ba_iterator;
				if(bap->getAccount_id()==bankaccount_id)
				{
					accountlist.erase(ba_iterator);
					delete(bap);
					break;
				}
			}
			return true;

		}
		bool cancelAccount(string bankaccount_name)//消户,通过帐户名,注销该帐户名相关的所有帐户
		{
			vector <bankaccount*>::iterator ba_iterator;
			bankaccount* bap;
			ba_iterator=accountlist.begin();
			while(ba_iterator!=accountlist.end())
			{
				bap=*ba_iterator;
				if(bap->getAccount_name()==bankaccount_name)
				{
					accountlist.erase(ba_iterator);
					delete(bap);
					continue;
				}
				ba_iterator++;
			}
			return true;

		}
		bool deposit(int bankaccount_id,int balance)//存钱
		{
			vector <bankaccount*>::iterator ba_iterator;
			bankaccount* bap;
			for(ba_iterator=accountlist.begin();ba_iterator!=accountlist.end();ba_iterator++)
			{
				bap=*ba_iterator;
				if(bap->getAccount_id()==bankaccount_id)
				{
					bap->setBalance(bap->getBalance()+balance);
					break;
				}
			}
			return true;

		}
		bool fetch(int bankaccount_id,int balance)//取钱,取钱之前判断是否透支,若透支,则取消事务
		{
			if(isOverdraft(bankaccount_id,balance))
			{
				cout<<bankaccount_id<<",you have overdrafted,transaction is canceled!"<<endl;
				return false;
			}
			vector <bankaccount*>::iterator ba_iterator;
			bankaccount* bap;
			for(ba_iterator=accountlist.begin();ba_iterator!=accountlist.end();ba_iterator++)
			{
				bap=*ba_iterator;
				if(bap->getAccount_id()==bankaccount_id)
				{
					bap->setBalance(bap->getBalance()-balance);
					break;
				}
			}
			return true;
		}
		bool isOverdraft(int bankaccount_id,int balance)//判断是否透支
		{
			vector <bankaccount*>::iterator ba_iterator;
			bankaccount* bap;
			for(ba_iterator=accountlist.begin();ba_iterator!=accountlist.end();ba_iterator++)
			{
				bap=*ba_iterator;
				if(bap->getAccount_id()==bankaccount_id)
				break;
				
			}
			return (bap->getBalance()-balance)<0;
		}
		vector<bankaccount*> getAccountlist()
		{
			return accountlist;
		}

};
void main()
{
	banktransaction bt;
	vector <bankaccount*>::iterator ba_iterator;
	vector <bankaccount*>accountlist;
	bankaccount* bap;

	bt.openAccount("Account1",100);
	bt.openAccount("Account1",100);
	bt.openAccount("Account1",100);
	bt.openAccount("Account1",100);
	bt.openAccount("Account2",200);
	bt.openAccount("Account2",200);
	bt.openAccount("Account2",200);
	bt.openAccount("Account3",300);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);
	bt.openAccount("Account4",400);

	bt.cancelAccount("Account4");
	bt.cancelAccount(5);
	
	bt.deposit(3,4500);
	bt.fetch(3,50);
	bt.fetch(3,1000);

	accountlist=bt.getAccountlist();
	for(ba_iterator=accountlist.begin();ba_iterator!=accountlist.end();ba_iterator++)
	{
		bap=*ba_iterator;
		cout<<bap->getAccount_id()<<"	"<<bap->getAccount_name()<<"	"<<bap->getBalance()<<endl;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -