Bank类

package First;

import java.util.TreeSet;

//银行类

public class Bank {

private String Bankname = "坑对对银行";                    //银行名称

TreeSet holder = null;                           //银行存储的信息

private static Bank INSTANCE = new Bank();

private Bank() {}                                      //私有化银行类

public static Bank getInstance() {

// TODO Auto-generated method stub

return INSTANCE;

}

//存款功能

public void saveMoney(User user,double money) {

//初始金额与存入金额相加

double sum = user.getSum()+money;

user.setSum(sum);

System.out.print(money+"存款成功!!!"+",当前余额是:"+user.getSum());

System.out.print("\n");

}

//取款功能

public void drawMoney(User user,double money,String pw) {

if(user.getPw().equals(pw)) {                                        //先判断取款密码

if(user.getSum()>=money) {                                        //判断余额

user.setSum(user.getSum()-money);

System.out.print("取款成功");

System.out.print("\n");

System.out.print("当前余额为:"+"\t"+user.getSum());

System.out.print("\n");

}else {

System.out.print("抱歉余额不足!!!  当前余额:"+user.getSum());

System.out.print("\n");

}

}

}

//查看余额以及信息

public void looksum(User user) {

System.out.print("姓名:"+user.getName()+",账号:"+user.getAccount()+",余额:"+user.getSum());

System.out.print("\n");

}

//欢迎语句

public void welcom(User user) {

if(user.getSexual().equals("男")) {

System.out.print(user.getName()+"  先生!!"+"  "+(this.Bankname)+"  欢迎您!!!");

System.out.print("\n");

}else if(user.getSexual().equals("女")){

System.out.print(user.getName()+"  女士!!"+"  "+(this.Bankname)+"  欢迎您!!!");

System.out.print("\n");

}

}

//再见语句

public void GoodBye(User user) {

if(user.getSexual().equals("男")) {

System.out.print(user.getName()+"  先生!!"+"  "+(this.Bankname)+"  祝您生活愉快!!!");

System.out.print("\n");

}else if(user.getSexual().equals("女")){

System.out.print(user.getName()+"  女士!!"+"  "+(this.Bankname)+"  祝您生活愉快!!!");

System.out.print("\n");

}

}

}

Data:数据存储类

package First;

import java.util.TreeSet;

//模拟一个数据库

//银行的数据库

public class Data {

TreeSet holder = new TreeSet(new MyComparator());                //用于存储用户信息的容器---自定义比较规则

File file = File.getFile();                                                                                        //获取一个文件类

private static Data data = new Data();

//单例模式--因为存储数据的类唯一.所以不能随意被实例化

private Data() {}                                                                                                        //私有化构造方法

public static Data getData() {                                                                           //提供返回该对象的静态方法

return data;

}

//添加用户

public void addUser(User user) {

holder.add(user);

System.out.print("注册成功!!");

System.out.print("\n");

}

//删除用户

public void removeUser(User user) {

if(holder.contains(user)) {                                                                                //如果容器中包含所user对象,则移除对象

holder.remove(user);

}else {                                                                                                                        //如果不包含则打印语句

System.out.print("抱歉请检查输入的信息是否正确");

System.out.print("\n");

}

}

//获取容器

public TreeSet getHolder() {

return holder;

}

//写入容器

public void setHolder(TreeSet holder) {

this.holder = holder;

}

}

FIie:文件IO类

package First;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.Iterator;

import java.util.TreeSet;

/*

* 文件类--负责向内存中初始化信息以及程序结束后向内存中存入信息

* */

