温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java怎么实现银行管理系统

发布时间:2021-04-14 13:58:55 来源:亿速云 阅读:379 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关java怎么实现银行管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体内容如下

Bank类

package First; import java.util.TreeSet; //银行类 public class Bank {  private String Bankname = "坑对对银行";  //银行名称  TreeSet<User> 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<User> holder = new TreeSet<User>(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<User> getHolder() {  return holder;  }  //写入容器  public void setHolder(TreeSet<User> 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<User> holder = Data.getData().getHolder(); //从Data数据库中获取容器  //文件类只供使用不能被任意实际化  public static File FILE;   //私有化一个File类  private File() {};   public static File getFile() {   //对外界提供获取方法  return FILE;  }  //保存到文件里  public static void SaveToFile(TreeSet<User> 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<User> ReadFromFile() {  ObjectInputStream ois = null;  TreeSet<User> list = null;   try {    ois = new ObjectInputStream(new FileInputStream(".\\src\\Test\\text1.txt"));//反序列化从文件中获取容器加载到内存    list = Data.getData().getHolder();   //获取容器    list = (TreeSet<User>) 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<User> 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<User> holder,String account,String pw) {  Iterator<User> 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<User> 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<User> logout(TreeSet<User> 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怎么实现银行管理系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI