主要实现了
登录
查询余额
存款
取款
转账
开户
销户

使用txt格式存储对象

由于本人学艺不精,暂时无法实现销户功能,即从文件中删除一个对象

现将代码发布于此,互相学习

用户类

package bank;import java.io.Serializable;public class Account implements Serializable {private String name;private String password;private double remainMoney;private long serialVersionUID = -440948515215806088L;public Account(){}public Account(String name, String password, double remainMoney){this.name = name;this.password = password;this.remainMoney = remainMoney;}public double getRemainMoney() {return remainMoney;}public String getName() {return name;}public String getPassword() {return password;}public boolean addRemainMoney(double money){this.remainMoney += money;return true;}public boolean delRemainMoney(double money){this.remainMoney -= money;return true;}public void setName(String name) {this.name = name;}
}

银行管理员类

package bank;import java.io.*;public class Administrator {private static int accountNum = 3;public  int getAccountNum() {return accountNum;}public  boolean addAccountNum(){  //增加用户数量accountNum++;return true;}public boolean delAccountNum(){     //减少用户数量accountNum--;return true;}public String login(String admin, String password){int temp = accountNum;//需要一个对象输入流try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://银行系统//accountMessage.txt"));while(temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){if (a.getPassword().equals(password)){return "登录成功!!!";}}}} catch (Exception e) {e.printStackTrace();}return "用户名或密码错误!!!";}public double query(String admin){int temp = accountNum;//需要一个对象输入流try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://银行系统//accountMessage.txt"));while(temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){return a.getRemainMoney();}}} catch (Exception e) {e.printStackTrace();}return 0.00;}public boolean save(String admin, double money){    //存钱int temp = accountNum;//需要一个对象输入流try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://银行系统//accountMessage.txt"));while(temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){a.addRemainMoney(money);return true;}}} catch (Exception e) {e.printStackTrace();}return false;}public boolean take(String admin, double money){       //取钱int temp = accountNum;//需要一个对象输入流try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://银行系统//accountMessage.txt"));while(temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){if(a.getRemainMoney() > money){     //判断余额a.delRemainMoney(money);return true;}}}} catch (Exception e) {e.printStackTrace();}return false;}public boolean transfer(String admin, String toAdmin, double money){int temp = accountNum;//需要一个对象输入流try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D://银行系统//accountMessage.txt"));while(temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){if (a.getRemainMoney() < money){    //余额不足直接返回falseSystem.out.println("余额不足转账失败!!!");return false;}while (temp-- != 0){Account b = (Account)ois.readObject();if (b.getName().equals(toAdmin)){b.addRemainMoney(money);    //b用户增加余额a.delRemainMoney(money);    //a用户减少余额System.out.println("转账成功!!!");return true;}}}}} catch (Exception e) {e.printStackTrace();}return false;}//开户,将新用户写入文件public boolean newAccount(String admin, String password, double money){Account a = new Account(admin, password, money);File accountMessage = new File("D://银行系统//accountMessage.txt");FileOutputStream fos = null;ObjectOutputStream oos = null;try{fos = new FileOutputStream(accountMessage);oos = new ObjectOutputStream(fos);oos.writeObject(a);oos.flush();} catch (IOException e){e.printStackTrace();}return true;}//销户,从文件中删除用户public boolean deleteAccount(String admin){//需要一个对象输入流int temp = accountNum;File accountMessage = new File("D://银行系统//accountMessage.txt");FileInputStream fis = null;ObjectInputStream ois = null;FileOutputStream fos = null;try {fis = new FileInputStream(accountMessage);ois = new ObjectInputStream(fis);while( temp-- != 0){Account a = (Account)ois.readObject();if (a.getName().equals(admin)){//如何从文件中删除用户
//                    a = null;System.out.println("销户成功!!!");return true;}}} catch (Exception e) {e.printStackTrace();}return false;}
}

主函数类

package bank;import java.io.*;
import java.util.Scanner;public class Bank {static {Account a1 = new Account("郑中拓", "123", 1111);Account a2 = new Account("渡一教育", "666",2222);Account a3 = new Account("Java", "888", 3333);File accountMessage = new File("D://银行系统//accountMessage.txt");FileOutputStream fos = null;ObjectOutputStream oos = null;try {accountMessage.createNewFile();fos = new FileOutputStream(accountMessage);oos = new ObjectOutputStream(fos);oos.writeObject(a1);oos.writeObject(a2);oos.writeObject(a3);oos.flush();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("欢迎进入银行系统!!!");System.out.println("请输入账户:");String name = input.nextLine();System.out.println("请输入密码:");String password = input.nextLine();Administrator a = new Administrator();System.out.println(a.login(name, password));System.out.println("您的账户余额为: "+a.query(name));a.deleteAccount(name);}
}

总结:自己独立完成任务时,先要有整体的思路,先构建起来整体的框架,比如把需要实现的函数先初始化,再根据要求一步步实现,补充方法的功能。

银行系统(Java实现)相关推荐

  1. 银行系统java实施面试_Java7K面试题—银行业务调度系统

    先前也没搞清银行业务调度系统是怎么回事,也是看了张孝祥老师的视频并照着写出的代码,执行时发现结果并不是自己想象的那样.自己的预想为:倘若某普通窗口先于另一个普通窗口服务完客户,那么该窗口必然先于另一个 ...

  2. java从入门到精通----基础1

    1.碰到问题怎么办?   1)找同学.同桌   2)找项目经理   3)找讲师 2.学习Java的窍门?   1)多想   2)多练 3.小要求:   1)课堂气氛活跃一些 一.笔记: 1.JAVA开 ...

  3. java系统系统异常处理,银行系统(Java)异常处理

    package analog_ATM; import java.io.IOException; //import java.sql.*; import java.util.*; /** * 1.账户类 ...

  4. Java实现模拟银行系统

    paidui.java 模拟银行系统中的排队叫号功能,界面比较简单,可以适当的加入背景图片等等. 实现思想:要想实现银行排号功能,首先显示"排号"窗口或对话框,单击取号按钮,然后利 ...

  5. Java项目之银行系统

    Java简易银行系统 需求 需求 银行系统有四种操作: 1.存钱 2.取钱 3.显示余额 4.退出系统 //这里有很多种方法写这个银行系统,我们只写一个if和switch两种方法//这里是if方法写系 ...

  6. Java课程设计——设计一个银行系统

    Java课程设计--设计一个银行系统 1.题目要求 设计 Account1 类,包含: ■ 一个名为 id 的 int 类型的私有数据域(默认值为 0),长度为 6 位. ■ 一个名为 balance ...

  7. Java、JSP网上银行系统的设计与实现

    技术:Java.JSP等 摘要: 随着社会的发展,互联网已经成为人们日常生活.学习办公中不可缺少的一部分,并在各个领域发挥着越来越重要的作用.特别是在商业运营管理方面发展尤为迅速. 本系统的开发主要是 ...

  8. Java:(练习)一、基于面向对象方法的简单银行系统

    Java:(练习)一.基于面向对象方法的简单银行系统 前言 一.银行类Bank.java 二.主类Main.java 总结 前言 学习java过程中,练习了一个面向对象小程序 程序要求(来源:非凡教育 ...

  9. java小案例(适合初学者)-银行系统的存款收款转账等功能代码

    User类 package com.cwy.demo1; /*** User类* @author dell**/ public class User {//卡号private String cardN ...

最新文章

  1. 基于U-Net系列算法的医学图像分割(课程设计)
  2. flannel源码分析--main
  3. 2017-06-09 问题
  4. 特征工程与sklearn
  5. ABAP中有关于换行符,TAB KEY等
  6. pptx和ppt计算机二级,计算机二级Ms office考试PPT考点总结.pptx
  7. VTK:几何对象之OpenVRSphere
  8. c++抽象类在多继承中的应用
  9. 奇异值分解(SVD)原理详解及推导(转载)
  10. 详解如何实现一个简单的 vuex
  11. CF1299B Aerodynamic 题解
  12. 2020徐涛背诵笔记电子版pdf_2021徐涛冲刺背诵笔记电子版-2021徐涛冲刺背诵笔记pdf免费版下载_东坡手机下载...
  13. App推广渠道统计二维码扫码统计 - Xinstall
  14. 【缓存】缓存更新策略
  15. Tiled2Unity报错处理办法
  16. 二、VSCode——MiKTeX编写latex编码
  17. 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃
  18. 【PAT】A1099. Build A Binary Search Tree (30)
  19. 新华DCS系统仿真测试方法详细介绍
  20. Java1.7版本解码base64_JDK Base64 编解码 1.7 和 1.8 的坑

热门文章

  1. 深潜mobi_统计资料深潜第3部分
  2. Unity下落式音游实现——(1)需求分析
  3. 点焊机器人焊接超时_机器人点焊自动化机器人点焊焊接工艺
  4. 年薪40万程序员和省委办公厅公务员,你怎么选呢?
  5. 基于JavaWeb的网上宠物商城系统(Spring+SpringMVC+MyBatis框架)
  6. 如何批量下载美拍作者页短视频
  7. 一、DeepSort C++版本代码详解-deepsort.cpp
  8. [FAQ12836]如何用CMD 去开关AAL 各个子feature
  9. 记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
  10. Apsara Clouder云计算专项技能认证:云服务器ECS入门--考试题答案