//基本功能已经完善,文件读取没有问题,文件重写尚未完成。

Account类

  1. public class Account {
  2. //初始化参数
  3. private String accountID;
  4. private String accountname;
  5. private String operatedate;
  6. private int operatetype;
  7. private String accountpassword;
  8. private int accountbalance=0;
  9. private int amount;
  10. //构造读取和设置变量信息的方法
  11. public void setAccountID(String accountID) {this.accountID=accountID;}
  12. public String getAccountID() {return accountID;}
  13. public void setAccountname(String accountname) {this.accountname=accountname;}
  14. public String getAccountname() {return accountname;}
  15. public void setOperatedate(String operatedate) {this.operatedate=operatedate;}
  16. public String getOperatedate() {return operatedate;}
  17. public void setOperatetype(int operatetype){this.operatetype=operatetype;}
  18. public int getOperatetype() {return operatetype;}
  19. public void setAccountpassword(String accountpassword) {this.accountpassword=accountpassword;}
  20. public String getAccountpassword() {return accountpassword;}
  21. public void setAccountbalance(int accountbalance) {this.accountbalance=accountbalance;}
  22. public int getAccountbalance() {return accountbalance;}
  23. public void setAmount(int amount) {this.amount=amount;}
  24. public int getAmount() {return amount;}
  25. //构造方法有参数
  26. public Account(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
  27. this.accountID=accountID;
  28. this.accountname=accountname;
  29. this.operatedate=operatedate;
  30. this.operatetype=operatetype;
  31. this.accountpassword=accountpassword;
  32. this.accountbalance=accountbalance;
  33. this.amount=amount;
  34. }
  35. //构造方法无参数
  36. public Account() {}
  37. //参数统一类型
  38. public String toString() {
  39. return (accountID+" "+accountname+" "+operatedate+" "+operatetype+" "+accountpassword+" "+accountbalance+" "+amount);
  40. }
  41. }

  AccountManager类

  1. //20173685 任伟强 信1705-2
  2.  
  3. import java.io.FileNotFoundException;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7.  
  8. import java.util.Scanner;
  9.  
  10. public class AccountManager extends Account{
  11. //继承父类
  12. public AccountManager(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
  13. super(accountID,accountname,operatedate,operatetype,accountpassword,accountbalance,amount);
  14. }
  15. public AccountManager() {
  16. }
  17. //全局定义
  18. static Account a=new Account();
  19. static Scanner s=new Scanner(System.in);
  20. //选择
  21. public static void main(String[]args) {
  22. try {
  23. fileout();
  24. waterout();
  25. } catch (FileNotFoundException e1) {
  26. e1.printStackTrace();
  27. }
  28. try {
  29. if(loginAccount()&&loginPwd()) {
  30. Menu();
  31. String option;
  32. do {
  33. option=s.next();
  34. switch(option) {
  35. case"1": handmoney();break;
  36. case"2": getmoney();break;
  37. case"3": moneygogogo();break;
  38. case"4": update();break;
  39. case"5": moneyhere();break;
  40. case "q": ;break;
  41. default: System.out.println("错误,请重新输入!\n");
  42. }}while(!"q".equals(option));
  43. System.out.println("成功退出系统!\n");}
  44. } catch (IOException e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. //读取账户基本信息库
  49. public static void fileout() throws FileNotFoundException {
  50. try {
  51. FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
  52. Scanner sc=new Scanner(fr);
  53. while(sc.hasNext()) {
  54. a.setAccountID(sc.next());
  55. a.setAccountname(sc.next());
  56. a.setAccountpassword(sc.next());
  57. a.setAccountbalance(sc.nextInt());
  58. }
  59. sc.close();
  60. fr.close();
  61. } catch (IOException e) {
  62. System.out.println("文件导出成功\n");
  63. }
  64. }
  65. //读取账户流水信息库
  66. public static void waterout() throws FileNotFoundException {
  67. try {
  68. FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
  69. Scanner sc=new Scanner(fr);
  70. while(sc.hasNext()) {
  71. a.setAccountID(sc.next());
  72. a.setAccountname(sc.next());
  73. a.setOperatedate(sc.next());
  74. a.setOperatetype(sc.nextInt());
  75. a.setAmount(sc.nextInt());
  76. }
  77. sc.close();
  78. fr.close();
  79. } catch (IOException e) {
  80. System.out.println("文件导出成功\n");
  81. }
  82. }
  83. //导入账户基本信息库
  84. public static void filein() throws IOException {
  85. int i;
  86. FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
  87. FileWriter fw=new FileWriter("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
  88. i=fr.read();
  89. while(i!=-1) {
  90. fw.write(i);
  91. fr.read();
  92. }
  93. fr.close();
  94. fw.close();
  95. }
  96. //导入账户基本信息库
  97. public static void waterin() throws IOException {
  98. int i;
  99. FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
  100. FileWriter fw=new FileWriter("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
  101. i=fr.read();
  102. while(i!=-1) {
  103. fw.write(i);
  104. fr.read();
  105. }
  106. fr.close();
  107. fw.close();
  108. }
  109. //打印菜单
  110. public static void Menu(){
  111. StringBuffer s=new StringBuffer("\n");
  112. s.append("\t*************************************************\n");
  113. s.append("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  114. s.append("\t*************************************************\n");
  115. s.append("\t\t\t1.存款;\n");
  116. s.append("\t\t\t2.取款;\n");
  117. s.append("\t\t\t3.转账汇款;\n");
  118. s.append("\t\t\t4.修改密码;\n");
  119. s.append("\t\t\t5.查询余额;\n");
  120. s.append("\t*************************************************\n");
  121. s.append("\t(输入q退出系统)\n");
  122. s.append("请操作\n");
  123. System.out.println(s);
  124. }
  125. //打印登陆账号界面
  126. public static boolean loginAccount() throws IOException {
  127. System.out.println("\t*************************************************\n");
  128. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  129. System.out.println("\t*************************************************\n");
  130. System.out.println("\t\t请输入您的账号:\n");
  131. String checkAccount = s.next();
  132. if (a.getAccountID().equals (checkAccount)){
  133. System.out.println("输入账号成功,系统跳转到输入密码界面\n");
  134. return true ;
  135. }else {
  136. System.out.println("该账号不存在\n");
  137. return false ;
  138. }
  139. }
  140. //打印登陆密码界面
  141. public static boolean loginPwd() throws IOException {
  142. System.out.println("\t*************************************************\n");
  143. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  144. System.out.println("\t*************************************************\n");
  145. for (int i = 3 ;i>0;i--){
  146. System.out.println("\t\t请输入您的密码:\n");
  147. String checkPwd = s.next();
  148. if (a.getAccountpassword().equals (checkPwd)){
  149. System.out.println("输入密码成功,系统跳转到主界面!\n");
  150. return true ;
  151. }else {
  152. if ( i ==1 ){
  153. System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理\n");
  154. return false ;
  155. }
  156. System.out.println("密码录入错误!今日剩余次数:"+ (i-1));
  157. }
  158. }
  159. return false;
  160.  
  161. }
  162. //存款
  163. private static void handmoney() {
  164. System.out.println("\t*************************************************\n");
  165. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  166. System.out.println("\t*************************************************\n");
  167. System.out.println("\t\t请输入存款金额:\n");
  168. int number=s.nextInt();
  169. a.setAccountbalance(a.getAccountbalance() + number);
  170. System.out.println("\t*************************************************\n");
  171. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  172. System.out.println("\t*************************************************\n");
  173. System.out.println("\t\t当前账户存款操作成功\n");
  174. System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
  175. System.out.println("\t*************************************************\n");
  176. Menu();
  177. System.out.println("\t\t请继续操作\n");
  178. }
  179. //取款
  180. public static void getmoney() {
  181. a.setAccountbalance(a.getAccountbalance());
  182. System.out.println("\t*************************************************\n");
  183. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  184. System.out.println("\t*************************************************\n");
  185. System.out.println("\t\t当前账户每日可以支取2万元\n");
  186. System.out.println("\t\t1.100元\n");
  187. System.out.println("\t\t2.500元\n");
  188. System.out.println("\t\t3.1000元\n");
  189. System.out.println("\t\t4.1500元\n");
  190. System.out.println("\t\t5.2000元\n");
  191. System.out.println("\t\t6.5000元\n");
  192. System.out.println("\t\t7.其他金额\n");
  193. System.out.println("\t\t8.退卡\n");
  194. System.out.println("\t\t9.返回\n");
  195. System.out.println("\t*************************************************\n");
  196. int num1=100,num2=500,num3=1000,num4=1500,num5=2000,num6=5000;
  197. int str=s.nextInt();
  198. if (a.getAccountbalance() <str ){
  199. System.out.println("账户余额不足!!\n");
  200. str=0;
  201. }else if(str==1){
  202. a.setAccountbalance(a.getAccountbalance() - num1);
  203. }else if(str==2){
  204. a.setAccountbalance(a.getAccountbalance() - num2);
  205. }else if(str==3){
  206. a.setAccountbalance(a.getAccountbalance() - num3);
  207. }else if(str==4){
  208. a.setAccountbalance(a.getAccountbalance() - num4);
  209. }else if(str==5){
  210. a.setAccountbalance(a.getAccountbalance() - num5);
  211. }else if(str==6){
  212. a.setAccountbalance(a.getAccountbalance() - num6);
  213. }else if(str==7){
  214.  
  215. str=s.nextInt();
  216. a.setAccountbalance(a.getAccountbalance() - str);
  217. }else if(str==8){
  218. System.out.println("退卡成功\n");
  219. }else if(str==9){
  220. System.out.println("返回成功\n");
  221. }
  222. System.out.println("\t*************************************************\n");
  223. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  224. System.out.println("\t*************************************************\n");
  225. System.out.println("\t\t当前账户存款操作成功\n");
  226. System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
  227. System.out.println("\t*************************************************\n");
  228. Menu();
  229. }
  230.  
  231. //转账汇款
  232. public static void moneygogogo() {
  233. a.setAccountbalance(a.getAccountbalance());
  234. System.out.println("\t*************************************************\n");
  235. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  236. System.out.println("\t*************************************************\n");
  237. System.out.println("\t\t请输入转账账户\n");
  238. String str=s.next();
  239. if(a.getAccountID().equals(str)) {
  240. System.out.println("\t*************************************************\n");
  241. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  242. System.out.println("\t*************************************************\n");
  243. System.out.println("\t\t请输入转账金额\n");
  244. int num=s.nextInt();
  245. if(a.getAccountbalance()<=num){
  246. System.out.println("账户余额不足\n");
  247. }else {
  248. a.setAccountbalance(a.getAccountbalance() - num);
  249. System.out.println("\t*************************************************\n");
  250. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  251. System.out.println("\t*************************************************\n");
  252. System.out.println("\t\t当前账户向"+a.getAccountID()+"成功转账"+str+"元");
  253. System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
  254. System.out.println("\t*************************************************\n");
  255. }
  256. }
  257. Menu();
  258. }
  259. //修改密码
  260. public static void update() throws IOException {
  261. fileout();
  262. System.out.println("\t*************************************************\n");
  263. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  264. System.out.println("\t*************************************************\n");
  265. System.out.println("\t\t请输入当前密码:\n");
  266. String str=s.next();
  267. if(!a.getAccountpassword().equals(str)) {
  268. System.out.println("当前密码录入错误");
  269. }else {
  270. System.out.println("\t\t请输入修改密码:\n");
  271. String str1=s.next();
  272. System.out.println("\t\t请输入确认密码:\n");
  273. String str2=s.next();
  274. if(!str1.equals(str2)) {
  275. System.out.println("修改密码与确认密码不一致\n");
  276. }else {
  277. System.out.println("\t*************************************************\n");
  278. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  279. System.out.println("\t*************************************************\n");
  280. System.out.println("\t\t当前账户密码修改成功");
  281. System.out.println("\t*************************************************\n");
  282. }
  283. }
  284. Menu();
  285. }
  286. //查询余额
  287. public static void moneyhere() {
  288. System.out.println("\t*************************************************\n");
  289. System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
  290. System.out.println("\t*************************************************\n");
  291. System.out.print("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
  292. System.out.print("\t\t账户清单信息为:\n");
  293. System.out.print("\t\t操作日期"+a.getOperatedate()+" 操作类型"+a.getOperatetype()+"操作金额"+a.getAmount()+"\n");
  294. System.out.println("\t*************************************************\n");
  295. Menu();
  296. }
  297. }

  

java ATM模拟程序的更多相关文章

  1. ATM模拟程序

    一个很简单的ATM模拟程序 #include <stdio.h> void chaxun(int a3){ int b; b=a3; printf("您的余额为:%d\n&quo ...

  2. JAVA - ATM机程序

    ATM机程序 UnionPayTest.java package oo.day06.work; public class UnionPayTest { } interface UnionPay{ // ...

  3. JAVA Atm测试实验心得

    通过一个假期的自学,完成了老师布置的样卷任务.使用Escipse编写一个学生成绩的管理系统. 一开始两眼摸黑,通过观看Java课程的视频,地址:https://www.bilibili.com/vid ...

  4. JAVA上百实例源码以及开源项目

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...

  5. JAVA上百实例源码网站

    JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...

  6. python之信用卡ATM(第五天)

    本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日, ...

  7. python ATM购物程序

    需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...

  8. 从容器里dump java堆实验探索(原创)

    目标:从docker容器里dump java堆 模拟程序 占用空间500M, 设置启动JVM参数 docker启动命令 (PS:经过测试,至少要650M才能启动容器) 方式1: 通过docker ex ...

  9. [py]python之信用卡ATM

    python之信用卡ATM 参考: http://www.cnblogs.com/wushank/p/5248916.html 他的博客写的很ok 需求介绍 模拟实现一个ATM + 购物商城程序 额度 ...

随机推荐

  1. Leetcode 题解 Jump Game

    一,笨方法  o(n^2).果然看完别人的解法就自惭形秽啊!! 我用的动态规划方法. 比如输入 i: 0 1 2 3 4 ———————————————— a[i]: 2 3 1 0 4 直接利用原来 ...

  2. 学习别人的rpc框架

    https://my.oschina.net/huangyong/blog/361751 https://gitee.com/huangyong/rpc 在此文基础上的另一个实现,解决了原文中一些问题 ...

  3. 2018SDIBT_国庆个人第三场

    A - A CodeForces - 1042A There are nn benches in the Berland Central park. It is known that aiai peo ...

  4. git 常用的命令总结

    下载gitlab上的代码: git clone ssh://git@47.xx.xx.xx:4xx/xxx.git 查看git代码状态: git status 不提交的代码文件: git checko ...

  5. mysql主从复制搭建中几种log和pos详解

    一.主从原理 Replication 线程   Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...

  6. C++17尝鲜:编译期 if 语句

    Constexpr If(编译期 if 语句) 以 if constexpr 打头的 if 语句被称为 Constexpr If. Constexpr If 是C++17所引入的新的语法特性.它为C+ ...

  7. C# DataTable使用方法详解--删除表数据

    在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 1.添加引用 1 u ...

  8. jquery 初始化数据 添加html 第一次玩0.0

    /** * Created by Eee_xiang on 2018/04/12. * 联动响应事件 */ (function () { $.linkEvent = function (options ...

  9. Hibernate 再接触 树状结构设计以及学生课程成绩表的设计

    1 树状结构的设计 package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax. ...

  10. 三种方式监听NGUI的事件方法

    NGUI研究院之三种方式监听NGUI的事件方法(七) NGUI事件的种类很多,比如点击.双击.拖动.滑动等等,他们处理事件的原理几乎万全一样,本文只用按钮来举例. 1.直接监听事件 把下面脚本直接绑定 ...