银行系统(Java实现)
主要实现了
登录
查询余额
存款
取款
转账
开户
销户
使用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实现)相关推荐
- 银行系统java实施面试_Java7K面试题—银行业务调度系统
先前也没搞清银行业务调度系统是怎么回事,也是看了张孝祥老师的视频并照着写出的代码,执行时发现结果并不是自己想象的那样.自己的预想为:倘若某普通窗口先于另一个普通窗口服务完客户,那么该窗口必然先于另一个 ...
- java从入门到精通----基础1
1.碰到问题怎么办? 1)找同学.同桌 2)找项目经理 3)找讲师 2.学习Java的窍门? 1)多想 2)多练 3.小要求: 1)课堂气氛活跃一些 一.笔记: 1.JAVA开 ...
- java系统系统异常处理,银行系统(Java)异常处理
package analog_ATM; import java.io.IOException; //import java.sql.*; import java.util.*; /** * 1.账户类 ...
- Java实现模拟银行系统
paidui.java 模拟银行系统中的排队叫号功能,界面比较简单,可以适当的加入背景图片等等. 实现思想:要想实现银行排号功能,首先显示"排号"窗口或对话框,单击取号按钮,然后利 ...
- Java项目之银行系统
Java简易银行系统 需求 需求 银行系统有四种操作: 1.存钱 2.取钱 3.显示余额 4.退出系统 //这里有很多种方法写这个银行系统,我们只写一个if和switch两种方法//这里是if方法写系 ...
- Java课程设计——设计一个银行系统
Java课程设计--设计一个银行系统 1.题目要求 设计 Account1 类,包含: ■ 一个名为 id 的 int 类型的私有数据域(默认值为 0),长度为 6 位. ■ 一个名为 balance ...
- Java、JSP网上银行系统的设计与实现
技术:Java.JSP等 摘要: 随着社会的发展,互联网已经成为人们日常生活.学习办公中不可缺少的一部分,并在各个领域发挥着越来越重要的作用.特别是在商业运营管理方面发展尤为迅速. 本系统的开发主要是 ...
- Java:(练习)一、基于面向对象方法的简单银行系统
Java:(练习)一.基于面向对象方法的简单银行系统 前言 一.银行类Bank.java 二.主类Main.java 总结 前言 学习java过程中,练习了一个面向对象小程序 程序要求(来源:非凡教育 ...
- java小案例(适合初学者)-银行系统的存款收款转账等功能代码
User类 package com.cwy.demo1; /*** User类* @author dell**/ public class User {//卡号private String cardN ...
最新文章
- 基于U-Net系列算法的医学图像分割(课程设计)
- flannel源码分析--main
- 2017-06-09 问题
- 特征工程与sklearn
- ABAP中有关于换行符,TAB KEY等
- pptx和ppt计算机二级,计算机二级Ms office考试PPT考点总结.pptx
- VTK:几何对象之OpenVRSphere
- c++抽象类在多继承中的应用
- 奇异值分解(SVD)原理详解及推导(转载)
- 详解如何实现一个简单的 vuex
- CF1299B Aerodynamic 题解
- 2020徐涛背诵笔记电子版pdf_2021徐涛冲刺背诵笔记电子版-2021徐涛冲刺背诵笔记pdf免费版下载_东坡手机下载...
- App推广渠道统计二维码扫码统计 - Xinstall
- 【缓存】缓存更新策略
- Tiled2Unity报错处理办法
- 二、VSCode——MiKTeX编写latex编码
- 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃
- 【PAT】A1099. Build A Binary Search Tree (30)
- 新华DCS系统仿真测试方法详细介绍
- Java1.7版本解码base64_JDK Base64 编解码 1.7 和 1.8 的坑
热门文章
- 深潜mobi_统计资料深潜第3部分
- Unity下落式音游实现——(1)需求分析
- 点焊机器人焊接超时_机器人点焊自动化机器人点焊焊接工艺
- 年薪40万程序员和省委办公厅公务员,你怎么选呢?
- 基于JavaWeb的网上宠物商城系统(Spring+SpringMVC+MyBatis框架)
- 如何批量下载美拍作者页短视频
- 一、DeepSort C++版本代码详解-deepsort.cpp
- [FAQ12836]如何用CMD 去开关AAL 各个子feature
- 记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
- Apsara Clouder云计算专项技能认证:云服务器ECS入门--考试题答案