public class File {

TreeSet holder = Data.getData().getHolder();                                //从Data数据库中获取容器

//文件类只供使用不能被任意实际化

public static File FILE;                                                                                //私有化一个File类

private File() {};

public static File getFile() {                                                                        //对外界提供获取方法

return FILE;

}

//保存到文件里

public static void SaveToFile(TreeSet list) {                                //将获取到的容器存入到文件中----序列化

ObjectOutputStream oo = null;

try {

oo = new ObjectOutputStream(new FileOutputStream(".\\src\\Test\\text1.txt"));                //获取文件存储地址

oo.writeObject(list);                                                                                                                                //将容器写入

} catch (Exception ex) {

ex.printStackTrace();

}finally {

try {

oo.close();                                                                                                                                                //将流关闭

}catch(IOException e) {

e.printStackTrace();

}

}

}

//从文件里读取

public static TreeSet ReadFromFile() {

ObjectInputStream ois = null;

TreeSet list = null;

try {

ois = new ObjectInputStream(new FileInputStream(".\\src\\Test\\text1.txt"));//反序列化从文件中获取容器加载到内存

list = Data.getData().getHolder();                                                                                        //获取容器

list = (TreeSet) ois.readObject();                                                                        //从流中获取对象

Iterator it = list.iterator();                                                                                                //迭代器

System.out.print("当前用户信息:");

System.out.print("\n");

System.out.print("\n");

while(it.hasNext()) {                                                                                                                //迭代初始信息

User user = (User) it.next();

System.out.print("\t"+"姓名:"+user.getName()+"\t"+"账号:"+user.getAccount()+"\t"+"密码:"+user.getPassword()+"\t"+"余额:"+user.getSum()+"\t");

System.out.print("\n");

System.out.print("\n");

}

} catch (Exception ex) {

ex.printStackTrace();

}finally {

try {

ois.close();                                                                                                                        //将流关闭

}catch(IOException e){

e.printStackTrace();

}

}

return list;

}

}

MyComparator:自定义比较器类

package First;

import java.io.Serializable;

import java.util.Comparator;

//自定义比较器

//想要存入集合必须实现序列化和反序列化

public class MyComparator implements Comparator,Serializable{

/**

*

*/

private static final long serialVersionUID = 1L;

@Override

public int compare(Object arg0, Object arg1) {

User user1 = (User)arg0;                                                                //重写比较方法   --- 强转成User类型

User user2 = (User)arg1;

return user1.getAccount().compareTo(user2.getAccount());//比较两个银行账户

}

}

Operate:系统核心

package First;

import java.util.Iterator;

import java.util.Scanner;

import java.util.TreeSet;

//后台操作系统

//后台管理员

