定义一个银行账户类 Account,账户中包含卡号(id)信息,开户名(name)和余额
(balance),定义构造函数初始化各种信息,定义成员函数 void deposit(float s)实
现存款功能,定义成员函数 void withdraw(float s)实现取款功能,取款时需判断余额
是否足够。要求画出类图,设计类并编写 main 函数测试。
这个怎么写求解答
给你大概写了一个代码,类图你就自己画了吧
#include <iostream>
using namespace std;
class Account {
private:
string id; // 卡号
string name; // 开户名
float balance; // 余额
public:
// 构造函数
Account(const string& accountId, const string& accountName, float initialBalance) {
id = accountId;
name = accountName;
balance = initialBalance;
}
// 存款
void deposit(float amount) {
balance += amount;
cout << "存款成功,当前余额为:" << balance << endl;
}
// 取款
void withdraw(float amount) {
if (balance >= amount) {
balance -= amount;
cout << "取款成功,当前余额为:" << balance << endl;
} else {
cout << "余额不足,无法取款" << endl;
}
}
// 获取余额
float getBalance() const {
return balance;
}
};
int main() {
// 创建账户
Account account("1234567890", "John Doe", 1000.0);
// 存款
account.deposit(500.0);
// 取款
account.withdraw(200.0);
account.withdraw(1500.0);
// 获取余额
cout << "当前余额为:" << account.getBalance() << endl;
return 0;
}
程序:
// Account.h
#ifndef ACCOUNT_H
#define ACCOUNT_H
#include <string>
class Account {
public:
Account(std::string id, std::string name, float balance);
void deposit(float s);
void withdraw(float s);
void display();
private:
std::string id_;
std::string name_;
float balance_;
};
#endif // !ACCOUNT_H
// Account.cpp
#include "Account.h"
#include <iostream>
Account::Account(std::string id, std::string name, float balance) :
id_(id), name_(name), balance_(balance) {}
void Account::deposit(float s) {
balance_ += s;
std::cout << "存款成功,当前余额:" << balance_ << std::endl;
}
void Account::withdraw(float s) {
if (balance_ >= s) {
balance_ -= s;
std::cout << "取款成功,当前余额:" << balance_ << std::endl;
}
else {
std::cout << "余额不足,取款失败!" << std::endl;
}
}
void Account::display() {
std::cout << "卡号:" << id_ << "\t开户名:" << name_ << "\t余额:" << balance_ << std::endl;
}
#include "Account.h"
#include <iostream>
int main() {
Account myAccount("123456", "张三", 1000);
myAccount.display();
myAccount.deposit(100);
myAccount.withdraw(200);
myAccount.withdraw(1000);
return 0;
}
类图如下:
+----------------+
| Account |
+----------------+
| - id_: string |
| - name_: string |
| - balance_: float|
+----------------+
| + Account(id: string, name: string, balance: float) |
| + deposit(s: float): void |
| + withdraw(s: float): void |
| + display(): void |
+----------------+
输出结果如下:
卡号:123456 开户名:张三 余额:1000
存款成功,当前余额:1100
取款成功,当前余额:900
余额不足,取款失败!
根据题目要求,我们可以设计一个Account
类来表示银行账户,类图如下:
____________
Account
____________
-id: int
-name: string
-balance: double
____________
+Account(id: int, name: string, balance: double)
+deposit(s: double): void
+withdraw(s: double): void
下面是根据上述类图设计的完整代码实现:
#include <iostream>
#include <string>
class Account {
private:
int id;
std::string name;
double balance;
public:
Account(int id, std::string name, double balance) {
this->id = id;
this->name = name;
this->balance = balance;
}
void deposit(double s) {
balance += s;
}
void withdraw(double s) {
if (balance >= s) {
balance -= s;
} else {
std::cout << "Insufficient balance!" << std::endl;
}
}
};
int main() {
Account account(123456, "John Doe", 500);
account.deposit(200);
account.withdraw(300);
return 0;
}
以上代码定义了一个Account
类,并在main
函数中进行了存款和取款的测试。
执行以上代码后,会输出以下结果:
Insufficient balance!