先設計一個基本賬戶類,再通過繼承基本賬戶類設計一個儲蓄賬戶類,儲蓄賬戶
類中增加密碼、地址、最小余額和利率等成員變數,并增加一些銀行賬戶經常用到的成員函式,
要求:
(1)類中的成員函式具有輸入、輸出儲戶上述資訊的功能;
(2)將賬號設計成不可更改;
(3)修改密碼時要提供原密碼,
本文為博主原創文章,未經博主允許不得轉載,
著作權為陳博超所有,第一次于2020年11月22日發表于BLOG上
本BLOG上原創文章未經本人許可,不得用于商業用途,轉載請經允許后注明出處,否則保留追究法律責任的權利,
#include<iostream>
#include<string.h>
using namespace std;
class basic {
public:
long id;
basic(long a):id(a) //基類建構式
{}
void show(long id) {
cout <<"賬號:" << id << endl;
}
~basic() //基類解構式
{}
};
class account :private basic {
public:
char name[20];
long balance;
char password[20];
char address[20];
long minimum_balance;
float annual_interest_rate;
account(char *a, long b, long c, char *d, char *e, long f, float g): //派生類建構式
basic(b), balance(c), minimum_balance(f), annual_interest_rate(g)
{
strcpy_s(name, a);
strcpy_s(password, d);
strcpy_s(address, e);
}
void show1(); //宣告顯示函式
void deposit(long money); //宣告存款函式
void withdrawal(long money); //宣告取款函式
void change_password(char* chpassword); //宣告修改密碼函式
void modify_name(char* chname); //宣告修改姓名函式
void modification_address(char* chaddress);//宣告修改地址函式
~account() //派生類解構式
{}
};
void account::show1()
{
cout << "姓名:" << name << endl;
basic::show(id);
cout << "余額:" << balance << endl;
cout << "密碼:" << password << endl;
cout << "地址:" << address << endl;
cout << "最小余額:" << minimum_balance << endl;
cout << "年利率:" << annual_interest_rate << endl;
}
void account::deposit(long money) {
balance += money;
}
void account::withdrawal(long money) {
balance -= money;
}
void account::change_password(char *chpassword) {
strcpy_s(password, chpassword);
}
void account::modify_name(char* chname) {
strcpy_s(name, chname);
}
void account::modification_address(char* chaddress) {
strcpy_s(address, chaddress);
}
int main() {
char name[20];
long id;
long balance;
char password[20];
char address[20];
long minimum_balance;
float annual_interest_rate;
long money; //存款或取款數額
int a;
cout << "請輸入客戶資訊" << endl;
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;
account n(name, id, balance, password, address, minimum_balance, annual_interest_rate);
cout << "------------------------請輸入操作------------------------------" << endl;
cout << "1.列印客戶資訊" << endl << "2.存款" << endl << "3.取款" << endl;
cout << "4.修改密碼" << endl <<"5.修改姓名" << endl << "6.修改地址" << endl;
while (scanf("%d", &a) != EOF) {
switch (a) {
case 1:
n.show1();
break;
case 2:
cout << "請輸入存款金額:" << endl;
cin >> money;
n.deposit(money);
cout << "當前余額:" << n.balance <<endl;
break;
case 3:
cout << "請輸入取款金額:" << endl;
cin >> money;
n.withdrawal(money);
cout << "當前余額:" << n.balance << endl;
break;
case 4:
char chpassword[20];
cout << "請輸入原始密碼:" << endl;
cin >> chpassword;
if (strcmp(n.password, chpassword) != 0) {
cout << "原始密碼錯誤!請重新選擇操作!" << endl;
}
else {
cout << "請輸入新密碼:" << endl;
cin >> chpassword;
n.change_password(chpassword);
cout << "修改成功!" << endl;
}
break;
case 5:
char chname[20];
cout << "請輸入修改后的姓名:" << endl;
cin >> chname;
n.modify_name(chname);
cout << "修改成功!" << endl;
break;
case 6:
char chaddress[20];
cout << "請輸入修改后的地址:" << endl;
cin >> chaddress;
n.modification_address(chaddress);
cout << "修改成功!" << endl;
break;
}
}
return 0;
}

本文為博主原創文章,未經博主允許不得轉載,
著作權為陳博超所有,第一次于2020年11月22日發表于BLOG上
本BLOG上原創文章未經本人許可,不得用于商業用途,轉載請經允許后注明出處,否則保留追究法律責任的權利,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/226904.html
標籤:其他
