package com.xu_six;import java.io.Serializable;/*** 用户类* @author XuSir*2021年3月27日上午10:01:16*/
public class User implements Serializable{/*** */private static final long serialVersionUID = 1L;
//  用户的属性;必须私有化private String userName; //用户名private String userId;     //用户身份IDprivate String sex;         //性别private int age;            //年龄private String address;     //居住地址private String account;       //银行账号private String tel;           //预留电话private String passWord;  //取款密码private double banlance;  //账户余额//    提供外界获取属性的方法public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}public double getBanlance() {return banlance;}public void setBanlance(double banlance) {this.banlance = banlance;}public User() {// TODO Auto-generated constructor stub
}
public User(String userName, String userId, String sex,int age, String address,String account, String tel,String passWord, double banlance) {super();this.userName = userName;this.userId = userId;this.sex = sex;this.age = age;this.address = address;this.account = account;this.tel = tel;this.passWord = passWord;this.banlance = banlance;
}
@Override
public int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((account == null) ? 0 : account.hashCode());result = prime * result + ((userId == null) ? 0 : userId.hashCode());result = prime * result + ((userName == null) ? 0 : userName.hashCode());return result;
}
@Override
public boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;User other = (User) obj;if (account == null) {if (other.account != null)return false;} else if (!account.equals(other.account))return false;if (userId == null) {if (other.userId != null)return false;} else if (!userId.equals(other.userId))return false;if (userName == null) {if (other.userName != null)return false;} else if (!userName.equals(other.userName))return false;return true;
}}
package com.xu_six;import java.util.Iterator;/*** 银行类* @author XuSir*2021年3月27日下午12:13:05*/public class Bank {//  属性String bankname="发财银行";
//  私有化银行类private  Bank() {};private static Bank BANK=new Bank();public static Bank getBank() {return BANK;}
//  存款功能public void savemoney(User user,double money) {if (money>0) {user.setBanlance(user.getBanlance()+money);System.out.println("存款成功!");System.out.println();}else {System.out.println("金额输入有误!");}}
//  取款功能public void drawmoney(User user,double money,String password) {if (money<=user.getBanlance()&&user.getPassWord().equals(password)) {user.setBanlance(user.getBanlance()-money);System.out.println("取款成功!");System.out.println();}else {System.out.println("余额不足!!!");}}
//  查询余额功能public void lookmoney(User user) {System.out.println("您的当前可用余额为:");System.out.println(user.getBanlance()+":RMB"); }
//  转账功能public void transfermoney(User user,String account,double money,String password) {Iterator<User> it = Data.getData().getHolder().iterator();while (it.hasNext()) {User user2 = (User)it.next();if (user2.getAccount().equals(account)&&money<=user.getBanlance()&&user.getPassWord().equals(password)) {System.out.println("转账成功!");user2.setBanlance(user2.getBanlance()+money);user.setBanlance(user.getBanlance()-money);return;}}System.out.println("您输入的账户不存在或密码输入错误!");}}
package com.xu_six;
/*** 银行数据库* @author XuSir*2021年3月27日下午2:15:42*/import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Iterator;
import java.util.TreeSet;public class Data {// 模拟一个数据库用来保存用户信息private TreeSet<User> holder = new TreeSet<>(new MyComparator());// 私有化数据库private static Data DATA = new Data();private Data() {};public static Data getData() {return DATA;}// 写入用户public void savefile(TreeSet<User> holder) {File file = new File("D:\\Date\\bankFile");ObjectOutputStream oo = null;try {if (!file.exists()) {file.mkdirs();}oo=new ObjectOutputStream(new FileOutputStream("D:\\Date\\bankFile\\file.txt")) ;oo.writeObject(holder);} catch (Exception e) {// TODO: handle exception}finally {try {oo.close();} catch (Exception e2) {// TODO: handle exception}}}
//  读取用户@SuppressWarnings("unchecked")public TreeSet<User> readfile() {ObjectInputStream oo=null;try {oo=new ObjectInputStream(new FileInputStream("D:\\Date\\bankFile\\file.txt"));holder =(TreeSet<User>) oo.readObject();} catch (Exception e) {// TODO: handle exception}finally {try {oo.close();} catch (Exception e2) {// TODO: handle exception}}return holder;}
//  删除用户public void removeuser(String name,String id) {Iterator<User> it = holder.iterator();while (it.hasNext()) {User user =(User)it.next();if (user.getUserName().equals(name)&&user.getUserId().equals(id)) {holder.remove(user);System.out.println("注销成功");return;}}System.out.println("注销失败!(未查找到该用户)");}public TreeSet<User> getHolder() {return holder;}public void setHolder(TreeSet<User> holder) {this.holder = holder;}}
package com.xu_six;
/*** 自定义比较器*/
import java.io.Serializable;
import java.util.Comparator;public class MyComparator implements Comparator<User>,Serializable{private static final long serialVersionUID = 1L;@Overridepublic int compare(User o1, User o2) {return o1.getUserName().compareTo(o2.getUserName());}}
package com.xu_six;
/*** 后台操作系统* @author XuSir*2021年3月27日下午6:49:42*/import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;public class Operate {Scanner sc = new Scanner(System.in);// 用户登录界面public void registermenu() {Data.getData().setHolder(Data.getData().readfile());System.out.println("***************" + Bank.getBank().bankname + "欢迎您!***************");System.out.println("               ☟请您按提示操作!");while (true) {System.out.println(                   );System.out.println("        ①登录        ②开户        ③注销        0退出");System.out.println("------------------------------------------------");int key = sc.nextInt();switch (key) {case 1:System.out.println("请输入姓名!");String name1 = sc.next();System.out.println("请输入身份证号!");String id1 = sc.next();logonmenu(Data.getData().getHolder(), name1, id1);break;case 2:logon();break;case 3:System.out.println("请输入您的姓名");String name = sc.next();System.out.println("请输入您的身份证号");String id = sc.next();Data.getData().removeuser(name, id);break;case 0:System.out.println("谢谢使用!");System.out.println("祝您生活愉快!");Data.getData().savefile(Data.getData().getHolder());return;}}}// 开户public void logon() {System.out.println("********欢迎来到注册页面!********");User user = new User();while (true) {switch (1) {case 1:System.out.println("请输入姓名!");String name = sc.next();String regex = "[a-zA-Z\u4e00-\u9fa5]{2,6}";if (!name.matches(regex)) {System.out.println("输入不符合规范!(只能包含英文,中文[2到6位]");break;}user.setUserName(name);case 2:System.out.println("请输入身份证号!");String id = sc.next();regex = "[a-zA-Z0-9]{18}";if (!id.matches(regex)) {System.out.println("输入不符合规范![身份证号应为:18位]");break;}user.setUserId(id);case 3:System.out.println("请输入性别");String sex = sc.next();regex = "[\u4e00-\u9fa5]{1}";if (!sex.matches(regex)) {System.out.println("输入有误!");break;}user.setSex(sex);case 4:System.out.println("请输入年龄");int age = sc.nextInt();if (age <= 0 || age > 120) {System.out.println("年龄不合法!");break;}user.setAge(age);case 5:System.out.println("请输入居住地址");String address = sc.next();if (address == null) {System.out.println("不能为空!");break;}user.setAddress(address);case 6:System.out.println("请设置您的银行账号!");System.out.println("请输入:【9位数字】");String account = sc.next();regex = "[0-9]{9}";if (!account.matches(regex)) {System.out.println("输入有误!");break;}user.setAccount(account);case 7:System.out.println("请设置您的密码!");System.out.println("请输入【6位数字】密码");String password = sc.next();regex = "[0-9]{6}";if (!password.matches(regex)) {System.out.println("输入有误!");break;}user.setPassWord(password);case 8:System.out.println("请输入您的手机号!");String tl = sc.next();regex = "[0-9]{11}";if (!tl.matches(regex)) {System.out.println("输入有误!");break;}case 9:System.out.println("请输入您要存入的金额!");double balance = sc.nextDouble();if (balance < 0) {System.out.println("输入有误!");break;}user.setBanlance(balance);case 10:if (!Data.getData().getHolder().contains(user)) {Data.getData().getHolder().add(user);System.out.println("注册成功!");return;}else {System.out.println("注册失败!用户已存在!请检查您的名字、身份证号、银行卡号");}}break;}}// 登录界面public void logonmenu(TreeSet<User> holder, String name, String id) {Iterator<User> it = holder.iterator();while (it.hasNext()) {User user = (User) it.next();if (user.getUserName().equals(name) && user.getUserId().equals(id)) {System.out.println("验证成功!");System.out.println("please white moment...");System.out.println("正在跳转到系统菜单......");menu(user);return;} }System.out.println("登录失败!");System.out.println("请您重试!");}// 菜单界面public void menu(User user) {try {Thread.sleep(5000);} catch (Exception e) {// TODO: handle exception}System.out.println("               欢迎来到系统菜单界面!");System.out.println("*****************************************************");while (true) {System.out.println("        ①存款        ②取款        ③转账        ④查询余额        ⑤修改密码        0返回");System.out.println("--------------------------------------------------------");int key =sc.nextInt();switch (key) {case 1:System.out.println("请输入存款金额!");double money=sc.nextDouble();Bank.getBank().savemoney(user, money);break;case 2:System.out.println("请输入取款金额!");double deawmoney=sc.nextDouble();System.out.println("请输入取款密码!");String password=sc.next();Bank.getBank().drawmoney(user, deawmoney,password);break;case 3:System.out.println("请输入您要转入的账号");String account=sc.next();System.out.println("请输入转入金额!");double money1=sc.nextDouble();System.out.println("请输入密码!");String password1=sc.next();Bank.getBank().transfermoney(user, account, money1, password1);break;case 4:Bank.getBank().lookmoney(user);break;case 5:System.out.println("请输入账号!");String account1 =sc.next();System.out.println("请输入原密码!");String password11 =sc.next();oo(Data.getData().getHolder(),account1, password11);break;case 0:return;}}}
//  修改密码public void oo(TreeSet<User> holder,String account ,String password) {Iterator<User> it = holder.iterator();while(it.hasNext()) {User user = (User)it.next();if (user.getAccount().equals(account)&&user.getPassWord().equals(password)) {System.out.println("请输入新密码");String password1=sc.next();String regex="[0-9]{6}";if (!password1.matches(regex)) {System.out.println("密码格式有误!");return;}user.setPassWord(password1);System.out.println("密码修改成功!");return;}}System.out.println("密码或账号输入有误!!");}}
package com.xu_six;
//  测试类
public class Test {public static void main(String[] args) {Operate operate = new Operate();operate.registermenu();}}

Java模拟银行业务系统相关推荐

  1. 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  2. java模拟考试系统,java模拟考试软件下载

    java模拟考试手机版是一款能够在线学习java并且练习的手机软件,涵盖了java语言的所有知识,由浅入深带领大家从最基本的java代码到最后的java项目,让大家对java语言不再害怕,都能够熟练的 ...

  3. Java 模拟考试系统(Swing + IO)

    编程语言:Java 14.0.1 IDE:intelliJ IDEA 2020.1.2 使用了MVC分层架构思想,并且仅涉及JavaSE内容 功能:登录 + 考试 UI:Swing 数据库:以文件充当 ...

  4. java模拟登陆系统_Java模拟登录系统抓取内容【转载】

    1 @Component2 public class Login extendsBaseJobs {3 4 SimpleDateFormat sdf = new SimpleDateFormat(&q ...

  5. java期末课程设计----模拟银行业务(带界面)

    java期末课程设计----模拟银行业务(带界面) 本项目包含存款,取款,查询,转账,修改密码等功能的银行管理系统的功能(不涉及数据库).大致流程图如下: 一.设计思路 本系统采用JAVA语言并在ec ...

  6. 基于java前行国家公务员模拟笔试系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java前行国家公务员模拟笔试系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java前行国家公务员模拟笔试系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部 ...

  7. java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的驾照模拟考试系统a, 该项目可用各类java课程设计大作业中, 驾照模拟考试系统a的系统架构分为前后台两部分, 最 ...

  8. java 模拟登陆web系统_关于java模拟登陆WEB的问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...

  9. java 模拟停车_Java多线程编程小实例模拟停车场系统

    下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下: Park类 public class Park { boolean []park=new bo ...

最新文章

  1. 2017.9.12.语文
  2. 学习笔记-4.1用户管理命令
  3. 边缘计算 — 困境与破局
  4. 前端学python有什么用-对于一个小白,前端和python哪个更适合?
  5. 基本卷-动态卷性能测评(未完待续)
  6. phaser java_【Java并发编程实战】-----“J.U.C”:Phaser
  7. 放苹果(信息学奥赛一本通-T1206)
  8. c语言文件操作函数(未完待续)
  9. C# 关键字 virtual、override和new的用法
  10. nginx系列第一篇:nginx源码下载,编译和安装
  11. firebug2.0.7 下载
  12. 阿里云轻量级应用服务器设置外网访问端口
  13. 2021保研夏令营—中科院计算所,自动化所,上海交大计算机
  14. Linux文件裸写,linux环境先mkfs后写裸盘
  15. android 电池权限,Android M及以上提示用户将APP加入电池优化白名单
  16. CCNA学习笔记#01
  17. spring test如何设置DebuggingClassWriter.DEBUG_LOCATION_PROPERTY
  18. 使用CAD偏移和阵列命令绘制图形、使用CAD旋转复制命令绘制图形
  19. mysql的Event权限_mysql8 参考手册-事件调度程序和MySQL特权
  20. sharding-jdbc 分库分表的 4种分片策略,还蛮简单的

热门文章

  1. ORACLE进阶(七)存储过程详解
  2. Jdk系统环境变量配置
  3. MyBatis08:ResultMap 的结果集映射
  4. (15)腾讯云微搭:云开发为底层支撑的低代码应用/表单开发平台
  5. JSON格式数据转Excel导出
  6. ffmpeg推流rtmp指定udp传输
  7. 桌面文件丢失怎么恢复
  8. 小学计算机程序竞赛,小学生计算机程序设计竞赛试卷及参考答案
  9. 基于webgl、封装threejs的3d物联网可视化开发平台
  10. 计算机三级数据库数据仓库与数据挖掘(二)、数据仓库、面向主题、不可直接修改、批量访问、数据的粒度级设计、决策支持、元数据、封锁粒度、维护策略、实时维护、延时维护、快照维护、