用Java实现简单ATM机功能

网友投稿 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小时内删除侵权内容。

上一篇:容器如何使用tini作为启动进程
下一篇:#yyds干货盘点#K8S-kubeadm 介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~