银行账户管理程序(二)

1、为savingaccount增加一个静态数据成员total来记录各个账户的总金额,相应的静态成员函数getTotal用来对其访问。

2、将getbalance,accumulate这些成员函数改为常成员函数

3、将SavingAccount类从主函数所在的源文件中分开,建立两个新文件account.h和account.cpp,分别存放在SavingAccount类的定义和实现。


//1.cpp
//在主函数中要将需要的函数头文件全部写出
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#include"account.h"
int main()
{
    SavingAccount s1(0,11111,0.015);
    SavingAccount s2(1,22222,0.015);
    s1.deposit(5,5000);
    s2.deposit(25,10000);
    s1.deposit(45,5500);
    s2.withdrawl(60,11000);
    s1.settle(90);
    s2.settle(90);
    s1.show();
    s2.show();
    cout<<"Total:"<<SavingAccount::getTotal()<<endl;
    return 0;
}
 
//account.h
#ifndef__ACCOUNT_H__
#define__ACCOUNT_H__
class SavingAccount{
private:
    int id;             //账户
    double balance;       //余额
    double rate;          //年利率
    int lastdate;         //余额上一次变化的日期
    double accumulation;  //余额按日累加之和
    int accumulate (int date) const; //获得到指定日期位置的存款累计值
    double getbalance () const{return balance;}
    double getrate() const {return rate;}
    static double total;    //所有账户的总金额
    void record(int date,double amount);    //记账
public:
    SavingAccount(int date,int id,double rate);    //构造函数
    static double getTotal(){return total;}
    void deposit(int date,double amount);   //存款
    void withdrawl(int date,double amount);       //取款
    void show();   //显示余额
    void settle(int date);  //结算利息,每年一月一日调用此函数
};
#endif//__ACCOUNT_H__
 
 
//account.cpp
#include "account.h"
double SavingAccount::total(0);   //给静态成员数据赋值
//类的成员函数的实现
SavingAccount::SavingAccount(int date,int id,double rate):id(id),balance(0),rate(rate),lastdate(date),accumulation(0){
    cout<<"#"<<id<<"is created"<<endl;
    total++;   //要对静态变量++
}
int SavingAccount::accumulate(int date)const{      //要加const
return accumulation+balance*(date-lastdate);
}
void SavingAccount::record(int date,double amount){
    lastdate=date;
    amount=floor(100*amount+0.5)/100;   //floor为向下取整函数,此处可以做到保留两位小数
    balance+=amount;
    cout<<date<<"\t#"<<id<<"\t"<<amount<<"\t"<<balance<<endl;
}
void SavingAccount::deposit(int date,double amount){
    record(date,amount);
}
void SavingAccount::withdrawl(int date, double amount){
    if(amount>balance)
        cout<<"not enough money"<<endl;
    else
        record(date,-amount);
}
void SavingAccount::show(){
    cout<<"#"<<id<<"\tBalance"<<balance<<endl;
}
void SavingAccount::settle(int date){
    double interest=accumulate(date)*rate/365; //计算年息
    if(interest!=0)
        record(date,interest);
    accumulation=0;
}
 
 
 


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的银行账户管理程序的 C++ 代码,包括添加账户、存款、取款和查询余额等功能: ```c++ #include <iostream> #include <string> #include <vector> using namespace std; // 定义账户类 class Account { public: string name; // 账户名 int balance; // 账户余额 // 构造函数 Account(string n, int b) { name = n; balance = b; } // 存款 void deposit(int amount) { balance += amount; } // 取款 void withdraw(int amount) { if (balance >= amount) { balance -= amount; } else { cout << "余额不足,无法取款!" << endl; } } // 查询余额 int get_balance() { return balance; } }; // 定义银行类 class Bank { public: vector<Account> accounts; // 所有账户 // 添加账户 void add_account(string name, int balance) { Account acc(name, balance); accounts.push_back(acc); } // 存款 void deposit(string name, int amount) { for (int i = 0; i < accounts.size(); i++) { if (accounts[i].name == name) { accounts[i].deposit(amount); cout << "存款成功,当前余额为:" << accounts[i].get_balance() << endl; return; } } cout << "账户不存在!" << endl; } // 取款 void withdraw(string name, int amount) { for (int i = 0; i < accounts.size(); i++) { if (accounts[i].name == name) { accounts[i].withdraw(amount); cout << "取款成功,当前余额为:" << accounts[i].get_balance() << endl; return; } } cout << "账户不存在!" << endl; } // 查询余额 void get_balance(string name) { for (int i = 0; i < accounts.size(); i++) { if (accounts[i].name == name) { cout << "当前余额为:" << accounts[i].get_balance() << endl; return; } } cout << "账户不存在!" << endl; } }; int main() { Bank bank; // 创建银行对象 // 添加账户 bank.add_account("张三", 1000); bank.add_account("李四", 2000); bank.add_account("王五", 3000); // 存款 bank.deposit("张三", 500); bank.deposit("李四", 1000); bank.deposit("王五", 1500); // 取款 bank.withdraw("张三", 200); bank.withdraw("李四", 500); bank.withdraw("王五", 1000); // 查询余额 bank.get_balance("张三"); bank.get_balance("李四"); bank.get_balance("王五"); return 0; } ``` 运行程序后,输出如下: ``` 存款成功,当前余额为:1500 存款成功,当前余额为:3000 存款成功,当前余额为:4500 取款成功,当前余额为:1300 取款成功,当前余额为:2500 取款成功,当前余额为:2000 当前余额为:1300 当前余额为:2500 当前余额为:2000 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值