/**
* ATM机类
*
* 查看余额
*
* 取款
*
* 存款
*
* 退出系统
*
*
*
*/
public class ATM {
static double yue = 1200.00
public static void main(String[] arg) {
ATM localTest1 = new ATM()
localTest1.ATM_Operate()
}
/**
* ATM机的操作
*/
private void ATM_Operate() {
System.out.println("欢迎使用中国工商银行ATM取款机")
System.out.println("1、查看余额 2、取款")
System.out.println("3、存款0、退出")
System.out.print("请输入您需要的服务:")
byte[] buffer = new byte[512]
try {
int count = System.in.read(buffer)// 返回实际读取的字节数
System.out.print("您输入的是:")
for (int i = 0i <counti++) {
System.out.print("" + (char) buffer[i])
}
if ((char) buffer[0] == '1') {
// 查看余额
System.out.println("您的余额是:¥" + yue + "元")
System.out.println()
ATM_Operate()
} else if ((char) buffer[0] == '2') {
// 取款
withdrawal()
System.out.println()
ATM_Operate()
} else if ((char) buffer[0] == '3') {
// 存款
deposit()
System.out.println()
ATM_Operate()
} else if ((char) buffer[0] == '0') {
// 退出
System.out.println("您已经成功退出系统,谢谢你的使用")
System.exit(0)
} else {
System.out.println("输入不合法,请重新输入")
System.out.println()
ATM_Operate()
}
} catch (IOException e) {
e.printStackTrace()
}
}
/**
* 取款
*
* @throws IOException
*/
private void withdrawal() throws IOException {
byte[] buffer = new byte[512]
System.out.print("请输入您要取出的金额:¥")
int count2 = System.in.read(buffer)// 返回实际读取的字节数
System.out.print("您输入的金额是:")
for (int i = 0i <count2 - 1i++) {
System.out.print("" + (char) buffer[i])
}
System.out.println()
// 字符0 ~ 9对应ASCII值48 ~ 57
boolean flag = false
for (int i = 0i <count2 - 1i++) {
if ((char) buffer[i] >47 &&(char) buffer[i] <58) {
if (i == count2 - 2) {
flag = true
}
} else {
// 输入的字符不是数值
System.out.println("输入不合法,请重新输入")
withdrawal()
break
}
}
System.out.println()
if (flag) {
System.out.print("您已成功取出¥:")
String num = ""
for (int i = 0i <count2 - 1i++) {
System.out.print("" + (char) buffer[i])
num += (char) buffer[i]
}
yue -= Double.valueOf(num)
System.out.print(",现在余额¥:" + yue)
}
}
/**
* 存款
*
* @throws IOException
*/
private void deposit() throws IOException {
byte[] buffer = new byte[512]
System.out.print("请输入您要存入的金额:¥")
int count2 = System.in.read(buffer)// 返回实际读取的字节数
System.out.print("您输入的金额是:")
for (int i = 0i <count2 - 1i++) {
System.out.print("" + (char) buffer[i])
}
System.out.println()
// 字符0 ~ 9对应ASCII值48 ~ 57
boolean flag = false
for (int i = 0i <count2 - 1i++) {
if ((char) buffer[i] >47 &&(char) buffer[i] <58) {
if (i == count2 - 2) {
flag = true
}
} else {
// 输入的字符不是数值
System.out.println("输入不合法,请重新输入")
withdrawal()
break
}
}
System.out.println()
if (flag) {
System.out.print("您已成功存入¥:")
String num = ""
for (int i = 0i <count2 - 1i++) {
System.out.print("" + (char) buffer[i])
num += (char) buffer[i]
}
yue += Double.valueOf(num)
System.out.print(",现在余额¥:" + yue)
}
}
}
Java编写的模拟ATM取款机程序/*** @version 1.0* @author Devil_Angel
* 该程序的功能为实现模拟银行ATM自动取款机提款,查询等功能.
*
*/import java.io.*/*该类为实现客户信息及部分功能*/
class Account {
private String code =null //信用卡号
private String name =null //客户姓名
private String password=null //客户密码
private double money=0.0 //卡里金额
/********************/
public Account(String code,String name,String password,double money)
{
this.code=code
this.name=name
this.password=password
this.money=money
}
protected String get_Code() {
return code
}
protected String get_Name() {
return name
}
protected String get_Password() {
return password
}
public double get_Money() {
return money
}
/*得到剩余的钱的数目*/
protected void set_Balance(double mon) {
money -= mon
}
}/**********实现具体取款机功能*********/
class ATM {
Account act
// private String name
// private String pwd
public ATM() {
act=new Account("000000","Devil","123456",50000)
}
/***********欢迎界面***********/
protected void Welcome()
{
String str="---------------------------------"
System.out.print(str+"\n"+
"欢迎使用Angel模拟自动取款机程序.\n"+str+"\n")
System.out.print(" 1.>取款."+"\n"+
" 2.>查询信息."+"\n"+
" 3.>密码设置."+"\n"+
" 4.>退出系统."+"\n")
}
/**********登陆系统**********/
protected void Load_Sys() throws Exception
{
String card,pwd
int counter=0
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
do {
System.out.println("请输入您的信用卡号:")
card=br.readLine()
System.out.println("请输入您的密码:")
pwd=br.readLine()
if(!isRight(card,pwd))
{
System.out.println("您的卡号或密码输入有误.")
counter++
}
else
SysOpter()
}while(counter<3)
Lock_Sys()
}
/**********系统操作**********/
protected void SysOpter() throws Exception
{
int num
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
System.out.println("请选择您要操作的项目(1-4):")
num=br.read() //num为ASICC码转换的整数
switch(num) {
case 49: BetBalance()break
case 50: Inqu_Info()break
case 51: Set_Password()break
case 52: Exit_Sys() break
}
System.exit(1)
}
/**********信息查询**********/
protected void Inqu_Info() {
System.out.print("---------------------\n"+
act.get_Code()+"\n"+
act.get_Name()+"\n"+
act.get_Money()+"\n"+
"-----------------------")
}
/**********取款**********/
public void BetBalance() throws Exception
{
String str=null,str1
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
do {
System.out.println("请输入您要取的数目:")
str=br.readLine()
str1=String.valueOf(act.get_Money())
if(str.compareTo(str1)>0) {
System.out.println("超过已有的钱数,请重新输入您要取的数目:")
}
else {
/*操作成功*/
// act.set_Balance(str)
System.out.println("取款成功,请收好您的钱.")
Welcome()
SysOpter()
}
}while(true)
}
/**********判断卡内是否有钱**********/
protected boolean isBalance() {
if(act.get_Money()<0) {
//System.out.println("对不起,您的钱数不够或卡已透支.")
return false
}
return true
}
/********卡号密码是否正确******/
protected boolean isRight(String card,String pwd)
{
if(act.get_Code().equals(card) &&act.get_Password().equals(pwd))
return true
else
return false
}
/**********密码修改**********/
protected void Set_Password() throws Exception
{
String pwd=null
int counter=0
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
do {
System.out.println("请输入旧密码:")
pwd=br.readLine()
if(act.get_Password().equals(pwd))
{
do {
System.out.println("请输入新密码:")
String pwd1=br.readLine()
System.out.println("请再次输入新密码:")
String pwd2=br.readLine()
if(!pwd1.equals(pwd2))
{
System.out.println("两次输入不一致,请再次输入.")
}
else
{
System.out.println("密码修改成功,请使用新密码.")
Welcome()
SysOpter()
}
}while(true)
}
}while(counter>3)
}
/**********锁定机器**********/
protected void Lock_Sys() {
System.out.println("对不起,您的操作有误,卡已被没收.")
System.exit(1)
}
/**********结束系统**********/
protected void Exit_Sys() {
System.out.println("感谢您使用本系统,欢迎下次在来,再见!")
System.exit(1)
}
}public class Text
{
public static void main(String[] args) throws Exception
{
ATM atm=new ATM()
atm.Welcome()
atm.Load_Sys()
// atm.Exit_Sys()
}
} //模拟ATM取款机工作流程 import java.util.Scannerpublic class Atm {
public Atm() {
}
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in)
int password = 0
int count = 0
int choice = 0
int type = 0
int input = 0
int acount = 1000
boolean exit = false
int flag = 0
do{
System.out.println("请输入您的密码:")
password = sc.nextInt()
count++
}while(password != 12345 &&count<3)
if(password == 12345){
//密码正确继续后面的操作。
do{
System.out.println("请选择您的操作,1.查询 2.取款")
choice = sc.nextInt()
switch(choice){
case 1:
do{
System.out.println("请选择帐户类型:1. 美元 2. 人民币")
type = sc.nextInt()
if(type == 1){
System.out.println("You have $"+acount+"!")
}else if(type == 2){
System.out.println("您有"+acount+"圆!")
}else{
System.out.println("类型选择错误,请重新选择!")
}
System.out.println("1.继续 2.离开")
flag = sc.nextInt()
if(flag == 1){
exit = false
}else{
exit = true
}
}while(type!=1 &&type!=2)
break
case 2: do{
System.out.println("请选择帐户类型:1. 美元 2. 人民币")
if(type == 1){
System.out.println("Please input number of your money!")
input = sc.nextInt()
if(input >acount){
System.out.println("You have not enough money!")
}else{
System.out.println("You take care of your money!")
}
System.out.println("1.continue 2.exit")
flag = sc.nextInt()
if(flag == 1){
exit = false
}else{
exit = true
}
}else if(type == 2){
System.out.println("请输入您要取的金额!")
input = sc.nextInt()
if(input >acount){
System.out.println("您的余额不足!")
}else{
System.out.println("请妥善保管您的钱!")
acount = acount - input
}
System.out.println("1.继续 2.离开")
flag = sc.nextInt()
if(flag == 1){
exit = false
}else{
exit = true
}
}else{
System.out.println("类型选择错误,请重新选择!")
}
}while(type!=1 &&type!=2)
break
default: System.out.println("类型选择错误,请重新选择!")
}
}while(choice!=1 &&choice!=2 || exit == false)
}else{
//密码错误,退出。
System.out.println("三次密码错误,吞卡!")
}
}
}
我现写的: import java.util.Scannerpublic 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 = 0i <string.length() - 1i++) {
char char1 = string.charAt(i)
for (int j = i + 1j <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)
}
}
}
}