案例题-------银行存取款系统(BSWS)软件系统模拟

银行存取款系统(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;
			}
			

		}

	}

}

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值