ATM机登陆管理系统代码分享

这个博客介绍了一个基于Java实现的ATM机用户管理系统,包括账户注册、登录、修改密码、存款、取款、转账和查询余额等功能。系统由Account、ATM和Bank三个类组成,实现了银行账户的基本操作。在Bank类中,使用动态数组管理账户,并提供了账户查找、密码修改和转账等方法。在ATM类中,用户可以通过菜单选择不同操作,实现了用户交互。测试类用于启动系统并进行测试。
摘要由CSDN通过智能技术生成

       根据java用户登录管理系统的框架,自己做的一个小小的衍生版,可以实现ATM机注册用户,登录,修改密码,存款,取款,转账,查询余额等功能。希望能对大家学习Java有所帮助。

目录

账户类Account

ATM类

 银行类Bank

测试类Test

运行结果


账户类Account

package atm;

public class Account {//账户类
	private int cardnum;//卡号
	private int password;//密码
	private double balance=0;//金额
	private int num;
	
	public Account() {
		
	}
	public Account(int cardnum, int password,double balance) {
		this.cardnum = cardnum;
		this.password = password;
		this.balance = balance;
	}
	public void addnum() {
		this.num++;
	}
	
//	public Account(double balance) {
//		this.balance = balance;
//	}
	//存钱
	public boolean SaveMoney(double money2) {
		this.balance+=money2;
		return true;
	}
	
	//取钱
	public boolean TakeMoney(double money) {
		if(this.balance>=money) {
			this.balance-=money;
			return true;
		}else {
			System.out.println("余额不足");
		}
		return false;
	}
	public void show() {
		System.out.println("账户余额"+getBalance());
	}
	
	//===========================================
	public int getCardnum() {
		return cardnum;
	}
	
	public int getPassword() {
		return password;
	}

	public double getBalance() {
		return balance;
	}

	public void setBalance(double balance) {
		this.balance = balance;
	}

	
	
}

ATM类

package atm;

import java.util.Scanner;

public class ATM {
	Bank bank=new Bank();
	Account account=new Account();
	private int cardnum;
	private int password;
	private double balance=0;
	
	public void start() {
		Scanner sc=new Scanner(System.in);
		while(true) {
			menu1();
			int r=sc.nextInt();
			if(r==1) {
				System.out.println("请输入账号");
				cardnum=sc.nextInt();
				System.out.println("请输入密码");
				password=sc.nextInt();
				if(Enroll(cardnum, password, balance)) {
					System.out.println("注册成功!");
				}
			}else if(r==2){
				System.out.println("请输入账号");
				cardnum=sc.nextInt();
				System.out.println("请输入密码");
				password=sc.nextInt();
				Login(cardnum, password,balance);
			}else {
				break;
			}
		}
		sc.close();
	}
	
	//注册
	public boolean Enroll(int cardnum,int password,double balance) {
		Account card=new Account(cardnum, password,balance);
		if(bank.isExist(cardnum, password)) {
			System.out.println("账号已经存在!");
		}else {
			bank.add(cardnum, password, balance);
			return true;
		}
		return false;
	}
	
	//登录
	public void Login(int cardnum,int password,double balance) {
			if(bank.Login(cardnum, password)) {
				System.out.println("登陆成功");
				Scanner sc=new Scanner(System.in);
				while(true) {
					menu2();
					int tmp=sc.nextInt();
					switch (tmp) {
					case 1:
						System.out.println("请输入新的密码");
						int newpoassword=sc.nextInt();
						
						if(bank.xiuGai(cardnum, newpoassword,balance)) {
							System.out.println("密码修改成功!");	
						}else {
							System.out.println("修改失败");
						}
						start();
						break;
					case 2:
						System.out.println("请输入存储的金额");
						Double money=sc.nextDouble();
						if(account.SaveMoney(money)){
							System.out.println("存款成功!");
							account.show();
						}	
						break;
					case 3:
						System.out.println("请输入取款金额");
						double money1=sc.nextDouble();
						if(account.TakeMoney(money1)) {
							System.out.println("取款成功!");
							account.show();
						}
						break;
					case 4:
						account.show();
						break;
					case 5:
						System.out.println("输入目标账户");
						int newcard=sc.nextInt();
						System.out.println("输入金额");
						double money2=sc.nextDouble();
						if(bank.Transfer(newcard, money2)) {
							if(account.TakeMoney(money2)) {
								System.out.println("转账成功");
							}else {
								System.out.println("转账失败");
							}
							account.show();
						}else {
							System.out.println("账户不存在");
						}
						break;
					case 0:
						return;
					default:
						System.out.println("输入的数字不合法");
						break;
					}
				}			
			}else {
				System.out.println("账号不存在!请确认账号和密码是否正确");
			}
			
	}
	//页面
	public static void menu1() {
		System.out.println("============欢迎使用本系统============");
		System.out.println("1---注册用户            2---登录系统");
		System.out.println("0---退出系统");
		System.out.println("=====================================");
		System.out.println("请选择...");
	}
	public static void menu2() {
		System.out.println("============欢迎使用本系统============");
		System.out.println("1---修改密码            2---存款");
		System.out.println("3---取款                4---查余额");
		System.out.println("5---转账                0---退卡");
		System.out.println("=====================================");
		System.out.println("请选择...");
	}
}	

 银行类Bank

package atm;

public class Bank {
	private Account[] cards;
	private int count=0;
//==================================================================
	//动态数组
	public Bank() {
		cards=new Account[3];
	}
	public Bank(int length) {
		cards=new Account[length];
	}
	
	public void add(int cardnum, int password, double balance) {
		int res=exist(cardnum,password,balance);
		if(res>=0) {
			cards[res].addnum();
		}else {
			cards[count++]=new Account(cardnum, password, balance);
			if(count>=cards.length) {
				diz();
			}
		}
	}
	
	private int exist(int cardnum, int password, double balance) {
		int res=-1;
		for(int i=0;i<count;i++) {
			Account cn=cards[i];
			if(cn.getCardnum()==cardnum) {
				res=i;
				break;
			}
		}
		return res;
	}
	
	private void diz() {
		Account[] carr=new Account[cards.length*3/2];
		for(int i=0;i<cards.length;i++) {
			carr[i]=cards[i];
		}
		this.cards=carr;
	}
//=====================================================================	
	
	
	
	
	//修改密码
	public boolean xiuGai(int cardnum,int newpassword,double balance) {
		Account account=new Account(cardnum, newpassword,balance);
		for(int i=0;i<count;i++) {
			if(cards[i].getCardnum()==cardnum) {
				cards[i]=account;
				return true;
			}
		}
		return false;
	}
	
	 public boolean isExist(int cardnum,int password) {
	        for(int i=0;i<count;i++){
	            if ((cards[i].getCardnum()==cardnum)&&(cards[i].getPassword()==password)){        	
	                return true;
	            }
	        }
	        return false;
	    }
	
	public boolean Login(int cardnum,int password) {
		Account card=null;
		for(int i=0;i<count;i++) {
			if(cards[i].getCardnum()==cardnum&&cards[i].getPassword()==password) {
				card=cards[i];
				return true;
			}
		}
		return false;
	}
	
	
	
	//转账
		public boolean Transfer(int newcard,double money2) {
			for(int i=0;i<count;i++) {
				if(cards[i].getCardnum()==newcard) {
					cards[i].SaveMoney(money2);
				}
				return true;
			}
			return false;
		}
}

测试类Test

package atm;

public class Test {
	public static void main(String[] args) {
		ATM ss=new ATM();
		ss.start();
	}
}

运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值