🎈 作者: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();
}
三、总结
本篇文章的银行管理系统功能比较简单,有需要的同学可以在本篇文章的基础上增加其它新功能,比如:注册账户,转账功能更详细的操作等。
🎈 感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章」回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