public class Operate {

Scanner sc = new Scanner(System.in);                                                        //键盘录入

TreeSet holder = Data.getData().getHolder();                                //从Data数据库中获取容器

Bank bank = Bank.getInstance();                                                                   //获取一个银行类

File file = File.getFile();                                                                                //获取一个文件类

//登录菜单

public void registerMenu(){

System.out.print("****************************");

System.out.print("\n");

System.out.print("\n");

System.out.print("    欢迎来到坑多多银行登录系统!!!\n");

System.out.print("\n");

System.out.print("****************************");

System.out.print("\n");

System.out.print("\n");

holder = File.ReadFromFile();                                                                //从文件中获取容器

Data.getData().setHolder(holder);                                                    //把从文件中获取容器存储到数据库中

int str=1;                                                                                                           //从键盘获取数字

while(str!=0) {

System.out.print("****************************");

System.out.print("\n");

System.out.print(" 1:  登录 ");

System.out.print("\n");

System.out.print(" 2:  注册 ");

System.out.print("\n");

System.out.print(" 3:  忘记密码");

System.out.print("\n");

System.out.print(" 4:  注销用户");

System.out.print("\n");

System.out.print(" 0:  退出");

System.out.print("\n");

System.out.print("****************************");

System.out.print("\n");

System.out.print("请输入:");

str = sc.nextInt();

switch(str){                                                                                        //根据用户输入的值进行选择

case 1:

System.out.print("请输入您的账号:");

String account = sc.next();                                                 //从键盘中获取录入用户名

System.out.print("请输入您的密码:");

String pw = sc.next();                                                         //从键盘中录入密码

User user = logon(holder,account,pw);

if(user!=null) {                                                                //判断是否登录成功

System.out.print("登录成功!!!!欢迎使用");

System.out.print("\n");

System.out.print("正在跳转到银行操作界面.........");

System.out.print("\n");

this.BankMenu(user);                                  //如果登录成功则将user对象传入到银行操作界面并跳转

}else {

System.out.print("登录失败!!!请从新输入");                //如果登录失败打印此语句

System.out.print("\n");

}

break;

case 2:

this.logon();                                                                        //调用注册方法

break;

case 3:

this.modify();                                                                   //调用修改方法

break;

case 4:

holder = logout(holder);                                                //调用删除操作

break;

case 0:

File.SaveToFile(holder);                                               //退出系统式将信息保存到文件中

System.out.print("再见!!!!");

System.out.print("\n");

default:

System.out.print("输入错误!!!!");

System.out.print("\n");

}

}

}

//登录方法

public User logon(TreeSet holder,String account,String pw) {

Iterator it = holder.iterator();                                          //获取迭代器

while(it.hasNext()) {

User user = it.next();

if(user.getAccount().equals(account)&&user.getPassword().equals(pw)){

System.out.print("登录成功!!");

System.out.print("\n");

return user;

}

}

System.out.print("账户或密码错误     登录失败!!");

System.out.print("\n");

return null;

}

//注册方法体

public void logon(){

System.out.print("欢迎来到注册界面!!!!");

System.out.print("\n");

String name;                                                                                                              //用户名

String account;                                                                                                           //银行账号

String password;                                                                                                        //密码

String pw;                                                                                                                 //取款密码

double sum;                                                                                                         //账户金额

String sexual;                                                                                                      //性别

User user = new User();                                                                                                //先创建一个空参的user对象

boolean  flag  = true;                                                          //语句的开关

while(flag) {                                                                                                                //将注册的信息依次输入

switch(1) {

case 1:

System.out.print("请输入姓名:");                                                                //依次从键盘中获取对应的姓名----正则表达式

name = sc.next();

user.setName(name);                                                                                        //将名字写入对象中

case 2:

System.out.print("请输入账号(9位数字):");

account = sc.next();                                                                                //从键盘中获取账号

String reges ="[0-9]{9}";                                                                        //正则表达式规则对账号进行限制

if(!account.matches(reges)) {                                                                //如果不符合要求则报错

System.out.print("账号不符合规范!!");

System.out.print("\n");

System.out.print("请重新注册");

System.out.print("\n");

break;

}

user.setAccount(account);                                                                        //将账号写入对象中

case 3:

System.out.print("请输入密码(6位):");

password = sc.next();

reges ="[0-9]{6}";                                                                                        //正则表达式规则

if(!password.matches(reges)){                                                                //如果密码不符合正则规则则报错

System.out.print("密码不符合规范!!");

System.out.print("\n");

System.out.print("请重新注册");

System.out.print("\n");

break;

}

user.setPassword(password);                                                                        //将密码写入对象中

case 4:

System.out.print("请输入取款密码(6位):");

pw = sc.next();

reges ="[0-9]{6}";                                                                                        //正则表达式规则

if(!pw.matches(reges)) {

System.out.print("取款密码不符合规范!!");

System.out.print("\n");

System.out.print("请重新注册");

System.out.print("\n");

break;

}

user.setPw(pw);                                                                                                //将取款密码写入到对象中

case 5:

System.out.print("请输入金额:");

sum = sc.nextDouble();

user.setSum(sum);                                                                                        //将金额写入到对象中

case 6:

System.out.print("请输入性别:");

sexual = sc.next();

user.setSexual(sexual);                                                                                //将性别写入到对象中

case 7:

if(!holder.contains(user)){

Data.getData().addUser(user);                                                         //一切准确无误后将user存入数据库Data中

}

else {

System.out.print("用户存在!!!");

System.out.print("\n");

//结束循环

}

flag = false;

break;

}

}

}

//忘记密码操作

public void modify() {

boolean flag = true;

Iterator it = holder.iterator();                                                         //获取迭代器

System.out.print("请输入账户:");

String account = sc.next();                                                                                           //从键盘中获取账户

while(it.hasNext()) {

User user = it.next();

if(user.getAccount().equals(account)){                                                     //如果容器中有这个对象则对它进行修改

System.out.print("请输入新账户的密码:");

String pw = sc.next();                                                                 //从监盘上录入新的密码

String reges ="[0-9]{6}";                                                                      //正则表达式规则

if(!pw.matches(reges)) {                                                                           //如果密码不符合正则规则则报错

System.out.print("密码不符合规范!!");

System.out.print("\n");

}else {                                                                                                                   //正则表达式判断是否符合条件

holder.remove(user);                                                                           //先从原容器中删除user

user.setPassword(pw);                                                                           //修改user的属性

holder.add(user);                                                              //然后再向容器中添加

System.out.print("修改成功!!!");

System.out.print("\n");

flag = false;

break;

}

}

}

if(flag) {

System.out.print("没有找到该用户");

System.out.print("\n");

}

}

//注销方法

public TreeSet logout(TreeSet list) {

String username;                                                                                                   //用户名

String password;                                                                                                   //密码

System.out.print("请输入用户账号:");

username = sc.next();                                                                                                 //从键盘录入用户名

System.out.print("请输入密码:");

password = sc.next();                                                                                                   //从键盘录入密码

Iterator it = list.iterator();                                                                         //获取迭代器

while(it.hasNext()) {

User user = (User)it.next();                                                                    //获取对象

if(user.getAccount().equals(username)&&user.getPassword().equals(password)){

list.remove(user);                                                                                          //如果录入的信息匹配则从容器中删除user对象

System.out.print("注销成功!!");

System.out.print("\n");

return list;

}

}

System.out.print("账号或者密码错误");                                                                                  //不匹配打印提示语句

System.out.print("\n");

return list;

}

//银行操作界面

public void BankMenu(User user) {

bank.welcom(user);                                                                                                         //银行调用欢迎语句

System.out.print("****************************");

System.out.print("\n");

System.out.print("\n");

System.out.print("    欢迎来到坑多多银行擦操作系统!!!\n");

System.out.print("\n");

int str = 1;

while(str!=0) {

System.out.print("****************************");

System.out.print("\n");

System.out.print(" 1:  取钱 ");

System.out.print("\n");

System.out.print(" 2:  存钱 ");

System.out.print("\n");

System.out.print(" 3:  查看余额");

System.out.print("\n");

System.out.print(" 0:  退出登录");

System.out.print("\n");

System.out.print("****************************");

System.out.print("\n");

System.out.print("\n");

System.out.print("请输入您的选项:");                                                                //从键盘中读取字符串

str = sc.nextInt();

switch(str){                                                                                                //根据用户输入的值进行选择

case 1:                                                                                                        //取钱选项

System.out.print("请输入取款密码:");

String pw = sc.next();                                                       //从键盘获取输入的密码

if(user.getPw().equals(pw)) {                                                //将输入的取款密码与用户的密码进行比对:如果相同则继续执行

System.out.print("请输入取款金额:");

double money = sc.nextDouble();                                        //从键盘获取输入的金额

if(money>=0) {                                                                        //判断金额是否有误

bank.drawMoney(user, money, pw);                //调用取款方法

}else {

System.out.print("输入金额错误!!!");

System.out.print("\n");

}

}else {

System.out.print("输入密码有误!!!");

System.out.print("\n");

}

break;

case 2:

System.out.print("请输入取款金额:");

System.out.print("\n");

double money1 = sc.nextDouble();                //从键盘获取输入的金额

if(money1>=0) {                                                        //判断金额是否有误

bank.saveMoney(user, money1);;      //调用存款方法

}else {

System.out.print("输入金额错误!!!");

System.out.print("\n");

}

break;

case 3:

bank.looksum(user);                            //调用银行---查询账户操作

break;

case 0:

bank.GoodBye(user);                                                   //调用结束语句

break;

default:

System.out.print("输入错误");

System.out.print("\n");

}

}

}

}

