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

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模拟程序的更多相关文章

  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. 尚硅谷springboot学习5-主入口类说明

    package com.atguigu; import org.springframework.boot.SpringApplication; import org.springframework.b ...

  2. 关于linux 内存碎片指数

    linux针对每一个node的每个zone的每个order,都有一个碎片指数来描述当前的碎片程度,也就是 extfrag_index 参数: extfrag_index这个要展示出来,需要内核编译了两 ...

  3. ORA-00600: internal error code, arguments: [4193]问题解决

    操作环境 SuSE+Oracle11gR2 问题现象 单板宕机自动重启后,ORACLE运行不正常,主要表现如下: 1.执行shutdown immedate停止数据库时,提示ORA-00600: in ...

  4. 二级菜单(avalon+jquery动画)

    by 司徒正美 var vm = avalon.define({ $id: "test", array: [ { name: 111111, child: [ {name: 1.1 ...

  5. 将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT+实践]

    原文地址: 1.https://typcn.com/legacy/blog/posts/openwrt-dnscypt.html 2.http://www.openwrt.pro/post-376.h ...

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

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

  7. HDFS中的集中缓存管理详解

    一.背景 Hadoop设计之初借鉴GFS/MapReduce的思想:移动计算的成本远小于移动数据的成本.所以调度通常会尽可能将计算移动到拥有数据的节点上,在作业执行过程中,从HDFS角度看,计算和数据 ...

  8. vue 组件中this指向

    今天开始学习慕课网的“去哪网”app开发,之前用学了一段时间对vue还是没有深刻理解透,先在开始要从新开始学习vue,今天学的第一堂课是vue 中v-model.v-for的简单例子,以前改变dom中 ...

  9. java fastJson

    // 大区的数据 String cityList = "[{'title':'华北','value':'1','children':[{'title':'山东','value':'1.1', ...

  10. lvm磁盘分区

    初始分区情况见下: 创建lvm类型磁盘 创建卷pv 添加pv到vg中,vg名vgroup0 创建lv lvcreate -L 2g -n zookeeper vgroup0 在vg vgroup0中创 ...