c语言sscanf函数的用法是什么
203
2023-01-25
Java模拟实现ATM机
java模拟ATM机,供大家参考,具体内容如下
实现登录,查询,转账,取款,修改密码,退出功能。
源码
package bank;
import java.io.*;
import java.util.Scanner;
//ATM类
public class Atm {
private String[] user;//用户全部信息
private double money;//修改钱数
private double userMoney;//用户的钱
private String newPassword;
private String userInFo;
private int index;
private int a =0;
private int count = 10;
public void show(){//显示界面
index = logIn();
if(index != -1){
working();
}
}
private String[] newStringUser(String[] str){
count=count+10;
String[] newUser = new String[count];
newUser[i] = str[i];
return newUser;
}
private void getUser(){//从文件获取全部用户
String str;
String[] strings = new String[count];
File file = new File("src\\bank\\user");
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try{
fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);
while((str = bufferedReader.readLine())!=null){
if(a<=count)
strings[a++]http:// = str;
else
strings = newStringUser(strings);
}
user = new String[a];
user[i] = strings[i];
strings = null;
}catch(Exception e){
e.printStackTrace();
if((fileReader!=null)&&(bufferedReader!=null)){
try {
bufferedReader.close();
fileReader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
private int logIn(){//用户登录
getUser();
String name,password,user;
String[] a;
int i = 0;
int number = -1;
Scanner input = new Scanner(System.in);
a:while(i<3){
System.out.println("请输入用户名:");
name = input.nextLine();
System.out.println("请输入用户密码:");
password = input.nextLine();
user = name + "*" + password;
for(int j=0;j a = this.user[j].split("\\*"); userInFo = a[0]+"*"+a[1]; if(userInFo.equals(user)){ number = j; break a; } } i++; System.out.println("账户或密码错误请重新输入。。。"); } if(number!=-1){ System.out.println("登录成功"); try{ Thread.sleep(1000); }catch(Exception e){ e.printStackTrace(); } } else System.out.println("您已输入错误三次,卡已被吞!请到银行柜台询问!"); return number; } private int anthorLogin(){//查询转账用户是否存在 Scanner input = new Scanner(System.in); String antherUserName; String[] a; int x=-1; System.out.println("请输入要转账的用户名:"); antherUserName = input.nextLine(); for(int i=0;i a = this.user[i].split("\\*"); if(a[0].equals(antherUserName)){ x=i; break; } } return x; } private void show1(){ System.out.println("**********************"); System.out.println("\t欢迎使用ATM"); System.out.println("1,账户余额查询\n2,存钱\n3,取钱\n4,转账\n5,修改用户密码\n6,退出系统\n"); System.out.println("**********************"); } private void changeUser(int x){//改变用户数组里的数据 String[] str = user[index].split("\\*"); if(x==1) user[index] = str[0]+"*"+newPassword+"*"+str[2]; else user[index] = str[0]+"*"+str[1]+"*"+userMoney; } private void working(){//atm办理的业务 String number; setMoney(); do{ show1(); System.out.println("请输入要办理的业务序号:"); Scanner input = new Scanner(System.in); number = input.nextLine(); switch(number){ case "1": look(); break; case "2": saveMoney(); break; case "3": getMoney(); break; case "4": giveMoney(); break; case "5": changePassword(); break; case "6": System.out.println("欢迎下次光临!"); write(); break; default: System.out.println("您输入有误,请重新输入。。。。"); } }while(!number.equals("6")); } private void setMoney(){ String u = user[index]; userMoney = Double.parseDouble(u.split("\\*")[2]); } private void look(){//办理查看余额业务 System.out.println("用户余额为:"+userMoney); try{ Thread.sleep(2000); }catch(Exception e){ e.printStackTrace(); } } private void saveMoney(){//办理存钱业务 money = howMuch("存钱"); userMoney = userMoney+money; changeUser(2); look(); if(isContinue()) saveMoney(); } private void getMoney(){//办理取钱业务 money = howMuch("取钱"); if(money <= userMoney){ userMoney = userMoney-money; changeUser(2); look(); if(isContinue()) getMoney(); } else System.out.println("您的余额不足!"); } private void giveMoney(){//办理转账业务 int anthorIndex = anthorLogin(); if(anthorIndex!=-1){ money = howMuch("转账"); if(money <= userMoney){ userMoney = userMoney - money; changeUser(2); String anthorUserhttp:// = user[anthorIndex]; String[] str =anthorUser.split("\\*"); double money1 = Double.parseDouble(str[2]); money = money + money1; user[anthorIndex] = str[0]+"*"+str[1]+"*"+money; System.out.println("转账成功!"); look(); } else System.out.println("您的余额不足!"); } else System.out.println("该用户不存在。。。。"); } private double howMuch(String str){ System.out.println("欢迎办理"+str+"业务。。。。。。"); System.out.println("请输入金额(只能是整数且是100的倍数,最多为10000):"); Scanner input = new Scanner(System.in); double money = input.nextDouble(); if(money%10==0) return money; else{ System.out.println("您输入有误!"); return 0.0; } } private void changePassword(){//办理修改密码业务 System.out.println("请输入新密码:"); Scanner input = new Scanner(System.in); newPassword = input.nextLine(); changeUser(1); System.out.println("密码修改成功!"); } private boolean isContinue(){ System.out.println("是否继续办理该项业务?(请输入Y(y)/N(n))"); Scanner input = new Scanner(System.in); String str = input.nextLine(); if(str.equalsIgnoreCase("y")) return true; else return false; http:// } private void write(){ String str = ""; String s; for(int i=0;i s = user[i]; if(i!=user.length-1) str = str + s + "\n"; else str = str + s; } File file = new File("src\\bank\\user"); FileWriter out = null; try { out = new FileWriter(file); out.write(str); out.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ if(out != null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } } package bank; //银行类 public class Bank { private Atm atm = new Atm(); public void welcome(User user){ System.out.println("欢迎使用atm"); user.useAtm(atm); } } package bank; //用户类 public class User { public void useAtm(Atm atm){ atm.show(); } } //创建user文件当数据库 张三*456*100.0 李四*123*300.0 王五*789*200.0 package bank; //测试类 public class Text { public static void main(String[] args){ Bank bank =new Bank(); User user = new User(); bank.welcome(user); } }
a = this.user[j].split("\\*");
userInFo = a[0]+"*"+a[1];
if(userInFo.equals(user)){
number = j;
break a;
}
}
i++;
System.out.println("账户或密码错误请重新输入。。。");
}
if(number!=-1){
System.out.println("登录成功");
try{
Thread.sleep(1000);
}catch(Exception e){
e.printStackTrace();
}
}
else
System.out.println("您已输入错误三次,卡已被吞!请到银行柜台询问!");
return number;
}
private int anthorLogin(){//查询转账用户是否存在
Scanner input = new Scanner(System.in);
String antherUserName;
String[] a;
int x=-1;
System.out.println("请输入要转账的用户名:");
antherUserName = input.nextLine();
for(int i=0;i a = this.user[i].split("\\*"); if(a[0].equals(antherUserName)){ x=i; break; } } return x; } private void show1(){ System.out.println("**********************"); System.out.println("\t欢迎使用ATM"); System.out.println("1,账户余额查询\n2,存钱\n3,取钱\n4,转账\n5,修改用户密码\n6,退出系统\n"); System.out.println("**********************"); } private void changeUser(int x){//改变用户数组里的数据 String[] str = user[index].split("\\*"); if(x==1) user[index] = str[0]+"*"+newPassword+"*"+str[2]; else user[index] = str[0]+"*"+str[1]+"*"+userMoney; } private void working(){//atm办理的业务 String number; setMoney(); do{ show1(); System.out.println("请输入要办理的业务序号:"); Scanner input = new Scanner(System.in); number = input.nextLine(); switch(number){ case "1": look(); break; case "2": saveMoney(); break; case "3": getMoney(); break; case "4": giveMoney(); break; case "5": changePassword(); break; case "6": System.out.println("欢迎下次光临!"); write(); break; default: System.out.println("您输入有误,请重新输入。。。。"); } }while(!number.equals("6")); } private void setMoney(){ String u = user[index]; userMoney = Double.parseDouble(u.split("\\*")[2]); } private void look(){//办理查看余额业务 System.out.println("用户余额为:"+userMoney); try{ Thread.sleep(2000); }catch(Exception e){ e.printStackTrace(); } } private void saveMoney(){//办理存钱业务 money = howMuch("存钱"); userMoney = userMoney+money; changeUser(2); look(); if(isContinue()) saveMoney(); } private void getMoney(){//办理取钱业务 money = howMuch("取钱"); if(money <= userMoney){ userMoney = userMoney-money; changeUser(2); look(); if(isContinue()) getMoney(); } else System.out.println("您的余额不足!"); } private void giveMoney(){//办理转账业务 int anthorIndex = anthorLogin(); if(anthorIndex!=-1){ money = howMuch("转账"); if(money <= userMoney){ userMoney = userMoney - money; changeUser(2); String anthorUserhttp:// = user[anthorIndex]; String[] str =anthorUser.split("\\*"); double money1 = Double.parseDouble(str[2]); money = money + money1; user[anthorIndex] = str[0]+"*"+str[1]+"*"+money; System.out.println("转账成功!"); look(); } else System.out.println("您的余额不足!"); } else System.out.println("该用户不存在。。。。"); } private double howMuch(String str){ System.out.println("欢迎办理"+str+"业务。。。。。。"); System.out.println("请输入金额(只能是整数且是100的倍数,最多为10000):"); Scanner input = new Scanner(System.in); double money = input.nextDouble(); if(money%10==0) return money; else{ System.out.println("您输入有误!"); return 0.0; } } private void changePassword(){//办理修改密码业务 System.out.println("请输入新密码:"); Scanner input = new Scanner(System.in); newPassword = input.nextLine(); changeUser(1); System.out.println("密码修改成功!"); } private boolean isContinue(){ System.out.println("是否继续办理该项业务?(请输入Y(y)/N(n))"); Scanner input = new Scanner(System.in); String str = input.nextLine(); if(str.equalsIgnoreCase("y")) return true; else return false; http:// } private void write(){ String str = ""; String s; for(int i=0;i s = user[i]; if(i!=user.length-1) str = str + s + "\n"; else str = str + s; } File file = new File("src\\bank\\user"); FileWriter out = null; try { out = new FileWriter(file); out.write(str); out.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ if(out != null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } } package bank; //银行类 public class Bank { private Atm atm = new Atm(); public void welcome(User user){ System.out.println("欢迎使用atm"); user.useAtm(atm); } } package bank; //用户类 public class User { public void useAtm(Atm atm){ atm.show(); } } //创建user文件当数据库 张三*456*100.0 李四*123*300.0 王五*789*200.0 package bank; //测试类 public class Text { public static void main(String[] args){ Bank bank =new Bank(); User user = new User(); bank.welcome(user); } }
a = this.user[i].split("\\*");
if(a[0].equals(antherUserName)){
x=i;
break;
}
}
return x;
}
private void show1(){
System.out.println("**********************");
System.out.println("\t欢迎使用ATM");
System.out.println("1,账户余额查询\n2,存钱\n3,取钱\n4,转账\n5,修改用户密码\n6,退出系统\n");
System.out.println("**********************");
}
private void changeUser(int x){//改变用户数组里的数据
String[] str = user[index].split("\\*");
if(x==1)
user[index] = str[0]+"*"+newPassword+"*"+str[2];
else
user[index] = str[0]+"*"+str[1]+"*"+userMoney;
}
private void working(){//atm办理的业务
String number;
setMoney();
do{
show1();
System.out.println("请输入要办理的业务序号:");
Scanner input = new Scanner(System.in);
number = input.nextLine();
switch(number){
case "1":
look();
break;
case "2":
saveMoney();
break;
case "3":
getMoney();
break;
case "4":
giveMoney();
break;
case "5":
changePassword();
break;
case "6":
System.out.println("欢迎下次光临!");
write();
break;
default:
System.out.println("您输入有误,请重新输入。。。。");
}
}while(!number.equals("6"));
}
private void setMoney(){
String u = user[index];
userMoney = Double.parseDouble(u.split("\\*")[2]);
}
private void look(){//办理查看余额业务
System.out.println("用户余额为:"+userMoney);
try{
Thread.sleep(2000);
}catch(Exception e){
e.printStackTrace();
}
}
private void saveMoney(){//办理存钱业务
money = howMuch("存钱");
userMoney = userMoney+money;
changeUser(2);
look();
if(isContinue())
saveMoney();
}
private void getMoney(){//办理取钱业务
money = howMuch("取钱");
if(money <= userMoney){
userMoney = userMoney-money;
changeUser(2);
look();
if(isContinue())
getMoney();
}
else
System.out.println("您的余额不足!");
}
private void giveMoney(){//办理转账业务
int anthorIndex = anthorLogin();
if(anthorIndex!=-1){
money = howMuch("转账");
if(money <= userMoney){
userMoney = userMoney - money;
changeUser(2);
String anthorUserhttp:// = user[anthorIndex];
String[] str =anthorUser.split("\\*");
double money1 = Double.parseDouble(str[2]);
money = money + money1;
user[anthorIndex] = str[0]+"*"+str[1]+"*"+money;
System.out.println("转账成功!");
look();
}
else
System.out.println("您的余额不足!");
}
else
System.out.println("该用户不存在。。。。");
}
private double howMuch(String str){
System.out.println("欢迎办理"+str+"业务。。。。。。");
System.out.println("请输入金额(只能是整数且是100的倍数,最多为10000):");
Scanner input = new Scanner(System.in);
double money = input.nextDouble();
if(money%10==0)
return money;
else{
System.out.println("您输入有误!");
return 0.0;
}
}
private void changePassword(){//办理修改密码业务
System.out.println("请输入新密码:");
Scanner input = new Scanner(System.in);
newPassword = input.nextLine();
changeUser(1);
System.out.println("密码修改成功!");
}
private boolean isContinue(){
System.out.println("是否继续办理该项业务?(请输入Y(y)/N(n))");
Scanner input = new Scanner(System.in);
String str = input.nextLine();
if(str.equalsIgnoreCase("y"))
return true;
else
return false;
http:// }
private void write(){
String str = "";
String s;
for(int i=0;i s = user[i]; if(i!=user.length-1) str = str + s + "\n"; else str = str + s; } File file = new File("src\\bank\\user"); FileWriter out = null; try { out = new FileWriter(file); out.write(str); out.flush(); } catch (IOException e) { e.printStackTrace(); }finally{ if(out != null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } } package bank; //银行类 public class Bank { private Atm atm = new Atm(); public void welcome(User user){ System.out.println("欢迎使用atm"); user.useAtm(atm); } } package bank; //用户类 public class User { public void useAtm(Atm atm){ atm.show(); } } //创建user文件当数据库 张三*456*100.0 李四*123*300.0 王五*789*200.0 package bank; //测试类 public class Text { public static void main(String[] args){ Bank bank =new Bank(); User user = new User(); bank.welcome(user); } }
s = user[i];
if(i!=user.length-1)
str = str + s + "\n";
else
str = str + s;
}
File file = new File("src\\bank\\user");
FileWriter out = null;
try {
out = new FileWriter(file);
out.write(str);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package bank;
//银行类
public class Bank {
private Atm atm = new Atm();
public void welcome(User user){
System.out.println("欢迎使用atm");
user.useAtm(atm);
}
}
package bank;
//用户类
public class User {
public void useAtm(Atm atm){
atm.show();
}
}
//创建user文件当数据库
张三*456*100.0
李四*123*300.0
王五*789*200.0
package bank;
//测试类
public class Text {
public static void main(String[] args){
Bank bank =new Bank();
User user = new User();
bank.welcome(user);
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~