这个程序针对大一或者大二java实验,涉及文件的简单读写操作,实现存档功能,而不是每次打开程序都是固定的值,方法也放在不同的类中,降低耦合程度,能更好的维护代码和程序的功能,程序简单,注释不多,再次话不多说,直接上代码.......

### 目录:

```java

package BankPro;import java.io.*;
import java.util.Scanner;public class BJ_ICBC_Bank {//初始化,用户名、密码、扫描器、字符流读写和文件路径public String name = "laolai";public String password = "123456";public Scanner sc = new Scanner(System.in);private BufferedReader reader;private BufferedWriter writer;File file = new File("src/BankPro/money.txt");public static void main(String[] args) {System.out.println("欢迎少侠光临爱存不存银行管理系统!请先登录.........");//首先要登录new Login().login();}//从文件中获取moneypublic double getMoney(){//初始化double money = 0;//捕获异常try {//字符流读取文件reader = new BufferedReader(new FileReader(file));//文件中默认存储String类型,要转换成doublemoney = Double.parseDouble(reader.readLine());} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}return money;}//把修改后的金额写入文件中public void setMoney(double money) throws IOException {//初始化,实现转型,写入文件要String类型String str = Double.toString(money);try {//字符流写文件writer = new BufferedWriter(new FileWriter(file));writer.write(str);writer.flush();//冲流} catch (IOException e) {e.printStackTrace();}writer.close();//记得关闭}
}
package BankPro;
//登录
public class Login {//创建对象BJ_ICBC_Bank bank = new BJ_ICBC_Bank();Start start = new Start();public void login(){System.out.println("请输入用户名");//调用bank的扫描器,用于接收键盘输入String user_id = bank.sc.nextLine();//对比if(user_id.equals(bank.name)){System.out.println("请输入用密码");//调用bank的扫描器,用于接收键盘输入String password = bank.sc.nextLine();//登录成功调用Start类的start方法if(password.equals(bank.password)){start.start();}else{System.out.println("用户名或密码错误请重新输入");login();}}else{System.out.println("账户不存在");login();}}
}
package BankPro;import BankPro.BJ_ICBC_Bank;//功能项
public class Start {//创建对象BJ_ICBC_Bank bank = new BJ_ICBC_Bank();public void start() {//布尔类型控制循环boolean b = true;while (b) {System.out.println("请选择交易类型");System.out.println("1、查询");System.out.println("2、存钱");System.out.println("3、取钱");System.out.println("4、转账");System.out.println("5、退出");//接收键盘输入int i = bank.sc.nextInt();//选择switch (i) {case 1:new Check().check();break;case 2:new Save().save();break;case 3:new Take().take();break;case 4:new Change().change();break;case 5:System.out.println("谢谢惠顾!");b = false;break;default:System.out.println("输入错误,请重新输入");start();}}bank.sc.close();}
}
package BankPro;
//查询
public class Check {BJ_ICBC_Bank bank = new BJ_ICBC_Bank();public void check(){//直接调用bank的方法 从文件获取moneydouble money = bank.getMoney();System.out.println("当前余额为:"+money);}
}
package BankPro;import java.io.IOException;
//存钱
public class Save {BJ_ICBC_Bank bank = new BJ_ICBC_Bank();public void save(){System.out.println("请输入存钱金额");//接收键盘输入double num = bank.sc.nextDouble();//从文件获取moneydouble money = bank.getMoney();money += num;System.out.println("存钱完成,当前余额为:"+money);//将改变后的money值重新写入文件try {bank.setMoney(money);} catch (IOException e) {e.printStackTrace();}}
}
package BankPro;import java.io.IOException;
//取钱
public class Take {BJ_ICBC_Bank bank = new BJ_ICBC_Bank();public void take(){System.out.println("请输入取钱金额");//接收键盘输入double num = bank.sc.nextDouble();//从文件获取double money = bank.getMoney();if (num<=money){money -= num;System.out.println("取钱成功,当前余额为:"+money);//将改变后的值重新写入文件try {bank.setMoney(money);} catch (IOException e) {e.printStackTrace();}}else{System.out.println("余额不足,请重新输入");take();}}
}
package BankPro;import java.io.IOException;
//转账
public class Change {BJ_ICBC_Bank bank = new BJ_ICBC_Bank();public void change(){System.out.println("请输入收款方用户名");//接收键盘输入String name = bank.sc.nextLine();//从文件获取System.out.println("请输入转账金额");double num = bank.sc.nextDouble();double money = bank.getMoney();if(num<=money){money -= num;System.out.println("转账成功,当前余额为:"+money);//将改变后的值重新写入文件try {bank.setMoney(money);} catch (IOException e) {e.printStackTrace();}}else{System.out.println("余额不足请重新输入");poor();}}//转账余额不足跳转到当前方法public void poor(){System.out.println("请输入转账金额");double num = bank.sc.nextDouble();double money = bank.getMoney();if(num<=money){money -= num;System.out.println("转账成功,当前余额为:"+money);try {bank.setMoney(money);} catch (IOException e) {e.printStackTrace();}}else{System.out.println("余额不足请重新输入");poor();}}
}

### 运行结果如下:

1、登录

2、查询

3、存钱

4、取钱

5、转账

6、退出

java银行管理系统-文件版相关推荐

  1. java 银行管理系统(连接数据库Mysql)

    java 银行管理系统(连接数据库Mysql) 逻辑与功能图 实现逻辑 功能图 代码 逻辑与功能图 实现逻辑 程序共有三个文件 Bankmangement.java:包括程序运行的主函数,方法等 Us ...

  2. java银行管理系统(MySql+JDBC+数据库(Druid数据库连接池)+GUI)重要代码有解析注释

    java银行管理系统 小白又来水博客了 文章目录 java银行管理系统 一.项目需求与分析: 二.知识及有关技术的概述: 三.银行管理系统需求的具体实现: 四.部分功能预览: 五.Last: 一.项目 ...

  3. java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...

    ========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 ...

  4. java银行管理系统_java实现银行管理系统

    Bank类 package First; import java.util.TreeSet; //银行类 public class Bank { private String Bankname = & ...

  5. 简单的纯java银行管理系统

     本人写下这篇文章时也是初学者,初入贵圈,很是激动,写下此文,希望能给和我一样的初学者一些帮助,如有帮助,那就点个关注再走吧!(粘上就能跑!!重要的事情说一遍!!) 这个银行管理系统是在我刚学完面向对 ...

  6. java银行管理系统源码

    目录 一.项目包含知识点 二.项目需求 三.系统模块设计 3. 1.模块介绍 3·2.银行管理系统技术分析如图 3.3银行管理系统界面展示 四.银行管理系统源码 4.1Account类 4.2ATMS ...

  7. java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc

    银行管理系统 第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类.对象.继承.接口.封装.继承.多态.方法的重载和重写.Java的访问修饰符与其它关键字等. 案例难度 ★★★★ 案 ...

  8. day 5 名片管理系统-文件版

    1.添加__name__ == '__main__' if __name__ == "__main__": #添加__name__变量#调用主函数main() 2.添加6功能,保存 ...

  9. Java银行管理系统

    /*** 银行类** @author wgy*/ public class Bank {private User[] users = new User[5];private int size;//构造 ...

最新文章

  1. php mysql 备注_php,mysql备注信息1
  2. 权威预测:2018年这十大数字化转型趋势要火!
  3. 未来智能:人有人用,机有机用
  4. FPGA等效门数的计算方法
  5. C语言 多维数组和指针
  6. Python 元组遍历排序操作方法
  7. Agile Development
  8. 【软件测试】白盒测试の基路径法
  9. chmod 更改权限
  10. Android 系统(171)---OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架
  11. 递归 dfs 记忆化搜索 动态规划
  12. python 爬虫生成csv文件和图_python爬虫系列(4.2-python操作csv文件)
  13. 弗洛伊德的人格结构说中潜意识,前意识,意识和自我,本我,超我的区别
  14. matlab实现PS算法之亮度调整
  15. 正则化,岭回归Shrinkage,lasso稀疏性推导和论文总结
  16. 怎样去掉超级链接的下划线和颜色.
  17. Vue(Vue脚手架)
  18. 省市区sql语句之:(三)区1
  19. 信任,问责制以及时间在哪里?
  20. VCO电路中的电源设计

热门文章

  1. java中的方法引用
  2. php大会2018,2018 INFORMS国际大会
  3. 什么是企业内容管理?
  4. 1-1000以内的完数
  5. Java 根据字符串格式日期 转化出当前属于哪一年的第几周
  6. Windows7+Windows10原版镜像集合
  7. HttpClient发送Https请求报 : unable to find valid certification path to requested target
  8. SE01(理解重要)
  9. idea常用快捷键、markdown中html小技巧
  10. 多路复用机制--Redis为什么这么快