热门 API 大全分享(含天气、物流等)
319
2022-11-05
用Java实现简单ATM机功能
本文实例为大家分享了java实现简单ATM机功能的具体代码,供大家参考,具体内容如下
项目介绍
基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。
项目功能
1、注册功能:
根据用户输入的账号密码申请一张银行卡,存储在银行卡类型的数组中(一张银行卡对应一个有效用户)。
2、登录功能:
登陆失败:重新登陆 或 注册登陆成功:对登陆的这张银行卡可以进行一下操作:存款、取款、查余额、转账、退卡功能。
项目知识点
3、java基本语法的使用4、一维数组5、函数调用,封装6、Java类和对象
项目实现思路
7、设计并实现系统的相关打印界面:注册、登陆、登陆后操作8、登录系统必须输入正确的卡号和密码,输入错误时提示用户重新登陆。9、实现取款、存款、查余额等功能。
难点
对面向对象编程的理解,以及静态变量和实例变量的理解。二者区别:实例变量:跟对象有关,一个对象一份实例变量静态变量:跟对象无关,一个类一份静态变量
源代码
1.ATM类
public class ATM {
private static boolean flag = true;
private int id;
private int passwd;
private BankCard bankCard;
private static Bank bank;
/* 不写跳1空异常*/
public ATM(){
bank = new Bank();
}
Scanner scanner = new Scanner(System.in);
public void start(){
int chioce;
while (flag == true){
System.out.println("请选择: 1.注册 2.登录 3.退出");
chioce = scanner.nextInt();
switch(chioce){
case 1:
System.out.println("请输入账号和密码:");
id = scanner.nextInt();
passwd = scanner.nextInt();
register(id,passwd);
break;
case 2:
System.out.println("请输入账号和密码:");
id = scanner.nextInt();
passwd = scanner.nextInt();
login(id,passwd);
break;
case 3:
flag = false;
break;
}
}
}
//注册
private void register(int id, int passwd) {
//检查此卡号是否存在
if(bank.contains(id)){
System.out.println("此卡号已存在,注册失败!");
}
else{
bankCard = new BankCard(id,passwd);
bank.add(bankCard);
System.out.println("注册成功!JuvquZFm");
}
}
//登录
private void login(int id, int passwd) {
//检查此卡号是否存在
if(bank.login(id,passwd)){
System.out.println("登陆成功!");
//登陆成功 返回卡的信息
bankCard = bank.getcard(id,passwd);
//调用 ATM功能函数
function(bankCard);
}else{
System.out.println("登陆失败! 请重新登录");
}
}
//ATM功能函数
private void function(BankCard bankCard) {
double money;
int count = 0;
int chioce;
while (flag == true){
System.out.println("请选择: 1.存款 2.取款 3.查余额 4.转账 5.退卡");
chioce = scanner.nextInt();
switch(chioce){
case 1:
System.out.println("请输入存款金额:");
money = scanner.nextDouble();
bank.setMoney(bankCard,money);
System.out.println("存款成功!");
break;
case 2:
System.out.println("请输入取款金额:");
money = scanner.nextDouble();
if(bank.getMoney(bankCard,money)){
System.out.println("取款成功!");
}else{
System.out.println("余额不足取款失败!");
}
break;
case 3:
System.out.println("余额为:"+bank.getBalance(bankCard));
break;
case 4:
System.out.println("请输入转账的账号:");
while(flag){
count = scanner.nextInt();
//检查此卡号是否存在
if(!bank.contains(count)){
System.out.println("此卡号不存在,请重新输入:");
}JuvquZFm else{
flag =false;
}
}
System.out.println("请输入转账的金额:");
money = scanner.nextDouble();
if(bank.transfer(bankCard,bank.getcard1(count),money)){
System.out.println("转账成功!");
}else{
System.out.println("余额不足,转账失败!");
}
break;
//莫名结束??
case 5:
flag = false;
break;
}
}
}
}
2.Bank类
public class Bank {
private BankCard[] cards;
private static int cardsnum = 0;
// private static double cardsmoney = 0.0;
private static final int INITSIZE = 10;
public Bank(){
cards = new BankCard[INITSIZE];
}
//查询卡是否存在
public boolean contains(int id) {
for(int i=0;i if (cards[i].getId() == id){ return true; } } return false; } //登录 public boolean login(int id,int passwd) { for(int i=0;i if (cards[i].getId() == id && cards[i].getPasswd() == passwd){ return true; } } return false; } //添加一张银行卡 public void add(BankCard card) { //判断存卡的数组是否已满 if(cards.length == cardsnum){ //数组已满执行扩容操作 cards = Arrays.copyOf(cards,cards.length+(cards.length>>1)); } //银行卡存入银行卡类型数组 cards[cardsnum] = card; //银行卡数+1 cardsnum++; } //输入卡号,密码返回银行卡 public BankCard getcard(int id, int passwd){ for(int i=0;i if (cards[i].getId() == id && cards[i].getPasswd() == passwd){ return cards[i]; } } return null; } //存款 public boolean setMoney(BankCard card,double money){ return card.setMoney(money); } //取款 public boolean getMoney(BankCard card,double money){ return card.getMoney(money); } //查余额 public double getBalance(BankCard card){ return card.getBalance(); } //转账 public boolean transfer(BankCard card, BankCard tempcard, double money){ if( card.getMoney(money)){ tempcard.setMoney(money); return true; } return false; } //输入卡号,密码返回银行卡 public BankCard getcard1(int id){ for(int i=0;i if (cards[i].getId() == id){ return cards[i]; } } return null; } } 3.BankCard类 public class BankCard { private int id; private int passwd; private double money; public BankCard(int id, int passwd) { this.id = id; this.passwd = passwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPasswd() { return passwd; } public void setPasswd(int passwd) { this.passwd = passwd; } public boolean getMoney(double money) { if(this.money>=money){ this.money -= money; return true; }else{ return false; } } public boolean setMoney(double deposit) { this.money += deposit; return true; } public double getBalance(){ return this.money; } }
if (cards[i].getId() == id){
return true;
}
}
return false;
}
//登录
public boolean login(int id,int passwd) {
for(int i=0;i if (cards[i].getId() == id && cards[i].getPasswd() == passwd){ return true; } } return false; } //添加一张银行卡 public void add(BankCard card) { //判断存卡的数组是否已满 if(cards.length == cardsnum){ //数组已满执行扩容操作 cards = Arrays.copyOf(cards,cards.length+(cards.length>>1)); } //银行卡存入银行卡类型数组 cards[cardsnum] = card; //银行卡数+1 cardsnum++; } //输入卡号,密码返回银行卡 public BankCard getcard(int id, int passwd){ for(int i=0;i if (cards[i].getId() == id && cards[i].getPasswd() == passwd){ return cards[i]; } } return null; } //存款 public boolean setMoney(BankCard card,double money){ return card.setMoney(money); } //取款 public boolean getMoney(BankCard card,double money){ return card.getMoney(money); } //查余额 public double getBalance(BankCard card){ return card.getBalance(); } //转账 public boolean transfer(BankCard card, BankCard tempcard, double money){ if( card.getMoney(money)){ tempcard.setMoney(money); return true; } return false; } //输入卡号,密码返回银行卡 public BankCard getcard1(int id){ for(int i=0;i if (cards[i].getId() == id){ return cards[i]; } } return null; } } 3.BankCard类 public class BankCard { private int id; private int passwd; private double money; public BankCard(int id, int passwd) { this.id = id; this.passwd = passwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPasswd() { return passwd; } public void setPasswd(int passwd) { this.passwd = passwd; } public boolean getMoney(double money) { if(this.money>=money){ this.money -= money; return true; }else{ return false; } } public boolean setMoney(double deposit) { this.money += deposit; return true; } public double getBalance(){ return this.money; } }
if (cards[i].getId() == id && cards[i].getPasswd() == passwd){
return true;
}
}
return false;
}
//添加一张银行卡
public void add(BankCard card) {
//判断存卡的数组是否已满
if(cards.length == cardsnum){
//数组已满执行扩容操作
cards = Arrays.copyOf(cards,cards.length+(cards.length>>1));
}
//银行卡存入银行卡类型数组
cards[cardsnum] = card;
//银行卡数+1
cardsnum++;
}
//输入卡号,密码返回银行卡
public BankCard getcard(int id, int passwd){
for(int i=0;i if (cards[i].getId() == id && cards[i].getPasswd() == passwd){ return cards[i]; } } return null; } //存款 public boolean setMoney(BankCard card,double money){ return card.setMoney(money); } //取款 public boolean getMoney(BankCard card,double money){ return card.getMoney(money); } //查余额 public double getBalance(BankCard card){ return card.getBalance(); } //转账 public boolean transfer(BankCard card, BankCard tempcard, double money){ if( card.getMoney(money)){ tempcard.setMoney(money); return true; } return false; } //输入卡号,密码返回银行卡 public BankCard getcard1(int id){ for(int i=0;i if (cards[i].getId() == id){ return cards[i]; } } return null; } } 3.BankCard类 public class BankCard { private int id; private int passwd; private double money; public BankCard(int id, int passwd) { this.id = id; this.passwd = passwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPasswd() { return passwd; } public void setPasswd(int passwd) { this.passwd = passwd; } public boolean getMoney(double money) { if(this.money>=money){ this.money -= money; return true; }else{ return false; } } public boolean setMoney(double deposit) { this.money += deposit; return true; } public double getBalance(){ return this.money; } }
if (cards[i].getId() == id && cards[i].getPasswd() == passwd){
return cards[i];
}
}
return null;
}
//存款
public boolean setMoney(BankCard card,double money){
return card.setMoney(money);
}
//取款
public boolean getMoney(BankCard card,double money){
return card.getMoney(money);
}
//查余额
public double getBalance(BankCard card){
return card.getBalance();
}
//转账
public boolean transfer(BankCard card, BankCard tempcard, double money){
if( card.getMoney(money)){
tempcard.setMoney(money);
return true;
}
return false;
}
//输入卡号,密码返回银行卡
public BankCard getcard1(int id){
for(int i=0;i if (cards[i].getId() == id){ return cards[i]; } } return null; } } 3.BankCard类 public class BankCard { private int id; private int passwd; private double money; public BankCard(int id, int passwd) { this.id = id; this.passwd = passwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPasswd() { return passwd; } public void setPasswd(int passwd) { this.passwd = passwd; } public boolean getMoney(double money) { if(this.money>=money){ this.money -= money; return true; }else{ return false; } } public boolean setMoney(double deposit) { this.money += deposit; return true; } public double getBalance(){ return this.money; } }
if (cards[i].getId() == id){
return cards[i];
}
}
return null;
}
}
3.BankCard类
public class BankCard {
private int id;
private int passwd;
private double money;
public BankCard(int id, int passwd) {
this.id = id;
this.passwd = passwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPasswd() {
return passwd;
}
public void setPasswd(int passwd) {
this.passwd = passwd;
}
public boolean getMoney(double money) {
if(this.money>=money){
this.money -= money;
return true;
}else{
return false;
}
}
public boolean setMoney(double deposit) {
this.money += deposit;
return true;
}
public double getBalance(){
return this.money;
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~