🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬

本篇文章实现了一个很简单的银行管理系统,主要包括:查询、存款、提款、转移等功能,下面就来详细讲解下。
一、设计思路
银行管理系统的整体流程图如下所示。
 
  如上图所示,用户首先通过登录界面登录系统,系统中已提前存储了用户信息。登录成功后即可对当前账户进行操作,主要包括:查询、存款、提款、转移等。
类的结构设计如下所示。
#ifndef BANK_H
#define BANK_H
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <unistd.h>
#include <windows.h>
#include <stdio.h>
#include <ctime>
#include<iomanip>
using namespace std;
struct Node{
    string accountNo;
    string accountName;
    int password;
    double ballance;
    char vip;
};
class Bank_System{
public:
    Bank_System();
    ~Bank_System();
    void Menu();
    bool Verify_Identity();
    void Read_Information();
    void Write_Information();
    void Analysis(const string &str);
    void Inquiry();
    void Deposit();
    void Withdraw();
    void Transfer();
    void Quit();
    void delay(int time);
    bool Get_Accountinfo(const string &accountNo);
    int Get_Accountinfo_by_accountName(const string &accountNo);
    void Input();
    void Return_Confirm();
    void Print_Start();
    void Update();
    void Print_Space(int num, const string &str);
private:
    Node member_current;
    Node member[1000];
    int num;
    bool flag;
    int id;
    string fileName;
};
#endif // BANK_H二、功能实现
2.1 查询
查询功能主要是对当前账户的余额进行查询,界面如下所示。
 
  如上图所示,显示了当前账户的余额,然后输入 continue 或 Quit 进行下一步的操作。
查询功能的主要代码实现如下所示。
void Bank_System::Inquiry()
{
    Print_Start();
    Print_Space(38, "Inquiry\n\n\n");
    cout.setf(ios::fixed);
    Print_Space(20, "");
    cout<<"Dear "<<member_current.accountName<<", your balance is "
        <<setprecision(2)<<member_current.ballance<<endl;
    cout.unsetf(ios::fixed);
    Return_Confirm();
}2.2 存款
存款功能可以向账户里存入资金,界面如下所示。
 
  如上图所示,显示了对当前账户存入100,然后输入 continue 或 Quit 进行下一步的操作。
存款功能的主要代码实现如下所示。
void Bank_System::Deposit()
{
    Print_Start();
    Print_Space(38, "Deposit\n\n");
    Print_Space(3, "Please input the amount to save: ");
    double tmp_balance = 0;
    cin>>tmp_balance;
    member_current.ballance += tmp_balance;
    cout<<endl;
    cout.setf(ios::fixed);
    Print_Space(17, "");
    cout<<"Dear Ryan, your balance has been updated to "<<fixed<<setprecision(2)<<member_current.ballance<<endl;
    cout.unsetf(ios::fixed);
    Update();
    Write_Information();
    Return_Confirm();
}2.3 提款
提款功能是从当前账户中取出资金,界面如下所示。
 
  如上图所示,显示了对当前账户取款 100,然后输入 continue 或 Quit 进行下一步的操作。
提款功能的主要代码实现如下所示。
void Bank_System::Withdraw()
{
    Print_Start();
    Print_Space(38, "Withdraw\n\n\n");
    Print_Space(3, "Please input the amount to withdraw: ");
    double money;
    cin>>money;
    if(money > member_current.ballance){
        cout<<endl;
        cout.setf(ios::fixed);
        Print_Space(25, "");
        cout<<"Sorry, "<<money<<"  > "<<setprecision(2)<<member_current.ballance<<endl;
        cout.unsetf(ios::fixed);
        Return_Confirm();
        return;
    }else if(member_current.vip == 'V' && money > 3000){
        cout<<endl;
        Print_Space(25, "Sorry, Remove up to 3000!\n");
        Return_Confirm();
        return;
    }else if(member_current.vip == 'N' && money > 2000){
        cout<<endl;
        Print_Space(25, "Sorry, Remove up to 2000!\n");
        Return_Confirm();
        return;
    }
    member_current.ballance -= money;
    cout<<endl;
    Print_Space(17, "");
    cout.setf(ios::fixed);
    cout<<"Dear Ryan, your balance has been updated to "
        <<setprecision(2)<<member_current.ballance<<endl;
    cout.unsetf(ios::fixed);
    Update();
    Write_Information();
    Return_Confirm();
}2.4 转移
转移是将当前账户中的钱转移到其它账户,界面如下所示。
 
  如上图所示,对账户 0123 转移了 100,然后输入 continue 或 Quit 进行下一步的操作。
转移功能的主要代码实现如下所示。
void Bank_System::Transfer()
{
    Print_Start();
    Print_Space(38, "Transfer\n\n");
    Print_Space(0, "Please input the target account number: ");
    string accountNo = "";
    cin>>accountNo;
    int target_id = Get_Accountinfo_by_accountName(accountNo);
    if(target_id == -1) {
        cout<<endl;
        Print_Space(28, "error accountNo\n\n");
        Return_Confirm();
        return;
    }
    cout<<endl;
    cout<<"Please input the amount to transfer: ";
    double money;
    cin>>money;
    if(member_current.vip == 'V' && money > 20000){
        cout<<endl;
        Print_Space(28, "error, Transfer up to 20000\n\n");
        Return_Confirm();
        return;
    }else if(member_current.vip == 'N' && money > 10000){
        cout<<endl;
        Print_Space(28, "error, Transfer up to 10000\n\n");
        Return_Confirm();
        return;
    }
    member_current.ballance -= money;
    member[target_id].ballance += money;
    double d_money = money;
    if(member_current.vip == 'V')
        member_current.ballance -= d_money*0.005;
    else if(member_current.vip == 'N')
        member_current.ballance -= d_money*0.001;
    cout.setf(ios::fixed);
    cout<<endl;
    Print_Space(13, "");
    cout<<"Transfer success! Your balance has been updated to "
        <<fixed<<setprecision(2)<<member_current.ballance<<endl;
    cout.unsetf(ios::fixed);
    Update();
    Write_Information();
    cout<<endl;
    Return_Confirm();
}三、总结
本篇文章的银行管理系统功能比较简单,有需要的同学可以在本篇文章的基础上增加其它新功能,比如:注册账户,转账功能更详细的操作等。
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞








![[矩阵论] Unit 1. 线性空间与线性变换 - 知识点整理](https://img-blog.csdnimg.cn/fe40a9dc0ac546488e88edca5cbed325.png)






![[附源码]JAVA毕业设计律师事务所网站(系统+LW)](https://img-blog.csdnimg.cn/8403344456ae4ffbbe538c1716c6c7dd.png)