User类:

package First;

import java.io.Serializable;

/*

* 这是一个User类

* */

public class User implements Serializable{

/**

* 实现接口,用于序列化和反序列化

*/

private static final long serialVersionUID = 1L;

private String name;              //用户名

private String account;           //银行账号

private String password;        //密码

private String pw;          //取款密码

private double sum;         //账户金额

private String sexual;      //性别

//获取用户名

public String getName() {

return name;

}

//写入用户名

public void setName(String name) {

this.name = name;

}

//获取账号

public String getAccount() {

return account;

}

//写入账号

public void setAccount(String account) {

this.account = account;

}

//获取密码

public String getPassword() {

return password;

}

//修改密码

public void setPassword(String password) {

this.password = password;

}

//查看余额

public double getSum() {

return sum;

}

//修改余额

public void setSum(double sum) {

this.sum = sum;

}

//写入性别

public String getSexual() {

return sexual;

}

//修改性别

public void setSexual(String sexual) {

this.sexual = sexual;

}

//获取取款密码

public String getPw() {

return pw;

}

//写入取款密码

public void setPw(String pw) {

this.pw = pw;

}

//hashCode比较方法

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((account == null) ? 0 : account.hashCode());

result = prime * result + ((name == null) ? 0 : name.hashCode());

result = prime * result + ((password == null) ? 0 : password.hashCode());

result = prime * result + ((pw == null) ? 0 : pw.hashCode());

result = prime * result + ((sexual == null) ? 0 : sexual.hashCode());

long temp;

temp = Double.doubleToLongBits(sum);

result = prime * result + (int) (temp ^ (temp >>> 32));

return result;

}

//equals比较方法

/*

* 知识点:

*         public boolean equals(Object obj)名称不可改变

* */

