银行存取款系统(BSWS)软件是一款通用性能极强的银行存取款管理系统,软件功能囊括了银行从用户开户到最终销户等业务的全过程。软件适用于各级各类的银行。软件覆盖银行业的现金办理与金融转账业务,软件的各个模块操作界面简单、实用,软件帮助系统让用户可以在最短的时间内掌握软件的使用方法,帮助用户生意更上一层楼。软件系统采用银行软件业务能用的控制台操作界面,操作简单易学。
系统基本模块包括:
功能点:
1.开户
2.存款
3.取款
4.修改密码
5.查询
6.转账
7.销户
功能点介绍
1.开户
开户时需要储户输入个人信息,包括姓名,开户金额,完成后储蓄信息被保存到一个储户基本信息文件中,并反馈给储户开户后的账号,初始密码,开户金额,开户日期。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码
2.存款
存款时储户提供事先获得的账号及存储的金额(现金),将金额加到账户原有金额中,然后返回本次操作的信息包括存储的金额,账号中现有金额,操作时间。同时生成一个一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码
3.取款
取款时储户提供事先获取的账号及要提取的金额(金额),将账号中原有的金额减去要提取的金额,将现金交给储户,然后返回本次操作的信息包括提取的金额,账号中原有的金额,操作的时间。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码
4.查询
查询时储户提供账号,密码。返回查询信息包括账号,操作类型,操作金额,操作具体时间,旧密码,新密码。
5.修改密码
修改密码时储户提供账号及密码,根据提示输入新密码两次(两次输入必须相同),完成后密码修改成功。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码。
6.转账
转账时储户提供事先获得转出账号,转出账号密码,转入账号,转账金额,将转出账号中的金额减去转账金额,转入账号中的金额加上转账金额,然后返回本次操作的信息包括转账的金额,转出账号现有的金额,本次操作的时间。同时生成一个操作记录包括账号,操作类型,操作金额,本次操作的具体时间,旧密码,新密码
7.销户
销户时储户提供账号及密码,将账号中的金额全部取出,然后将本账户的信息从文件中删除(由于没有学习文件操作,改为集合删除账户信息),返回销户成功
1.银行账户类
package com.zhiyou100.bank.pojo;
import java.util.ArrayList;
public class Account {
private int password;
private String name;
private String personId;
private double balance;
private int id;
private String time;
private ArrayList<rizhi> rizhis = new ArrayList<>();
public ArrayList<rizhi> getRizhis() {
return rizhis;
}
public void setRizhis(ArrayList<rizhi> rizhis) {
this.rizhis = rizhis;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public Account() {
super();
}
public Account(int password, String name, String personId, double balance, int id, String time) {
super();
this.password = password;
this.name = name;
this.personId = personId;
this.balance = balance;
this.id = id;
this.time = time;
}
@Override
public String toString() {
return "户主:" + name + ", 密码:" + password + ", 余额:" + balance + ", 账号:" + id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Account(int password, String name, String personId, double balance, int id) {
super();
this.password = password;
this.name = name;
this.personId = personId;
this.balance = balance;
this.id = id;
}
public Account(int id, String name, int balance, int password) {
super();
this.id = id;
this.name = name;
this.balance = balance;
this.password = password;
}
public Account(int password, String name, String personId, double balance) {
super();
this.password = password;
this.name = name;
this.personId = personId;
this.balance = balance;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
日志类
package com.zhiyou100.bank.pojo;
public class rizhi {
private String type;
private int balance;
private int oldPassword;
private int newPassword;
private String time;
public rizhi() {
super();
}
public rizhi(String type, int balance, int oldPassword, int newPassword, String time) {
super();
this.type = type;
this.balance = balance;
this.oldPassword = oldPassword;
this.newPassword = newPassword;
this.time = time;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public int getOldPassword() {
return oldPassword;
}
public void setOldPassword(int oldPassword) {
this.oldPassword = oldPassword;
}
public int getNewPassword() {
return newPassword;
}
public void setNewPassword(int newPassword) {
this.newPassword = newPassword;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return "操作类型:" + type + " 流动金额:" + balance + " 旧密码:" + oldPassword + " 新密码:"
+ newPassword + " 时间:" + time ;
}
}
3.工具类
package com.zhiyou100.bank.tools;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import com.zhiyou100.bank.pojo.Account;
import com.zhiyou100.bank.pojo.rizhi;
public class Tools {
static int id = 10000;
private static ArrayList<Account> list;
public static int getId() {
return id;
}
public static void setId(int id) {
Tools.id = id;
}
public static ArrayList<Account> getList() {
return list;
}
public static void setList(ArrayList<Account> list) {
Tools.list = list;
}
// 1.开户
public void kaihu(String name, int password, int repw, int balance) {
if (password == repw) {
System.out.println("恭喜你开户成功");
id++;
System.out.println("你的账号为:" + id);
System.out.println("你的密码为:" + password + ",请牢记密码");
list.add(new Account(id, name, balance, password));
String time = time();
list.get(list.size() - 1).getRizhis().add(new rizhi("开户", balance, password, password, time));
} else {
System.out.println("两次输入的密码不一致,开户失败!");
}
}
// 2.存款
public void deposit(int id, int money,int password) {
boolean kaiguan = true;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id) {
kaiguan = false;
if (money > 0) {
list.get(i).setBalance(money + list.get(i).getBalance());
System.out.println("存款成功!");
System.out.println("您的存款金额为:" + money);
System.out.println("您的余额是:" + list.get(i).getBalance());
String time = time();
ArrayList<rizhi> rizhis = list.get(i).getRizhis();
list.get(i).getRizhis().add(new rizhi("存款", money, rizhis.get(rizhis.size()-1).getOldPassword(), password, time));
}
}
}
if (kaiguan) {
System.out.println("账号不匹配!请慎重输入!");
}
}
// 3.取款
public void withdraw(int id, int money, int password) {
boolean kaiguan = true;
boolean kaiguan2 = false;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id) {
kaiguan = false;
if (list.get(i).getPassword() == password) {
kaiguan2 = false;
if (list.get(i).getBalance() >= money && money > 0) {
list.get(i).setBalance(list.get(i).getBalance() - money);
System.out.println("恭喜你取款成功!");
System.out.println("您的余额是:" + list.get(i).getBalance());
String time = time();
ArrayList<rizhi> rizhis = list.get(i).getRizhis();
list.get(i).getRizhis().add(new rizhi("取款", money, rizhis.get(rizhis.size()-1).getOldPassword(), password, time));
return;
}
}
}
}
if (kaiguan) {
System.out.println("该账户不存在!");
}
if (kaiguan2) {
System.out.println("余额不足!");
} else {
System.out.println("密码不正确!");
}
}
// 4.查询
public void check(int id, int password) {
boolean kaiguan = true;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id && list.get(i).getPassword() == password) {
kaiguan = false;
System.out.println("查询成功");
System.out.println("您的账户信息是:");
System.out.println(list.get(i).toString());
for (int j = list.get(i).getRizhis().size() - 1; j >= 0; j--) {
System.out.println(list.get(i).getRizhis().get(j).toString());
}
return;
}
}
if (kaiguan) {
System.out.println("没有该账户信息,请确定你输入的账号和密码正确");
}
}
// 5.修改密码
public void xiugai(int id3, int password4, int password5, int password6) {
boolean kaiguan = true;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id3 && list.get(i).getPassword() == password4) {
kaiguan = false;
if (password5 == password6) {
list.get(i).setPassword(password5);
System.out.println("恭喜你修改成功!");
System.out.println("您的新密码为:" + password5 + "(请牢记新密码!)");
String time = time();
ArrayList<rizhi> rizhis = list.get(i).getRizhis();
list.get(i).getRizhis().add(new rizhi("修改密码", 0, rizhis.get(rizhis.size()-1).getNewPassword(), password5, time));
return;
}
}
}
if (kaiguan) {
System.out.println("账号或者密码不正确");
} else {
System.out.println("两次输入的密码不一致!");
}
}
// 6.转账
public void zhuanzhang(int id, int password, int id2, int money) {
boolean kaiguan = true;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id && list.get(i).getPassword() == password) {
kaiguan = false;
for (int j = 0; j < list.size(); j++) {
if (list.get(j).getId() == id2) {
list.get(i).setBalance(list.get(i).getBalance() - money);
System.out.println(list.get(i).toString());
list.get(j).setBalance(list.get(j).getBalance() + money);
System.out.println(list.get(j).toString());
System.out.println("转账成功");
String time = time();
ArrayList<rizhi> rizhis = list.get(i).getRizhis();
list.get(i).getRizhis().add(new rizhi("转账", money, rizhis.get(rizhis.size()-1).getOldPassword(), password, time));
return;
}
}
}
}
if (kaiguan) {
System.out.println("账号密码不正确!");
} else {
System.out.println("被转账账户不存在!");
}
}
// 销户
public void xiaohu(int id, int password) {
boolean kaiguan = true;
for (int i = 0; i < list.size(); i++) {
kaiguan = false;
if (list.get(i).getId() == id && list.get(i).getPassword() == password) {
if (list.get(i).getBalance() > 0) {
System.out.println("您的账户还有余额,请全部取出后再销户!");
System.out.println("您的余额为:" + list.get(i).getBalance());
return;
} else {
list.remove(i);
System.out.println("销户完成");
System.out.println("欢迎您下次光临");
return;
}
}
}
if (kaiguan) {
System.out.println("账号或者密码不正确");
}
}
public String time() {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sj = sdf.format(d);
System.out.println(sj);
return sj;
}
}
4.主界面
package com.zhiyou100.bank.main;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
import com.zhiyou100.bank.pojo.Account;
import com.zhiyou100.bank.pojo.rizhi;
import com.zhiyou100.bank.tools.Tools;
public class Controller {
public static void main(String[] args) {
ArrayList<Account> list = new ArrayList<>();
Tools.setList(list);
Tools tools = new Tools();
while (true) {
System.out.println("************************");
System.out.println(" 银行管理系统 ");
System.out.println("************************");
System.out.println(" 1.开户");
System.out.println(" 2.存款");
System.out.println(" 3.取款");
System.out.println(" 4.查询");
System.out.println(" 5.修改密码");
System.out.println(" 6.转账");
System.out.println(" 7.销户");
System.out.println(" 8.退出系统");
System.out.println("------------------------");
System.out.println("请选择你要办理的业务:");
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
switch (i) {
case 1:
System.out.println("欢迎您来办理开户业务,请根据系统提示输入!");
System.out.println("请输入姓名:");
String name = scanner.next();
System.out.println("请输入密码:");
int password = scanner.nextInt();
System.out.println("请再次输入密码:");
int repw = scanner.nextInt();
System.out.println("请输入初始金额:");
int balance = scanner.nextInt();
System.out.println("请稍等,正在开户中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.kaihu(name, password, repw, balance);
break;
case 2:
System.out.println("欢迎您来办理存款业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id = scanner.nextInt();
System.out.println("请输入密码:");
int password123 = scanner.nextInt();
System.out.println("请输入存款金额:");
int balance1 = scanner.nextInt();
System.out.println("请稍等,正在存款中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.deposit(id, balance1,password123);
break;
case 3:
System.out.println("欢迎您来办理取款业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id1 = scanner.nextInt();
System.out.println("请输入密码:");
int password2 = scanner.nextInt();
System.out.println("请输入取款金额:");
int money = scanner.nextInt();
System.out.println("请稍等,正在取款中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.withdraw(id1, money, password2);
break;
case 4:
System.out.println("欢迎您来办理查询业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id2 = scanner.nextInt();
System.out.println("请输入密码:");
int password3 = scanner.nextInt();
System.out.println("请稍等,正在查询中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.check(id2, password3);
break;
case 5:
System.out.println("欢迎您来办理修改密码业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id3 = scanner.nextInt();
System.out.println("请输入密码:");
int password4 = scanner.nextInt();
System.out.println("请输入新密码");
int password5 = scanner.nextInt();
System.out.println("请再次输入新密码");
int password6 = scanner.nextInt();
System.out.println("请稍等,正在修改中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.xiugai(id3, password4, password5, password6);
tools.time();
break;
case 6:
System.out.println("欢迎您来办理转账业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id4 = scanner.nextInt();
System.out.println("请输入密码:");
int password7 = scanner.nextInt();
System.out.println("请输入要转入的账号:");
int id5 = scanner.nextInt();
System.out.println("请输入转账金额:");
int money1 = scanner.nextInt();
System.out.println("请稍等,正在转账中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.zhuanzhang(id4, password7, id5, money1);
tools.time();
break;
case 7:
System.out.println("欢迎您来办理销户业务,请根据系统提示输入!");
System.out.println("请输入账号:");
int id6 = scanner.nextInt();
System.out.println("请输入密码:");
int password8 = scanner.nextInt();
System.out.println("请稍等,正在销户中.....");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("------------------------");
tools.xiaohu(id6, password8);
tools.time();
break;
case 8:
System.out.println("欢迎下次光临!!");
System.exit(1);
tools.time();
break;
default:
break;
}
}
}
}