java ATM模拟程序
//基本功能已经完善,文件读取没有问题,文件重写尚未完成。
Account类
- public class Account {
- //初始化参数
- private String accountID;
- private String accountname;
- private String operatedate;
- private int operatetype;
- private String accountpassword;
- private int accountbalance=0;
- private int amount;
- //构造读取和设置变量信息的方法
- public void setAccountID(String accountID) {this.accountID=accountID;}
- public String getAccountID() {return accountID;}
- public void setAccountname(String accountname) {this.accountname=accountname;}
- public String getAccountname() {return accountname;}
- public void setOperatedate(String operatedate) {this.operatedate=operatedate;}
- public String getOperatedate() {return operatedate;}
- public void setOperatetype(int operatetype){this.operatetype=operatetype;}
- public int getOperatetype() {return operatetype;}
- public void setAccountpassword(String accountpassword) {this.accountpassword=accountpassword;}
- public String getAccountpassword() {return accountpassword;}
- public void setAccountbalance(int accountbalance) {this.accountbalance=accountbalance;}
- public int getAccountbalance() {return accountbalance;}
- public void setAmount(int amount) {this.amount=amount;}
- public int getAmount() {return amount;}
- //构造方法有参数
- public Account(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
- this.accountID=accountID;
- this.accountname=accountname;
- this.operatedate=operatedate;
- this.operatetype=operatetype;
- this.accountpassword=accountpassword;
- this.accountbalance=accountbalance;
- this.amount=amount;
- }
- //构造方法无参数
- public Account() {}
- //参数统一类型
- public String toString() {
- return (accountID+" "+accountname+" "+operatedate+" "+operatetype+" "+accountpassword+" "+accountbalance+" "+amount);
- }
- }
AccountManager类
- //20173685 任伟强 信1705-2
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.Scanner;
- public class AccountManager extends Account{
- //继承父类
- public AccountManager(String accountID,String accountname,String operatedate,int operatetype,String accountpassword,int accountbalance,int amount) {
- super(accountID,accountname,operatedate,operatetype,accountpassword,accountbalance,amount);
- }
- public AccountManager() {
- }
- //全局定义
- static Account a=new Account();
- static Scanner s=new Scanner(System.in);
- //选择
- public static void main(String[]args) {
- try {
- fileout();
- waterout();
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
- try {
- if(loginAccount()&&loginPwd()) {
- Menu();
- String option;
- do {
- option=s.next();
- switch(option) {
- case"1": handmoney();break;
- case"2": getmoney();break;
- case"3": moneygogogo();break;
- case"4": update();break;
- case"5": moneyhere();break;
- case "q": ;break;
- default: System.out.println("错误,请重新输入!\n");
- }}while(!"q".equals(option));
- System.out.println("成功退出系统!\n");}
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- //读取账户基本信息库
- public static void fileout() throws FileNotFoundException {
- try {
- FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
- Scanner sc=new Scanner(fr);
- while(sc.hasNext()) {
- a.setAccountID(sc.next());
- a.setAccountname(sc.next());
- a.setAccountpassword(sc.next());
- a.setAccountbalance(sc.nextInt());
- }
- sc.close();
- fr.close();
- } catch (IOException e) {
- System.out.println("文件导出成功\n");
- }
- }
- //读取账户流水信息库
- public static void waterout() throws FileNotFoundException {
- try {
- FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
- Scanner sc=new Scanner(fr);
- while(sc.hasNext()) {
- a.setAccountID(sc.next());
- a.setAccountname(sc.next());
- a.setOperatedate(sc.next());
- a.setOperatetype(sc.nextInt());
- a.setAmount(sc.nextInt());
- }
- sc.close();
- fr.close();
- } catch (IOException e) {
- System.out.println("文件导出成功\n");
- }
- }
- //导入账户基本信息库
- public static void filein() throws IOException {
- int i;
- FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
- FileWriter fw=new FileWriter("D:\\eclipse\\eclipse\\Account\\src\\accountinformation.txt");
- i=fr.read();
- while(i!=-1) {
- fw.write(i);
- fr.read();
- }
- fr.close();
- fw.close();
- }
- //导入账户基本信息库
- public static void waterin() throws IOException {
- int i;
- FileReader fr=new FileReader("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
- FileWriter fw=new FileWriter("D:\\eclipse\\eclipse\\Account\\src\\accountlist.txt");
- i=fr.read();
- while(i!=-1) {
- fw.write(i);
- fr.read();
- }
- fr.close();
- fw.close();
- }
- //打印菜单
- public static void Menu(){
- StringBuffer s=new StringBuffer("\n");
- s.append("\t*************************************************\n");
- s.append("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- s.append("\t*************************************************\n");
- s.append("\t\t\t1.存款;\n");
- s.append("\t\t\t2.取款;\n");
- s.append("\t\t\t3.转账汇款;\n");
- s.append("\t\t\t4.修改密码;\n");
- s.append("\t\t\t5.查询余额;\n");
- s.append("\t*************************************************\n");
- s.append("\t(输入q退出系统)\n");
- s.append("请操作\n");
- System.out.println(s);
- }
- //打印登陆账号界面
- public static boolean loginAccount() throws IOException {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t请输入您的账号:\n");
- String checkAccount = s.next();
- if (a.getAccountID().equals (checkAccount)){
- System.out.println("输入账号成功,系统跳转到输入密码界面\n");
- return true ;
- }else {
- System.out.println("该账号不存在\n");
- return false ;
- }
- }
- //打印登陆密码界面
- public static boolean loginPwd() throws IOException {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- for (int i = 3 ;i>0;i--){
- System.out.println("\t\t请输入您的密码:\n");
- String checkPwd = s.next();
- if (a.getAccountpassword().equals (checkPwd)){
- System.out.println("输入密码成功,系统跳转到主界面!\n");
- return true ;
- }else {
- if ( i ==1 ){
- System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理\n");
- return false ;
- }
- System.out.println("密码录入错误!今日剩余次数:"+ (i-1));
- }
- }
- return false;
- }
- //存款
- private static void handmoney() {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t请输入存款金额:\n");
- int number=s.nextInt();
- a.setAccountbalance(a.getAccountbalance() + number);
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t当前账户存款操作成功\n");
- System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
- System.out.println("\t*************************************************\n");
- Menu();
- System.out.println("\t\t请继续操作\n");
- }
- //取款
- public static void getmoney() {
- a.setAccountbalance(a.getAccountbalance());
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t当前账户每日可以支取2万元\n");
- System.out.println("\t\t1.100元\n");
- System.out.println("\t\t2.500元\n");
- System.out.println("\t\t3.1000元\n");
- System.out.println("\t\t4.1500元\n");
- System.out.println("\t\t5.2000元\n");
- System.out.println("\t\t6.5000元\n");
- System.out.println("\t\t7.其他金额\n");
- System.out.println("\t\t8.退卡\n");
- System.out.println("\t\t9.返回\n");
- System.out.println("\t*************************************************\n");
- int num1=100,num2=500,num3=1000,num4=1500,num5=2000,num6=5000;
- int str=s.nextInt();
- if (a.getAccountbalance() <str ){
- System.out.println("账户余额不足!!\n");
- str=0;
- }else if(str==1){
- a.setAccountbalance(a.getAccountbalance() - num1);
- }else if(str==2){
- a.setAccountbalance(a.getAccountbalance() - num2);
- }else if(str==3){
- a.setAccountbalance(a.getAccountbalance() - num3);
- }else if(str==4){
- a.setAccountbalance(a.getAccountbalance() - num4);
- }else if(str==5){
- a.setAccountbalance(a.getAccountbalance() - num5);
- }else if(str==6){
- a.setAccountbalance(a.getAccountbalance() - num6);
- }else if(str==7){
- str=s.nextInt();
- a.setAccountbalance(a.getAccountbalance() - str);
- }else if(str==8){
- System.out.println("退卡成功\n");
- }else if(str==9){
- System.out.println("返回成功\n");
- }
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t当前账户存款操作成功\n");
- System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
- System.out.println("\t*************************************************\n");
- Menu();
- }
- //转账汇款
- public static void moneygogogo() {
- a.setAccountbalance(a.getAccountbalance());
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t请输入转账账户\n");
- String str=s.next();
- if(a.getAccountID().equals(str)) {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t请输入转账金额\n");
- int num=s.nextInt();
- if(a.getAccountbalance()<=num){
- System.out.println("账户余额不足\n");
- }else {
- a.setAccountbalance(a.getAccountbalance() - num);
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t当前账户向"+a.getAccountID()+"成功转账"+str+"元");
- System.out.println("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
- System.out.println("\t*************************************************\n");
- }
- }
- Menu();
- }
- //修改密码
- public static void update() throws IOException {
- fileout();
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t请输入当前密码:\n");
- String str=s.next();
- if(!a.getAccountpassword().equals(str)) {
- System.out.println("当前密码录入错误");
- }else {
- System.out.println("\t\t请输入修改密码:\n");
- String str1=s.next();
- System.out.println("\t\t请输入确认密码:\n");
- String str2=s.next();
- if(!str1.equals(str2)) {
- System.out.println("修改密码与确认密码不一致\n");
- }else {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.println("\t\t当前账户密码修改成功");
- System.out.println("\t*************************************************\n");
- }
- }
- Menu();
- }
- //查询余额
- public static void moneyhere() {
- System.out.println("\t*************************************************\n");
- System.out.println("\t 欢迎全世界最有钱的人使用中国工商银行自助柜员系统\n");
- System.out.println("\t*************************************************\n");
- System.out.print("\t\t当前账户余额为"+a.getAccountbalance()+"元\n");
- System.out.print("\t\t账户清单信息为:\n");
- System.out.print("\t\t操作日期"+a.getOperatedate()+" 操作类型"+a.getOperatetype()+"操作金额"+a.getAmount()+"\n");
- System.out.println("\t*************************************************\n");
- Menu();
- }
- }
java ATM模拟程序的更多相关文章
- ATM模拟程序
一个很简单的ATM模拟程序 #include <stdio.h> void chaxun(int a3){ int b; b=a3; printf("您的余额为:%d\n&quo ...
- JAVA - ATM机程序
ATM机程序 UnionPayTest.java package oo.day06.work; public class UnionPayTest { } interface UnionPay{ // ...
- JAVA Atm测试实验心得
通过一个假期的自学,完成了老师布置的样卷任务.使用Escipse编写一个学生成绩的管理系统. 一开始两眼摸黑,通过观看Java课程的视频,地址:https://www.bilibili.com/vid ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- JAVA上百实例源码网站
JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...
- python之信用卡ATM(第五天)
本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日, ...
- python ATM购物程序
需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...
- 从容器里dump java堆实验探索(原创)
目标:从docker容器里dump java堆 模拟程序 占用空间500M, 设置启动JVM参数 docker启动命令 (PS:经过测试,至少要650M才能启动容器) 方式1: 通过docker ex ...
- [py]python之信用卡ATM
python之信用卡ATM 参考: http://www.cnblogs.com/wushank/p/5248916.html 他的博客写的很ok 需求介绍 模拟实现一个ATM + 购物商城程序 额度 ...
随机推荐
- Leetcode 题解 Jump Game
一,笨方法 o(n^2).果然看完别人的解法就自惭形秽啊!! 我用的动态规划方法. 比如输入 i: 0 1 2 3 4 ———————————————— a[i]: 2 3 1 0 4 直接利用原来 ...
- 学习别人的rpc框架
https://my.oschina.net/huangyong/blog/361751 https://gitee.com/huangyong/rpc 在此文基础上的另一个实现,解决了原文中一些问题 ...
- 2018SDIBT_国庆个人第三场
A - A CodeForces - 1042A There are nn benches in the Berland Central park. It is known that aiai peo ...
- git 常用的命令总结
下载gitlab上的代码: git clone ssh://git@47.xx.xx.xx:4xx/xxx.git 查看git代码状态: git status 不提交的代码文件: git checko ...
- mysql主从复制搭建中几种log和pos详解
一.主从原理 Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...
- C++17尝鲜:编译期 if 语句
Constexpr If(编译期 if 语句) 以 if constexpr 打头的 if 语句被称为 Constexpr If. Constexpr If 是C++17所引入的新的语法特性.它为C+ ...
- C# DataTable使用方法详解--删除表数据
在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 1.添加引用 1 u ...
- jquery 初始化数据 添加html 第一次玩0.0
/** * Created by Eee_xiang on 2018/04/12. * 联动响应事件 */ (function () { $.linkEvent = function (options ...
- Hibernate 再接触 树状结构设计以及学生课程成绩表的设计
1 树状结构的设计 package com.bjsxt.hibernate; import java.util.HashSet; import java.util.Set; import javax. ...
- 三种方式监听NGUI的事件方法
NGUI研究院之三种方式监听NGUI的事件方法(七) NGUI事件的种类很多,比如点击.双击.拖动.滑动等等,他们处理事件的原理几乎万全一样,本文只用按钮来举例. 1.直接监听事件 把下面脚本直接绑定 ...