java模拟atm
‘壹’ java模拟ATM机
import java.util.*;
public class ATM {
static int people=123456;
static int mima=123456;
static int yue=10000;
static Scanner in=null;
public ATM(int people,int mima){
this.mima=mima;
}
public static void main(String[] args) {
chongxindenglu();
int count=1;
while(count!=0){
System.out.println("1、查询余额");
System.out.println("2、取款");
System.out.println("3、存款");
System.out.println("4、修改密码");
System.out.println("5、重新登录");
count=in.nextInt();
switch(count){
case 1: System.out.println(10000); System.out.println(); break;
case 2: quKuan(); break;
case 3: cunKuan(); break;
case 4: xiugai(); break;
case 5: chongxindenglu();
}
}
}
public static void quKuan(){
System.out.println("请输入取款金额:");
int qukuanjine=in.nextInt();
if(qukuanjine>5000){
System.out.println("取款金额不能大于5000"+"\n");
}else{
if(qukuanjine%100!=0){
System.out.println("取款金额必须为100的整数倍"+"\n");
}else{
yue=yue-qukuanjine;
System.out.println("您取出了"+qukuanjine+"元,您现在的余额为:"+yue+"元"+"\n");
}
}
}
public static void cunKuan(){
System.out.println("请输入存款金额");
int cunkuanjine=in.nextInt();
if(cunkuanjine<0){
System.out.println("存款金额不能小于0");
}else{
yue=yue+cunkuanjine;
System.out.println("您已成功存入:"+cunkuanjine+"元,您现在总余额为:"+yue+"元"+"\n");
}
}
public static void xiugai(){
System.out.println("请输入您的密码:");
int mima1=in.nextInt();
if(mima1==mima){
System.out.println("请输入新密码:");
mima=in.nextInt();
System.out.println("您的密码已修改为:"+mima+"\n");
}else{
System.out.println("密码输入错误:"+"\n");
}
}
public static void chongxindenglu(){
in=new Scanner(System.in);
System.out.println("请输入登录帐号:");
int denglupeople=in.nextInt();
System.out.println("请输入登录密码:");
int denglumima=in.nextInt();
if(denglupeople==people && denglumima==mima)
System.out.println("帐号登录成功"+"\n");
else
System.out.println("密码输入错误,登录失败"+"\n");
}
}
‘贰’ Java编程实现程序用于模拟ATM取款机。
package demo;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int cnt=3;
String username = null;
String password = null;
double money = 1000;
String targetName = "admin33";
double targetMoney = 1000;
while(true){
if(username!=null&&password!=null){
if("admin".equals(username) && "123".equals(password)){
System.out.println("欢迎光临");
while(true){
System.out.println("请选择您的操作 1 取钱 2 存钱 3 转账 4 查询 5 退出 ");
int n = scanner.nextInt();
if(n==1){//取钱
System.out.println("请输入金额");
int getter = scanner.nextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
}else{
System.out.println("余额不足");
}
}else{
System.out.println("单笔只能取5000及以下");
}
}else{
System.out.println("银行不到给");
}
}else if(n==2){//存钱
System.out.println("请输入金额");
int save = scanner.nextInt();
if(save>=0){
money+=save;
}
}else if(n==3){//转账
System.out.println("请输入目标账户");
String target = scanner.next();
if(target.equals(targetName)){
System.out.println("请输入金额");
int getter = scanner.nextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
targetMoney+=getter;
}else{
System.out.println("余额不足");
}
}else{
System.out.println("单笔只能取5000及以下");
}
}else{
System.out.println("银行不到给");
}
}
}else if(n==4){//查询
System.out.println(money);
}else if(n==5){//退出
System.exit(0);
}else{
System.out.println("没有该项服务");
}
}
}else{
cnt--;
System.out.println("输入错误,您还有"+cnt+"次机会");
username=null;
password=null;
if(cnt<=0){
System.out.println("对不起,您的账号被冻结,请到最近的营业厅解除冻结");
System.exit(0);
}
}
}else{
System.out.println("请输入您的账号");
username = scanner.next();
System.out.println("请输入您的密码");
password = scanner.next();
}
}
}
}
‘叁’ java模拟ATM自助提款机制作的详细步骤
在模拟ATM自助提款机制作的过程中,首先需要插入银行卡,系统会检查卡片是否有效。如果卡片无效,系统会提示用户进行正确的操作。
一旦卡片有效,系统会要求输入密码。如果输入的密码正确,系统将继续执行下一步操作。如果密码错误,系统将提供错误提示,并要求重新输入。
接下来,用户需要输入提款金额。如果输入的金额有误,系统会发出相应的提示。当一切操作正确无误,用户可以取出现金。
值得注意的是,如果在操作过程中突然断电,所有的操作将被回滚,以确保用户账户的安全。如果在第一步即插卡时断电,用户的卡将被系统锁住,无法取出。
在设计此类系统时,安全性和用户体验是非常重要的考虑因素。因此,系统需要能够及时提示用户错误操作,并提供正确的反馈信息。
此外,为确保用户账户的安全,系统应该具备断电保护机制,防止用户在操作过程中因突发状况导致账户被锁定。
在开发过程中,还需要考虑多种可能的异常情况,如网络中断、操作超时等,以确保ATM机能够在各种情况下稳定运行。
总之,模拟ATM自助提款机制作需要细致的设计和严格的测试,以确保系统的稳定性和安全性。
‘肆’ java编写的模拟ATM取款机程序
我现写的: import java.util.Scanner;public class ATM {
private static String theName = "admin";
private static String thePassword = "123456";
private static int balance = 10000;
public static void getBalance(){
System.out.println("当前余额:" + balance);
}
public static void drawMoney(Scanner sc){
int money = 0;
System.out.println("请输入取款金额:");
money = sc.nextInt();
String type = "";
if (balance > 0) {
if (balance >= money) {
if (money <= 5000) {
balance = balance - money;
type = "请在30秒内提取现金...\n剩余余额:"+balance;
} else if (money <= 0) {
type = "金额错误";
} else {
type = "超出最大限制金额";
}
} else {
type = "超出最大余额";
}
} else {
type = "余额不足";
}
System.out.println(type);
}
public static void bankMoney(Scanner sc){
int money = 0;
System.out.println("请输入存储金额:");
money = sc.nextInt();
String type = "";
if (money > 0) {
balance = balance + money;
type = "存储成功,现有余额:" + balance;
} else {
type = "存储金额不能为负";
}
System.out.println(type);
}
public static void updatePass(Scanner sc){
String oldPass = "";
String newPass1 = "";
String newPass2 = "";
while(true){
System.out.println("请输入原密码:");
oldPass = sc.next();
if (oldPass.equals(thePassword)) {
break;
} else {
System.out.println("密码错误,请重新输入");
}
}
while(true){
System.out.println("请输入新密码");
newPass1 = sc.next();
System.out.println("再次输入");
newPass2 = sc.next();
if (newPass1.equals(newPass2)) {
if (!isSame(newPass1)) {
thePassword = newPass1;
System.out.println("修改成功");
break;
} else {
System.out.println("所有字符不能相同,重新输入");
}
} else {
System.out.println("两次输入不一致,重新输入");
}
}
}
public static boolean isSame(String string){
boolean bool = false;
for (int i = 0; i < string.length() - 1; i++) {
char char1 = string.charAt(i);
for (int j = i + 1; j < string.length(); j++) {
char char2 = string.charAt(j);
if (char1 == char2) {
bool = true;
break;
}
}
}
return bool;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
String name = "";
String password = "";
System.out.println("请输入账号:");
name = sc.next();
System.out.println("请输入密码:");
password = sc.next();
if (name.equals(theName) && password.equals(thePassword)) {
break;
} else {
System.out.println("账号或密码错误,请重新输入!");
}
}
while(true){
int operate = 0;
System.out.println("请选择你要进行的操作:\n1、查询 2、取款 3、存款 4、修改密码 0、退出");
operate = sc.nextInt();
if (0 == operate) {
System.out.println("谢谢使用!");
break;
} else if (1 == operate) {
getBalance();
} else if (2 == operate) {
drawMoney(sc);
} else if (3 == operate) {
bankMoney(sc);
} else if (4 == operate) {
updatePass(sc);
}
}
}
}