@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 (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

if (password == null) {

if (other.password != null)

return false;

} else if (!password.equals(other.password))

return false;

if (pw == null) {

if (other.pw != null)

return false;

} else if (!pw.equals(other.pw))

return false;

if (sexual == null) {

if (other.sexual != null)

return false;

} else if (!sexual.equals(other.sexual))

return false;

if (Double.doubleToLongBits(sum) != Double.doubleToLongBits(other.sum))

return false;

return true;

}

//初始化用户

User(String name,String account,String password,String pw,double sum,String sexual){

this.name = name;

this.account = account;

this.password = password;

this.sum = sum;

this.sexual = sexual;

this.pw = pw;

}

//空参构造函数

User(){

}

}

Main()类

package First;

public class Test {

//测试类----唯一的主函数

public static void main(String[] args) {

Operate operate = new Operate();

operate.registerMenu();   //调用登录方法

}

}

java银行管理系统_java实现银行管理系统相关推荐

  1. Java影院网上购票管理系统_java影院售票管理系统

    一个完善的电影院售票管理系统,可以帮助电影院工作人员提升工作效率, 辅助电影院工... 电影院售票管理系统UML_计算机软件及应用_IT/计算机_专业资料.业务需求 1... Jsp 影院售票系统的架 ...

  2. java宠物医院_java宠物医院管理系统

    今天和一个朋友共同完成了一个基于java的宠物医院管理系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架.我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他.和往常一样选用简单又便 ...

  3. java编写学生管理系统_Java实现学生管理系统

    导读热词 项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的 ...

  4. java简单系统_Java简单学生管理系统

    Java简单学生管理系统 这个不需要手动输入,笔记记录 //student` public class student(){ private String id;//学号 private String ...

  5. java编写通信录管理系统_Java 实现通讯录管理系统教程

    本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 完成项目的流程: 1.根据需求,确定大体方向 2.功能模块分析 3.界面实现 4.功能模块设计 5.coding 6 ...

  6. java酒店信息管理系统_java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 要求: [酒店管理系统]HotelSystem.java 某酒店有12层楼,每层楼有10个房间(二维数组),要求为该酒 ...

  7. 学生宿舍管理系统java课设_JAVA学生宿舍管理系统

    需要的工具 1.SQL Server 2.Eclipse 3.JDBC连接数据库驱动 https://download.microsoft.com/download/A/F/B/AFB381FF-70 ...

  8. java 教师工资管理系统_java教师工资管理系统完整代码.doc

    教师工资管理系统: 开发团队:206和207 时间:2012年4月8日 数据库配置:sqlserver2000 创建数据库SalaryManagement 在其下创建数据表logindata. 创建数 ...

  9. java物业管理系统设计_JAVA版物业管理系统论文+设计源码

    内容介绍 原文档由会员 从头再来 发布 (内含完整源代码) 1.2万字 28页 [摘要] 物业管理系统是紧随当今时代发展的需要,目的在于实现不同的人员对物业系统的不同的需要,有利于社会的稳定和顺利发展 ...

最新文章

  1. linux mysql添加用户名和密码错误,linux下为mysql设置用户名和密码
  2. Debug Tensorflow: Expected these arguments to match one of the following 4 option(s):
  3. Google Guava缓存实现接口的限流
  4. supervisor+gunicorn部署python web项目
  5. AndroidSDK下载
  6. Cat8八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
  7. MSDP技术原理与实验
  8. 八猴渲染器4.0基本使用教程及渲染教程
  9. 面试乐融集团Python开发工程师助理有感
  10. deepin安装网速监控
  11. ncbi和ensembl上的序列下载
  12. python相关性系数_聊聊你知道和不知道的相关性系数
  13. 微信小程序中如何打开公众号文章(node版)
  14. 快速增加图片大小KB
  15. 易语言练习笔记-大叔篇(3)-加减计算器
  16. 数据湖和数据仓库区别介绍
  17. 利用ffmpeg将mp4视频转换成多张jpg图片
  18. 煤炭销售系统的设计与实现
  19. IOS消息推送之APNS
  20. html如何设置自动点击,按键精灵怎么设置自动点击

热门文章

  1. SQL 注入式攻击的本质
  2. MSSQL数据库全库批量替换
  3. moss 2007 单点登录的配置
  4. np.meshgrid
  5. 联想拯救者Y7000P 2021H deepin v20.2.4设置双屏显示:切记要用集显,NAVIDA独显不生效
  6. Ansible-playbook yum安装nginx1.20.1
  7. Linux DNS服务配置与管理详解
  8. Spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中
  9. MobaXterm无法退格删除,出现^H
  10. ClickHouse数据分析列式数据库概述