酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

设计一个简单的银行账户类,包含以下基本方法: 开户:用户可以通过构造函数或特定的方法(如openaccount)来开设一个新账户,需要设置账户的初始余额(默认为0)。 存款:提供一个deposit方法,获取该账户,允许用户向账户中存入一定金额。 取款:提供一个withdraw方法,允许用户从账户中取出一定金额,但需要注意账户余额不能小于取款金额,否则应抛出余额不足异常。 查询余额:提供一个getbalance方法,用于返回当前账户的余额。 你需要在c代码里做如下几件事: 1、实现上述功能的bankaccount类。 2、并写一个测试类bankaccounttest,写4个测试方法,都放到main里面,一次性分别按如下顺序执行: 方法①开户-存款20-取款19.89-查询余额 方法②开户-存款20-取款21.01-查询余额 方法③存款20-开户-取款19.89-查询余额 方法④取款20-开户-存款20.01-查询余额 用于验证bankaccount类的各个功能是否按预期工作,①②③④方法为连贯执行,每一个方法执行完,恢复初始状态,②开始执行,以此类推。 相关执行结果输出到ide控制台,

```c #include <stdio.h> #include <stdlib.h> typedef struct BankAccount { double balance; } BankAccount; BankAccount* openaccount(double initial_balance) { BankAccount* account = (BankAccount*)malloc(sizeof(BankAccount)); account->balance = initial_balance; return account; } void deposit(BankAccount* account, double amount) { account->balance += amount; } void withdraw(BankAccount* account, double amount) { if (account->balance < amount) { printf("余额不足,无法取款。 "); exit(1); } account->balance -= amount; } double getbalance(BankAccount* account) { return account->balance; } void closeaccount(BankAccount* account) { free(account); } int main() { // 方法①开户-存款20-取款19.89-查询余额 BankAccount* account1 = openaccount(0); deposit(account1, 20); withdraw(account1, 19.89); printf("账户余额:%.2f ", getbalance(account1)); closeaccount(account1); // 方法②开户-存款20-取款21.01-查询余额 BankAccount* account2 = openaccount(0); deposit(account2, 20); withdraw(account2, 21.01); // 这里会抛出异常并退出程序 closeaccount(account2); // 方法③存款20-开户-取款19.89-查询余额 BankAccount* account3 = openaccount(0); deposit(account3, 20); withdraw(account3, 19.89); printf("账户余额:%.2f ", getbalance(account3)); closeaccount(account3); // 方法④取款20-开户-存款20.01-查询余额 BankAccount* account4 = openaccount(0); withdraw(account4, 20); // 这里会抛出异常并退出程序 deposit(account4, 20.01); printf("账户余额:%.2f ", getbalance(account4)); closeaccount(account4); return 0; } ``` [2024-08-08 14:48:54 | AI写代码神器 | 579点数解答]

相关提问