酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++实现BankAccount类:含构造、封装与静态成员并附测试代码

# BankAccount类设计与实现 以下是符合要求的BankAccount类C++实现: ```cpp #include <iostream> #include <string> #include <random> #include <iomanip> class BankAccount { private: std::string accountNumber; std::string ownerName; double balance; static int totalAccounts; public: // 有参构造函数 BankAccount(const std::string& accNum, const std::string& name, double initialBalance) : accountNumber(accNum), ownerName(name), balance(initialBalance) { totalAccounts++; } // 无参构造函数 BankAccount() : ownerName("Anonymous"), balance(0) { // 生成随机账号 ACC-XXX static int counter = 1; std::ostringstream oss; oss << "ACC-" << std::setw(3) << std::setfill('0') << counter++; accountNumber = oss.str(); totalAccounts++; } // 获取账号 std::string getAccountNumber() const { return accountNumber; } // 获取户名 std::string getOwnerName() const { return ownerName; } // 获取余额(只读) double getBalance() const { return balance; } // 存款 void deposit(double amount) { if (amount > 0) { balance += amount; } } // 取款 bool withdraw(double amount) { if (amount > 0 && balance >= amount) { balance -= amount; return true; } return false; } // 静态方法:获取总账户数 static int getTotalAccounts() { return totalAccounts; } }; // 初始化静态成员 int BankAccount::totalAccounts = 0; int main() { // 测试有参构造函数 BankAccount account1("12345678", "张三", 1000.0); std::cout << "账户1: " << account1.getAccountNumber() << ", " << account1.getOwnerName() << ", 余额: " << account1.getBalance() << std::endl; // 测试无参构造函数 BankAccount account2; std::cout << "账户2: " << account2.getAccountNumber() << ", " << account2.getOwnerName() << ", 余额: " << account2.getBalance() << std::endl; // 测试存款 account1.deposit(500.0); std::cout << "账户1存款500后余额: " << account1.getBalance() << std::endl; // 测试取款 if (account1.withdraw(200.0)) { std::cout << "账户1取款200成功,余额: " << account1.getBalance() << std::endl; } else { std::cout << "账户1取款失败" << std::endl; } // 测试余额不足取款 if (account1.withdraw(2000.0)) { std::cout << "账户1取款2000成功" << std::endl; } else { std::cout << "账户1取款2000失败,余额不足" << std::endl; } // 测试静态方法 std::cout << "总账户数: " << BankAccount::getTotalAccounts() << std::endl; return 0; } ``` ## 代码说明 1. 构造函数: - 有参构造函数初始化账号、户名和余额 - 无参构造函数生成随机账号(格式ACC-XXX),默认户名"Anonymous",余额0 2. 属性封装: - 余额balance通过私有成员实现只读 - 提供deposit()和withdraw()方法修改余额 - withdraw()方法会验证余额是否充足 3. 静态成员: - totalAccounts统计所有账户总数 - getTotalAccounts()返回当前总账户数 4. 主函数测试: - 创建有参和无参账户 - 测试存款和取款功能 - 验证余额不足时的取款处理 - 输出总账户数 ## 注意事项 1. 静态成员变量totalAccounts需要在类外初始化 2. 无参构造函数中的随机账号生成使用静态计数器确保唯一性 3. withdraw()方法返回bool表示操作是否成功 ######[AI写代码神器 | 963点数解答 | 2025-04-13 15:50:48]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]