创建银行类
package com.it.sysatm;
public class Accout {
private String cardid;
private String cardname;
private int passward;
private double money;
private double casmoney;
private Accout() {
}
public Accout(String cardid, String cardname, int passward, double casmoney) {
this.cardid = cardid;
this.cardname = cardname;
this.passward = passward;
this.casmoney = casmoney;
}
public String getCardid() {
return cardid;
}
public String getCardname() {
return cardname;
}
public int getPassward() {
return passward;
}
public double getMoney() {
return money;
}
public double getCasmoney() {
return casmoney;
}
public void setCardid(String cardid) {
this.cardid = cardid;
}
public void setCardname(String cardname) {
this.cardname = cardname;
}
public void setPassward(int passward) {
this.passward = passward;
}
public void setMoney(double money) {
this.money = money;
}
public void setCasmoney(double casmoney) {
this.casmoney = casmoney;
}
}
功能实现
package com.it.sysatm;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class ATMsystem {
public static void main(String[] args) {
ArrayList<Accout> accounts = new ArrayList<>();
//登陆,开户页面
showmain(accounts);
}
public static void showmain(ArrayList<Accout> accounts){
System.out.println("==================欢迎进入该系统===================");
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("1,登录");
System.out.println("2,开户");
System.out.print("输出您选择的功能:");
int command = sc.nextInt();
switch (command){
case 1:
login(accounts,sc);
break;
case 2:
register(accounts,sc);
break;
default:
System.out.println("您的输入存在问题,请重新输入");
}
}
}
/**
* 开户接受用户信息
* @param accounts
*/
private static void register(ArrayList<Accout> accounts,Scanner sc) {
//键盘录入用户名,密码
System.out.println("输入您的开户名:");
String name = sc.next();
int passward = 0;
while (true) {
System.out.println("请输入密码:");
passward = sc.nextInt();
System.out.println("请再次输入确认密码:");
int passward2 = sc.nextInt();
if (passward2 == passward){
System.out.println("开户成功!");
//生成卡号
break;
}else {
System.out.println("密码输入错误,请重新输入密码");
}
}
String id = cardid(accounts);
System.out.println("输出你的开户金额");
double casmoney = sc.nextDouble();
Accout card = new Accout(id,name,passward,casmoney);
accounts.add(card);
System.out.println("您的卡号为:"+id);
}
/**
* 生成卡号
* @param accounts
* @return
*/
public static String cardid(ArrayList<Accout> accounts){
while (true) {
Random x = new Random();
String carid = "";
for (int i = 0; i < 8; i++) {
carid += x.nextInt(10);
}
Accout acc = getAccountcardid(accounts,carid);
if (acc == null){
return carid;
}
}
}
/**
* 根据开好id查询用户对象
* @param accouts
* @param carid
* @return
*/
public static Accout getAccountcardid(ArrayList<Accout> accouts,String carid){
for (int i = 0; i < accouts.size(); i++) {
Accout card = accouts.get(i);//集合地址。get(i)获得
if (card.getCardid().equals(carid)){
return card;
}
}
return null;
}
/**
* 登陆页面判断卡号是否存在,且密码是否正确
* @param accouts
* @param sc
*/
public static void login(ArrayList<Accout> accouts,Scanner sc){
if (accouts.size() == 0){
System.out.println("该系统没有帐户,请先开户");
return;
}
while (true) {
System.out.println("请输入卡号:");
String cardid = sc.next();
Accout card = getAccountcardid(accouts,cardid);
if (card != null){
while (true) {
System.out.println("请输入密码:");
int passward = sc.nextInt();
if (card.getPassward() == passward){
System.out.println("登陆成功");
showUser(card,sc,accouts);
return;
}else {
System.out.println("密码错误请重新你输入");
}
}
}else {
System.out.println("卡号输入存在问题");
}
}
}
public static void showinformation(Accout accout){
Accout car = accout;
System.out.println("卡号为"+car.getCardid());
System.out.println("户主"+car.getCardname());
System.out.println("当前余额"+car.getMoney());
System.out.println("当此限额"+car.getCasmoney());
}
public static void addmoney(Accout accout,Scanner sc){
System.out.println("===================欢迎进入存储功能======================");
System.out.println("输出你要存入额度");
double money = sc.nextDouble();
accout.setMoney(accout.getMoney()+money);
System.out.println("存储成功");
showinformation(accout);
}
public static void drawmoney(Accout accout,Scanner sc){
System.out.println("========================取款操作======================");
while (true) {
System.out.println("输出你要取款的金额:");
double money = sc.nextDouble();
if (money <= accout.getCasmoney()){
if (money <= accout.getMoney()){
accout.setMoney(accout.getMoney() - money);
System.out.println("当前金额"+accout.getMoney());
return;
}else {
System.out.println("你的余额不足");
}
}else {
System.out.println("取款金额大于当前限额");
}
}
}
/**
* 转账 并且确认转账人物姓氏
* @param accouts
* @param accout
* @param sc
*/
public static void transfer(ArrayList<Accout> accouts,Accout accout,Scanner sc){
System.out.println("=====================转账操作========================");
if (accouts.size() >= 2){
System.out.println("只存在一个账户请在开户");
return;
}
if (accout.getMoney() == 0 ){
System.out.println("你没钱");
return;
}
while (true) {
System.out.println("您要转账的卡号");
String id = sc.next();
Accout card = getAccountcardid(accouts,id);
if (card != null){
if (card.getCardid().equals(accout.getCardid())){
System.out.println("你不可以为自己转账");
}else {
String name = "*" + card.getCardname().substring(1);
System.out.println("请你确认"+name+"的姓氏");
String x = sc.next();
if (card.getCardid().startsWith(x)){
System.out.println("输出你要转账额度");
double money = sc.nextDouble();
if (money <= card.getMoney()){
accout.setMoney(accout.getMoney() - money);
accout.setMoney(accout.getMoney() + money);
System.out.println("转账成功");
showinformation(card);
return;
}else {
System.out.println("你钱不够");
}
}else {
System.out.println("flase");
}
System.out.println();
}
}else {
System.out.println("不存在该卡号");
}
}
}
/**
* 修改密码
*/
public static void uqdatepassward(Accout accout,Scanner sc){
System.out.println("===================修改密码===================");
while (true) {
System.out.println("请输入原密码");
int pasward = sc.nextInt();
if (pasward == accout.getPassward()){
System.out.println("请输入密码:");
int passward1 = sc.nextInt();
System.out.println("请再次输入确认密码:");
int passward2 = sc.nextInt();
if (passward2 == passward1){
accout.setPassward(passward1);
System.out.println("修改成功!");
//生成卡号
break;
}else {
System.out.println("密码输入错误,请重新输入密码");
}
return;
}else {
System.out.println("密码错误,请重新输入");
}
}
}
/**
* 用户登录登录功能页面
*/
public static void showUser(Accout accout , Scanner sc , ArrayList<Accout>accouts){
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.注销账户");
System.out.println("输出你要选择的功能");
int command = sc.nextInt();
switch (command) {
case 1:
showinformation(accout);
break;
case 2:
addmoney(accout,sc);
break;
case 3:
drawmoney(accout,sc);
break;
case 4:
transfer(accouts,accout,sc);
break;
case 5:
uqdatepassward(accout,sc);
break;
case 6:
System.out.println("欢迎下次光临");
return;
case 7:
accouts.remove(accout);
System.out.println("销户成功");
break;
default:
System.out.println("您的输入有问题,请重新输入");
}
}
}
}