java 做atm机 java编写atm系统
转载
package ATM;
/**
* 入口类
*/
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Random;
public class test {
public static void main(String[] args) {
ArrayList<atm> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("========欢迎进入ATM系统========");
System.out.println("1.登录账号");
System.out.println("2.注册开户");
System.out.println("请输入想要执行操作对应的编号:");
int x = sc.nextInt();
switch (x){
case 1:
//用户登录
login(list,sc);
break;
case 2:
//用户注册
zhuce(list);
break;
default:
System.out.println("您输入的命令不存在~~");
}
}
}
/**
* 开户功能的实现
* @param l
*/
public static void zhuce(ArrayList<atm> l) {
atm a = new atm();
System.out.println("========欢迎进入注册界面========");
Random r = new Random(9);
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的姓名:");
String c = sc.next();
a.setName(c);
while (true) {
System.out.println("请输入您的密码:");
String m1 = sc.next();
System.out.println("请确认您的密码:");
String m2 = sc.next();
//密码判断
if(m1.equals(m2)){
System.out.println("注册成功!");
a.setPassworld(m2);
break;
}else {
System.out.println("密码不一致,请重新输入!");
}
}
while (true) {
System.out.println("请您输入您的存取限额:");
int ed = sc.nextInt();
if(ed <= 5000 && ed >= 1000) {
a.setEd(ed);
break;
}else {
System.out.println("额度限制为1000~5000");
}
}
//生成卡号,独立出一个方法
String cd = getCardId(l);
a.setNumber(cd);
//将对象添加到集合中去
l.add(a);
System.out.println("恭喜您" + c + "先生/女士" + "开户成功" + "您的卡号是:" + cd);
}
/**
* 为账户创建一个八位数的号码,与其他账户不同
* @return
*/
public static String getCardId(ArrayList<atm> list){
Random r = new Random();
while (true) {
//先生成
String cd = "";
for (int i = 0; i < 8; i++) {
cd += r.nextInt(10);
}
//再判断,单独创建方法,为了方便以后的使用
atm f = getAtmByCardId(list, cd);
if(f == null){
return cd;
}
}
}
/**
* 传进来一个卡号,查出来一个账户
* @param list
* @param CardId
* @return
*/
public static atm getAtmByCardId(ArrayList<atm> list,String CardId){
for (int i = 0; i < list.size(); i++) {
atm l4 =list.get(i);
if(CardId.equals(l4.getNumber())){
return l4;
}
}
return null;
}
/**
* //登录功能的实现
* @param list//全部对象的集合
* @param sc//扫描器
*/
private static void login(ArrayList<atm> list,Scanner sc) {
System.out.println("========欢迎进入登录界面========");
//判断是否存在账户
if(list.size() == 0){
System.out.println("当前系统无账户,请您先注册一个账户~~");
return;
}
while (true) {
System.out.println("请输入您的账号:");
String st = sc.next();
atm l = getAtmByCardId(list,st);
if(l != null){
while (true) {
//账号存在
System.out.println("请您输入密码:");
String mima = sc.next();
//判断密码
if(l.getPassworld().equals(mima)){
System.out.println("恭喜您" + l.getName() + "密码正确,登陆成功!");
//展示操作页
showUserComand(list,sc,l);
return;//干掉当前方法,回到主界面
}else {
System.out.println("对不起,您输入的密码有误~~");
}
}
}else {
System.out.println("系统中未查询到该账户~~");
}
}
}
/**
* 展示登录后的操作页
*/
private static void showUserComand(ArrayList<atm> list,Scanner sc,atm st) {
while (true) {
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("6.退出系统");
System.out.println("7.注销账户");
int i = sc.nextInt();
switch (i){
case 1://查询账户
show(st);
break;
case 2://存款
add(st,sc);
break;
case 3://取款
getOut(st,sc);
break;
case 4://转账
give(list,st,sc);
break;
case 5://修改密码
change(st,sc);
return;//密码更改成功,需要重新登录
case 6://退出系统
System.out.println("您已退出系统~~");
return;//干掉当前方法 -------- 再干掉上面的登录方法即可退出到主界面
case 7://注销账户
System.out.println("您确认要注销当前账户吗?");
System.out.println("1.确认");
System.out.println("2.取消");
int x = sc.nextInt();
switch (x) {
case 1:
System.out.println("您真的确认要注销账户吗?");
System.out.println("1.确认");
System.out.println("2.取消");
int y = sc.nextInt();
switch (y) {
case 1:
System.out.println("请输入密码:");
String sr = sc.next();
if(sr.equals(st.getPassworld())){
list.remove(st);
System.out.println("销户成功,有缘再见~~");
return;
}
case 2:
return;
}
case 2:
return;
}
default:
System.out.println("您输入的操作指令不存在~~");
}
}
}
/**
* 展示当前账户信息
* @param st
*/
private static void show(atm st) {
System.out.println("您的账号是:" + st.getNumber());
System.out.println("您的姓名是:" + st.getName());
System.out.println("您的密码是:" + st.getPassworld());
if(st.getMoney() == 0){
System.out.println("您已经没钱了,快去存钱吧!");
}else {
System.out.println("您的余额是:" + st.getMoney());
}
System.out.println("您的存取额度是:" + st.getEd());
}
/**
* 此方法用于存款
* @param st
*/
private static void add(atm st,Scanner sc) {
while (true) {
System.out.println("请输入您的存款数额");
int x = sc.nextInt();
if(x > st.getEd()){
System.out.println("超出了您的存取限额,请您分批存款~~");
}else {
System.out.println("存款成功~~");
int y = st.getMoney();
st.setMoney(x + y);
break;
}
}
}
/**
* 此方法用于取款
* @param st
* @param sc
*/
private static void getOut(atm st, Scanner sc) {
while (true) {
System.out.println("请输入您的存款金额:");
int x = sc.nextInt();
if(x > st.getMoney()){
System.out.println("您的取款数额超过了余额,请您更改数额~~");
}else if(x > st.getEd()){
System.out.println("超出了您的存取限额,请分批取款~~");
}else {
System.out.println("取款成功~~");
int z = st.getMoney();
st.setMoney(z - x);
break;
}
}
}
/**
* 此方法用于更改密码
* @param st
* @param sc
*/
private static void change(atm st, Scanner sc) {
while (true) {
System.out.println("请输入您的账户密码:");
String sr = sc.next();
if(sr.equals(st.getPassworld())){
System.out.println("新旧密码不能一致,请重新输入");
}else {
System.out.println("请再次输入新密码:");
String sr2 = sc.next();
if(sr.equals(sr2)){
System.out.println("密码更改成功,请重新登录~~");
return;//密码已更改,需要退出系统
}else {
System.out.println("两次密码不一致,请重新输入进行操作");
}
}
}
}
/**
* 此方法用于转账
* @param list
* @param st
* @param sc
*/
private static void give(ArrayList<atm> list, atm st, Scanner sc) {
if(list.size() < 2){
System.out.println("当前系统账户少于2,不支持转账");
return;
}else {
System.out.println("请输入你要转账的账户:");
String sr = sc.next();
for (int i = 0; i < list.size(); i++) {
if(sr.equals(list.get(i).getNumber())){
System.out.println("请输入您的转账金额:");
int z = sc.nextInt();
if(z > st.getMoney()){
System.out.println("您的转账数额超过了余额,请您更改数额~~");
}else if(z > st.getEd()){
System.out.println("超出了您的存取限额,请分批转账~~");
}else {
System.out.println("您已经成功向" + list.get(i).getName() + "转账");
int x = st.getMoney();
st.setMoney(x - z);
int t = list.get(i).getMoney();
list.get(i).setMoney(t + z);
break;
}
}else {
System.out.println("未找到账户信息,请重新输入~~");
}
}
}
}
}
package ATM;
/**
* 账户类
*/
public class atm {
private String number;
private String name;
private String passworld;
private int money;
private int ed;
public atm() {
}
public atm(String number, String name, String passworld, int money, int ed) {
this.number = number;
this.name = name;
this.passworld = passworld;
this.money = money;
this.ed = ed;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassworld() {
return passworld;
}
public void setPassworld(String passworld) {
this.passworld = passworld;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public int getEd() {
return ed;
}
public void setEd(int ed) {
this.ed = ed;
}
}
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。