JAVA 模拟ATM柜员机模拟程序

JAVA 模拟ATM柜员机模拟程序,第1张

/**

     要求:使用字符用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:

    1、查询余额:初始余额为10000元

    2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

    3、ATM存款:不能出现负存款。

    4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

    (卡号密码余额放到文件中)

 */

public class Test {

    private static int account

    private static int password

    private static int money

    private static boolean isLogin

    static{

        account = 123456

        password = 123456

        money = 10000

        isLogin = false

    }

    //存款

    public void cun(int cunKuan){

        if(cunKuan>=0){

            this.money += cunKuan

        }else{

            System.out.println("存款不能为负!")

        }

    }

    //取款

    public void qu(int quKuan){

        if(this.money - quKuan < 0){

            System.out.println("余额不足!")

            return

        }

        

        if(isValid(quKuan)){

            this.money -= quKuan

        }else{

            System.out.println("取款不能为负,且应为100的倍数!")

        }

    }

    //判断是否为有效的金额

    private boolean isValid(int money){

        if(money >= 0 && money % 100 == 0){

            return true

        }

        return false

    }

    

    //登陆

    public void login(){

        System.out.println("请输入账号和密码【格式为:账号/密码】")

        String login = new Scanner(System.in).next()

        if(login.equalsIgnoreCase("123456/123456")){

            this.isLogin = true

        }else{

            System.out.println("账号或者密码错误,请重新输入!")

            login()

        }

    }

    

    //主菜单

    public void show(){

        System.out.println("[1]存款")

        System.out.println("[2]取款")

        System.out.println("[3]退出")

        System.out.println("请输入:")

        int key = new Scanner(System.in).nextInt()

        switch (key) {

        case 1:

            cun(new Scanner(System.in).nextInt())

            break

        case 2:

            qu(new Scanner(System.in).nextInt())

            break

        case 3:

            System.exit(0)

        default:

            break

        }

    }

    public static void main(String[] args) {

        Test t = new Test()

        t.login()

        if(t.isLogin){

            for(){

                t.show()

                System.out.println("您当前的余额为:" + t.money)

            }

        }

        

    }

}

package demo

import java.util.Scanner

public class Test3 {

public static void main(String[] args) {

Scanner scanner =new Scanner(System.in)

int cnt=3

String username = null

String password = null

double money = 1000

String targetName = "admin33"

double targetMoney = 1000

while(true){

if(username!=null&&password!=null){

if("admin".equals(username) &&"123".equals(password)){

System.out.println("欢迎光临")

while(true){

System.out.println("请选择您的 *** 作 1 取钱 2 存钱 3 转账 4 查询 5 退出 ")

int n = scanner.nextInt()

if(n==1){//取钱

System.out.println("请输入金额")

int getter = scanner.nextInt()

if(getter>=0){

if(getter<=5000){

if(getter<=money){

money-=getter

}else{

System.out.println("余额不足")

}

}else{

System.out.println("单笔只能取5000及以下")

}

}else{

System.out.println("银行不到给")

}

}else if(n==2){//存钱

System.out.println("请输入金额")

int save = scanner.nextInt()

if(save>=0){

money+=save

}

}else if(n==3){//转账

System.out.println("请输入目标账户")

String target = scanner.next()

if(target.equals(targetName)){

System.out.println("请输入金额")

int getter = scanner.nextInt()

if(getter>=0){

if(getter<=5000){

if(getter<=money){

money-=getter

targetMoney+=getter

}else{

System.out.println("余额不足")

}

}else{

System.out.println("单笔只能取5000及以下")

}

}else{

System.out.println("银行不到给")

}

}

}else if(n==4){//查询

System.out.println(money)

}else if(n==5){//退出

System.exit(0)

}else{

System.out.println("没有该项服务")

}

}

}else{

cnt--

System.out.println("输入错误,您还有"+cnt+"次机会")

username=null

password=null

if(cnt<=0){

System.out.println("对不起,您的账号被冻结,请到最近的营业厅解除冻结")

System.exit(0)

}

}

}else{

System.out.println("请输入您的账号")

username = scanner.next()

System.out.println("请输入您的密码")

password = scanner.next()

}

}

}

}

很简单的例子,我把代码贴出来吧

import java.util.Scanner

public class ATM {

/**

* @param args

*/

public static void main(String[] args) {

Scanner in = null

int result

double drawMoney

double depositMoney

Account account = new Account()

while (true) {

System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(ABC)中国农业银行ATM自动存取款机☆☆☆☆☆☆☆☆☆☆☆☆☆")

System.out.println("\n\t\t\t\t1.存款业务")

System.out.println("\n\t\t\t\t2.取款业务")

System.out.println("\n\t\t\t\t3.查询余额")

System.out.println("\n\t\t\t\t4.退出ATM系统")

System.out.println("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆中国农业银行欢迎您的使用☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆")

in = new Scanner(System.in)

switch (in.nextInt()) {

case 1:

System.out.println("请输入您的存款数额!")

depositMoney = in.nextDouble()

if(depositMoney <0)

System.out.println("您的输入无效,请重新输入!")

result = account.deposit(depositMoney)

if(result == 0){

System.out.println("存款业务完成,是否显示余额?Y/N")

if("Y".equalsIgnoreCase(in.next())){

System.out.println("您当前的余额为:"+account.checkCurrent())

}else {

break

}

}else {

System.out.println("无法完成交易!")

break

}

break

case 2:

System.out.println("请输入您的取款数额!")

drawMoney = in.nextDouble()

if (drawMoney <0) {

System.out.println("您的输入无效,请重新输入!")

}

result = account.withDraw(drawMoney)

if (result == 0) {

System.out.println("存款业务完成,是否显示余额?Y/N")

if("Y".equalsIgnoreCase(in.next())){

System.out.println("您当前的余额为:"+account.checkCurrent())

}else {

break

}

} else {

System.out.println("无法完成交易!")

break

}

case 3:

System.out.println("您当前的余额为:"+account.checkCurrent())

break

case 4:

break

default:

break

}

}

}

}

public class Account {

private double currentMoney//当前余额

public double getCurrentMoney() {

return currentMoney

}

public void setCurrentMoney(double currentMoney) {

if (currentMoney >0) {

this.currentMoney = currentMoney

}

}

/**

* 取款业务

* @param drawMoney

* @return 0代表成功,1代表失败

*/

public int withDraw(double drawMoney) {

if (currentMoney >0 &&drawMoney <= currentMoney) {

currentMoney -= drawMoney

} else {

System.out.println("您的余额已不足!")

return 1

}

return 0

}

/**

* 存款业务

* @param depositMoney

* @return 0代表成功,1代表失败

*/

public int deposit(double depositMoney) {

if (depositMoney >0) {

currentMoney += depositMoney

return 0

}else {

System.out.println("您提交的存款为负数,无法完成存款交易")

return -1

}

}

/**

* 查询余额业务

* @return

*/

public double checkCurrent() {

return currentMoney

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11109279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存