模拟ATM的功能

import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class AccountManager {

public static void main(String[] args) {
LinkedList<Account> acc=new LinkedList<Account>();
Scanner shuru=new Scanner(System.in);
getInformation(acc);
int flag;
// System.out.println(acc.get(0).getAccountID());
// System.out.println(acc.size());
panding(acc);

}

// 判定账号
public static void panding(LinkedList<Account> acc) {
Scanner shuru = new Scanner(System.in);
int flag = 0;
int j=0;
String zhanghao;
while (flag == 0) {
System.out.println("***************************************************************");
System.out.println("    欢迎使用中国工商银行自动柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入您的账号:");
System.out.println();
System.out.println("****************************************************************");
zhanghao = shuru.next();
//System.out.println(zhanghao);
if (zhanghao.length() != 8) {
System.out.println("该卡不是工行卡");
} else {
//System.out.println(zhanghao);
for (int i = 0; i < acc.size(); i++) {
if (zhanghao.equals(acc.get(i).getAccountID())) {
flag = 1;
j=i;
}
//System.out.println(j);

}
{
if (flag == 0) {
System.out.println("该账号不存在");
} else {
shurumima(acc,j);
}
}
}

}
}
//判定密码 a为固定的账户
public static void shurumima(LinkedList<Account> acc,int a)
{

int i=0;
while(i<3)
{
System.out.println("***************************************************************");
System.out.printf("    欢迎 ");
System.out.print(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入您的密码:");
System.out.println();
System.out.println("****************************************************************");
String mima ;
Scanner shuru = new Scanner(System.in);
mima=shuru.next();
if(mima.equals(acc.get(a).getAccontpassword()))
{
i=5;
}
else {
System.out.println("密码录入错误");
i=i+1;
}
}
if(i==5)
{
gongneng(acc,a);
}
else
{
System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理");
}
}
//主界面
public static void gongneng(LinkedList<Account> acc, int a) {
String q="q";
while (q.equals("q")) {

System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.println("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 1.存款");
System.out.println(" 2.取款");
System.out.println(" 3.转账汇款");
System.out.println(" 4.修改密码");
System.out.println(" 5.查询余额");
System.out.println();
System.out.println("****************************************************************");
int key = 0;
Scanner shuru = new Scanner(System.in);
key = shuru.nextInt();
acc.get(a).setOperatetype(key);
switch (key) {
case 1:
cunkuan(acc,a);
q=shuru.next();
break;
case 2:
qukuan(acc,a);
q=shuru.next();
break;
case 3:
zhuanzhang(acc,a);
q=shuru.next();
break;
case 4:
xiugai(acc,a);
q=shuru.next();
break;
case 5:
chaxun(acc,a);
q=shuru.next();
break;

}
}
}
public static void chaxun(LinkedList<Account> acc, int a)
{
getList(a, acc);
System.out.println("*************;**************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.printf(" 当前账户余额为:");
System.out.println(acc.get(a).getAccountbalance());
System.out.println("账户清单信息为:");
acc.get(a);
acc.get(a).setAmount(0);
acc.get(a).setOperatetype(5);
acc.get(a).setOperatedate("");
setList(a, acc);
System.out.println("****************************************************************");
}
public static void cunkuan(LinkedList<Account> acc, int a)
{
int qian;
int i=0;
while(i==0)
{
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入存款金额:");
System.out.println();
System.out.println("****************************************************************");
Scanner shuru = new Scanner(System.in);
qian=shuru.nextInt();
if(qian>0)
{
int yue=0;
yue=acc.get(a).getAccountbalance()+qian;
acc.get(a).setAccountbalance(yue);
i=1;
acc.get(a).setAmount(qian);
acc.get(a).setOperatedate("");
setInformation(acc);
setList(a, acc);
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户存款操作成功。");
System.out.printf(" 当前账户余额为:");
System.out.println(yue);
System.out.println();
System.out.println("****************************************************************");
}
else
{
System.out.println("输入金额有误");
}
}
}

public static void xiugai (LinkedList<Account> acc, int a)
{
String mima="";
String mima1="";
String mima2="";
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入当前密码::");
System.out.println("****************************************************************");
Scanner shuru = new Scanner(System.in);
mima=shuru.next();
if(mima.equals(acc.get(a).getAccontpassword()))
{
System.out.println("请输入修改密码:");
mima1=shuru.next();
System.out.println("请再输入修改密码:");
mima2=shuru.next();
if(mima1.equals(mima2))
{
acc.get(a).setAccontpassword(mima1);
acc.get(a).setOperatedate("");
setInformation(acc);
setList(a, acc);
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("当前账户密码修改成功");
System.out.println("****************************************************************");
}
else
{
System.out.println("修改密码与确认密码不一致");
}
}
else
{
System.out.println("当前密码录入错误");
}
}
//转账操作
public static void zhuanzhang(LinkedList<Account> acc, int a) {
int qian = 0;
String zhanghao = "";
int j = 0;
int flag = 0;
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入转账账户:");
System.out.println("****************************************************************");
Scanner shuru = new Scanner(System.in);
zhanghao = shuru.next();
for (int i = 0; i < acc.size(); i++) {
if (zhanghao.equals(acc.get(i).getAccountID())) {
j = i;
flag = 1;
}
}
if (flag == 1) {
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入转账金额:");
System.out.println("****************************************************************");
qian = shuru.nextInt();
if (qian < acc.get(a).getAccountbalance()) {

System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.println("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.printf("请确认是否向");
System.out.print(acc.get(j).getAccountname());
System.out.print(qian);
System.out.println("元。");
System.out.println("****************************************************************");
String f;
f=shuru.next();
if(f.equals("N"))
{
acc.get(j).setAmount(qian);
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(j).setOperatedate("");
setInformation(acc);
setList(a, acc);
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.println("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.printf("当前账户成功向");
System.out.print(acc.get(j).getAccountname());
System.out.print(qian);
System.out.println("元。");
System.out.println("****************************************************************");
}

} else {
System.out.println("账户余额不足");
}
} else {
System.out.println("该账户不存在");
}
}
public static void qukuan(LinkedList<Account> acc, int a)
{
int key=0;
int qian=0;
int i=0;
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("1、100元");
System.out.println("2、500元");
System.out.println("3、1000元");
System.out.println("4、1500元");
System.out.println("5、2000元");
System.out.println("6、5000元;");
System.out.println("7、其他金额");
System.out.println("8、退卡");
System.out.println("9、返回");
Scanner shuru = new Scanner(System.in);
key=shuru.nextInt();
switch(key)
{
case 1:
if(acc.get(a).getAccountbalance()>100)
{
qian =100;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 2:
if(acc.get(a).getAccountbalance()>500)
{
qian =500;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 3:
if(acc.get(a).getAccountbalance()>1000)
{
qian =1000;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 4:
if(acc.get(a).getAccountbalance()>1500)
{
qian =1500;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 5:
if(acc.get(a).getAccountbalance()>2000)
{
qian =2000;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 6:
if(acc.get(a).getAccountbalance()>5000)
{
qian =5000;
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
acc.get(a).setAmount(qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 7:
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println("请输入取款金额:");
System.out.println("****************************************************************");
qian=shuru.nextInt();
if(acc.get(a).getAccountbalance()>qian)
{
acc.get(a).setAmount(qian);
acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian);
i=1;
}
else
{
System.out.println("账户余额不足");
}
break;
case 8:
gongneng(acc,a);
break;
case 9:
panding(acc);
break;
}
acc.get(a).setOperatedate("");
setInformation(acc);
setList(a, acc);
getInformation(acc);
if(i==1)
{
System.out.println("***************************************************************");
System.out.printf("    欢迎");
System.out.printf(acc.get(a).getAccountname());
System.out.printf("    使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.printf("当前账户取款操作");
System.out.print(qian);
System.out.println("元成功。");
System.out.printf("当前账户余额为:");
System.out.print(acc.get(a).getAccountbalance());
System.out.println("元");
System.out.println("****************************************************************");
}
}
public static String getList(int i,LinkedList<Account> acc)//读取流水
{
try
{
FileReader fr=new FileReader("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountList");
Scanner in=new Scanner(fr);
String iid=acc.get(i).getAccountID();
String id=new String();
String s=new String();
String sum="";
int z=1;
while(in.hasNextLine())
{
id=in.next();
if(iid.equals(id))
{
s=id+" "+in.nextLine()+"\n";
sum=sum+"( "+z+" )\t"+s;
z++;
}
}
fr.close();
in.close();
return sum;
}
catch(Exception e)
{
System.out.println("文件读取失败");
return "";
}
}
public static void setList(int i,LinkedList<Account> acc)//写入流水
{
try
{
Account a=acc.get(i);
FileWriter fw=new FileWriter("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountList",true);
PrintWriter pw=new PrintWriter(fw);
pw.println(a.getAccountID()+" "+a.getAccountname()+" "+ a.getOperatedate()+" "+a.getOperatetype()+" "+a.getAmount());
pw.flush();
pw.close();
fw.close();
}
catch(Exception e)
{
System.out.println("文件写入失败");
}
}

public static void getInformation(LinkedList<Account> acc)//获得信息
{

try
{
FileReader fr=new FileReader("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountInformation");
Scanner r=new Scanner(fr);
while(r.hasNext())
{
Account a=new Account();
a.setAccountID(r.next());
a.setAccontpassword(r.next());
a.setAccountname(r.next());
a.setAccountbalance(r.nextInt());
acc.add(a);
}
fr.close();
r.close();
}
catch(Exception e)
{
System.out.println("文件写入失败");
}
}
public static void setInformation(LinkedList<Account> acc)//写入信息
{
try
{
int i=0;
FileWriter fw=new FileWriter("E:\\新建文件夹 (3)\\src\\java第一周学习2\\AccountInformation");
PrintWriter pw=new PrintWriter(fw);
for(i=0;i<acc.size();i++)
{

pw.println(acc.get(i).getAccountID()+" "+acc.get(i).getAccontpassword()+" "+ acc.get(i).getAccountname()+" "+acc.get(i).getAccountbalance());
}
pw.flush();
pw.close();
fw.close();
}
catch(Exception e)
{
System.out.println("文件写入失败");
}
}

}

通过这次的练习,我了解了我自己对java的学习还有很大的欠缺。还有很多的东西需要去学习,去理解。

在那次课之中,好多东西的用法我都不熟悉,所以并没有写出多少。

今后我会更加努力的学习有关Java的知识,不断提升自己的能力。

原文地址:https://www.cnblogs.com/chenyuchun/p/9697012.html

时间: 2024-10-17 20:56:16

模拟ATM的功能的相关文章

模拟ATM机功能(C语言)

/* fuction:模拟ATM机存取功能 date:2014/8/20 by:zhouhaiou*/ #include <stdio.h>#include <string.h>#include <math.h>int money=100000; void query();void transf(); void welcome()//欢迎界面 { printf("\t\t*********************************************

文件及输入输出流模拟ATM机

题目:两部分要求都要实现. 一.ATM机的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0). 模拟ATM的功能设计,用户插卡后显示选择语言界面,输入密码界面,用户输入正确密码(用户输入错误密码,则提示该卡已被锁定,无法操作),则弹出选择界面:存款.取款.转账汇款.修改密码.查询余额. 选择"取款",则显示100元.500元.1000元.1500元.2000元

语言模拟ATM自动取款机系统

C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入:用户输入密码,才能进入. 登陆成功界面:共有六个选项,查询余额.取款.存款.转账,修改密码,退出分别对应1,2,3,4,5,6选项,若序号输入不正确会予以提示. 选定1后,进入查询余额界面: 选定2后,进入取款界面: 选定3后,进入存款界面: 选定4后,修改密码,选定5,进入转账:选定6,退出界面:

【学习ios之路:C语言】小程序:实现类似ATM取款机功能.

小程序:模拟ATM机取款的过程 1).定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码 2).判断输入的卡号是否在数组中. 3).如果在数组中就让输入密码,判断是否和卡号对应的密码匹配. 4).判断密码,24小时内只允许输入3次错误的密码.输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡. 5).密码正确就让用户对该账户进行相应的操作. 6).注意取款的限制. 7).述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的

模拟ATM机银行系统

淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主

ListView模拟微信好友功能

ListView模拟微信好友功能 效果图: 分析: 1.创建listView 2.创建数据 3.创建适配器 将数据放到呈现数据的容器里面. 将这个容器(带数据)连接适配器. 4.ListView设置适配器 代码: 1 package fry; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.example.weChatFriends.R; 7 8 import android.app.Activity

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库 一.控制显示多少位小数位 有些时候小数位数太多了,想保留多少位小数,这里介绍一种利用四舍五入保留想要的小数位数Math.round四舍五入到整数位,所以把小数乘以整10或整百,在除以整10或整百,就得到想要的位数了 double a = 3.14159265359;double weishu = 5;double b = Math.pow(10,weishu);a = Math.round(a*b)/b; 二.

Python 操作文件模拟SQL语句功能

Python操作文件模拟SQL语句功能 一.需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from staff_table where dept = "IT" 3. select * from

python模拟ATM系统

一.环境及程序功能说明 python 2.7.12模拟与银行ATM功能,主要功能如下: 1,登录查询余额 2,转账功能 3,提现功能 4,流水查询 5,密码修改 6,还款功能 7,退出(切换账号) 采用pickle存储账号密码相关信息,以账号名为日志文件名存储该账号的流水日志~ 为了实现测试,先写一个提供测试文件的小脚本,代码如下: #coding:utf-8 import pickle import time import os IOSTIME = '%Y-%m-%d %X' Now = ti