package Lianxi2;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
/**
* 模拟Atm机的一些简单功能
*/
public class ATM {
/**
* 定义初始化信息
*/
private static String account = "123"; //账号
private static String password = "123"; //密码
private static double balance = 10000; //余额
private static String name = "tom"; //姓名
private static String account1 = "321"; //账号
private static String password1= "321"; //密码
private static double balance1 = 100; //余额
private static String name1 = "jack"; //姓名
private static boolean type = true; //判断是否继续循环
public static void main(String[] args) {
//1、显示一段欢迎的信息
System.out.println("欢迎使用ATM");
while (type){
//显示登录
login();
optionMenu();
}
}
//定义一个方法 , 显示登录
private static void login() {
//2.提示输入卡号
System.out.println("请输入卡号");
//获取控制台对象
Scanner scanner=new Scanner(System.in);
//获取卡号
String inAcount=scanner.next();
//提示输入密码
System.out.println("请输入密码");
//3.获取输入密码
String inPassword = scanner.next();
//判断,输入的账号和密码是否和初始账号密码一样,如果一样, 显示主菜单,如果不一样,返回,继续输入卡号密码
if (inAcount.equals(account)&&inPassword.equals(password)){
showMenu();
}else {
login();
}
}
//显示主菜单
private static void showMenu() {
//4.显示主菜单
System.out.println("请输入你想要操作类型");
System.out.println("1.余额查询 2.取款 3.存款 4.转账 5.打印 6.退卡");
}
//显示操作主菜单
private static void optionMenu() {
//获取控制台对象
Scanner scanner=new Scanner(System.in);
//提示让它选择操作类型
String chose=scanner.next();
switch (chose){
case "1":
//显示余额
showMoney();
//显示主菜单
showMenu();
//操作主菜单
optionMenu();
break;
case "2":
//取款快捷菜单
getMoneyMenu();
//取款操作
getMoeny();
//显示主菜单
showMenu();
//操作主菜单
optionMenu();
break;
case "3" :
//存款
saveMoney();
//显示主菜单
showMenu();
//操作主菜单
optionMenu();
break;
case "4" :
//转账
tranMoney();
//显示主菜单
showMenu();
//操作主菜单
optionMenu();
break;
case "5" :
//打印
print();
//显示主菜单
showMenu();
//操作主菜单
optionMenu();
break;
case "6" :
//退卡
System.out.println("当前用户已退出!");
//设置当前循环字段为false,退出while循环
type = false;
break;
default : ;
break;
}
}
//打印显示当前余额
private static void showMoney() {
System.out.println("你当前的余额为:"+balance);
}
//显示取款快捷菜单
private static void getMoneyMenu() {
System.out.println("请输入你想要操作类型");
System.out.println("1.100 2.200 3.500 4.1000 5.2000 6.其它");
}
//操作快捷取款
private static void getMoeny() {
//获取控制台对象
Scanner scanner=new Scanner(System.in);
String chose=scanner.next();
switch (chose){
case "1" :
balance -=100;
//显示余额
showMoney();
break;
case "2" :
balance -=200;
//显示余额
showMoney();
break;
case "3" :
balance -=500;
//显示余额
showMoney();
break;
case "4" :
balance -=1000;
//显示余额
showMoney();
break;
case "5" :
balance -=2000;
//显示余额
showMoney();
break;
case "6" :
break;
default : ;
break;
}
}
//存款
private static void saveMoney() {
//获取控制台对象
Scanner scanner=new Scanner(System.in);
System.out.println("请输入存款金额:");
double inMoney = scanner.nextDouble();
balance+=inMoney;
//显示余额
showMoney();
}
//转账
// 逻辑分析 :
//
// 实现转账的功能
private static void tranMoney() {
//1.输入对方账号
System.out.println("请输入对方账号");
//获取控制台对象
Scanner scanner=new Scanner(System.in);
//接收输入的字符串
String inAccount = scanner.next();
//2.账号是否存在
if(inAccount.equals(account1)){
//3.输入转账金额
System.out.println("请输入转账金额");
double inMoney = scanner.nextDouble();
//4.余额是否足够
if (balance>=inMoney){
balance=balance-inMoney;
balance1+=inMoney;
//5.显示当前账户余额
System.out.println("转账成功\n当前账户余额为:"+balance);
}else {
//提示余额不足
System.out.println("账户余额不足");
tranMoney();
}
}else {
//提示你输入的账号不存在
System.out.println("你输入的账号不存在,请重新输入");
tranMoney();
}
}
//打印
// 逻辑分析:
// 打印前前用户信息
//
// 1、显示打印文件的路径 。
// 1.1、把前账号,姓名,余额打印到本地.txt文件中。
// 2、返回主菜单
private static void print() {
//首先定义一个路径
String path = "d:\\file.txt";
//1、显示打印文件的路径
System.out.println(path);
String str = "账号:"+account + " 余额:"+balance +" 姓名:"+ name;
//创建一个文件对象
File file=new File(path);
//文件是否存在,不存在则创建
if (file.exists()){
file.delete();
}else {
//创建一个文件
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//把数据写入进入
FileWriter FileWriter=null;
try {
FileWriter=new FileWriter(file);
FileWriter.write(str);
FileWriter.flush();
} catch (IOException e) {
e.printStackTrace();
try {
FileWriter.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
}
ATM银行机
最新推荐文章于 2024-05-28 15:22:10 发布