#include<iostream>
#include<string>
using namespace std;
class Bank {
protected:
const string id;
string password;
double balance;
public:
Bank(const string Id, string Password, double Balance) :id(Id) {
password = Password;
balance = Balance;
}
string GetId() {
return id;
}
string GetPassword() {
return id;
}
double GetBalance() {
return balance;
}
};
class SaveBank :public Bank {
protected:
string name;
string address;
double minimum_balance;
float annual_interest_rate;
public:
SaveBank(const string Id, string Password, double Balance, string Name, string Address, double Minimum_balance, float Annual_interest_rate):Bank(Id,Password,Balance) {
name = Name;
address = Address;
minimum_balance = Minimum_balance;
annual_interest_rate = Annual_interest_rate;
}
string GetName() { return name; }
string GetAddress() { return address; }
double Get_minimum_balance() { return minimum_balance; }
float Get_annual_interest_rate() { return annual_interest_rate; }
double cunkuan(double money) {//存款
balance += money;
return balance;
}
double qukuan(double money) {//取款
if (money <= (balance - minimum_balance)) {
balance -= money;
return balance;
}
else{
cerr << "余额不足!请重新选择操作!" << endl;
}
}
double profit(int year) {
return (balance * annual_interest_rate * year);
}
string change_password() {//修改密码
string new_password;
string number;
cout << "请输入原始密码:" << endl;
cin >> number;
if (number == password) {
cout << "请输入新密码:" << endl;
cin >> new_password;
password = new_password;
cout << "修改成功!" << endl;
}else
{
cout << "原始密码错误,请重新选择操作!" << endl;
}
return password;
}
void getbank() {//获取账户信息
cout << "姓名:" << GetName()<<endl;
cout << "账号:" << GetId() << endl;
cout << "余额:" << GetBalance() << endl;
cout << "密码:" << GetPassword() << endl;
cout << "地址:" << GetAddress() << endl;
cout << "最少余额:" << Get_minimum_balance() << endl;
cout << "利率:" << Get_annual_interest_rate() << endl;
}
};
int main(void) {
string name;
string id;
double balance;
string password;
string address;
double minimum_balance;
float annual_interest_rate;
int op;
double money;
int year;
cout << "请输入客户信息" << endl;
cout << "姓名:" ;
cin>>name;
cout << "账号:" ;
cin>>id;
cout << "余额:" ;
cin>>balance;
cout << "密码:" ;
cin>>password;
cout << "地址:";
cin>>address;
cout << "最小余额:";
cin>>minimum_balance;
cout << "年利率:" ;
cin >> annual_interest_rate;
SaveBank linmo(id, password, balance, name, address, minimum_balance, annual_interest_rate);
cout << "----------------------请输入操作------------------------" << endl;
cout << "1.打印客户信息" << endl;
cout << "2.存款" << endl;
cout << "3.取款" << endl;
cout << "4.修改密码" << endl;
cout << "-----------------------------------------------------------" << endl;
while (cin >> op) {
switch (op) {
case 1:
linmo.getbank();
cout << "------------------------------------------------------" << endl;
break;
case 2:
cout << "请输入存款金额:" << endl;
cin >> money;
cout << "当前余额:" << linmo.cunkuan(money) << endl;
cout << "存款年限:" << endl;
cin >> year;
cout << "预计收益:" << linmo.profit(year) << endl;
cout << "-------------------------------------------------------" << endl;
break;
case 3:
cout << "请输入取款金额:" << endl;
cin >> money;
linmo.qukuan(money);
cout << "当前余额:"<< linmo.GetBalance() << endl;
cout << "---------------------------------------------------------" << endl;
break;
case 4:
linmo.change_password();
cout << "-----------------------------------------------------------" << endl;
break;
default:
cout << "操作错误!" << endl;
cout << "------------------------------------------------------------" << endl;
}
}
return 0;
}