iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Java实现简单ATM机功能
  • 619
分享到

用Java实现简单ATM机功能

2024-04-02 19:04:59 619人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。 项目功能 1

本文实例为大家分享了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;
    
    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("注册成功!");

        }
    }

    //登录
    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("此卡号不存在,请重新输入:");
                        } 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<cardsnum;i++){

            if (cards[i].getId() == id){
                return true;
            }
        }
        return false;
    }

    //登录
    public boolean login(int id,int passwd) {
        for(int i=0;i<cardsnum;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<cardsnum;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<cardsnum;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;
    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 用Java实现简单ATM机功能

本文链接: https://www.lsjlt.com/news/163599.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Java实现简单ATM机功能
    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。 项目功能 1...
    99+
    2024-04-02
  • java方法实现简易ATM功能
    用java方法写简易ATM,供大家参考,具体内容如下 本文需求:用java写一个简易ATM 功能:有登陆,有查询资金功能,有存款功能,有取款功能,有转账功能,有退出; 简述: (ja...
    99+
    2024-04-02
  • Python实现atm机的功能
    主要还是参考网上内容,自己做了修改。虽然代码有小bug,但是不影响学习和测试。功能:1.额度:80002.可以提现,手续费5%3.每月最后一天出账单,写入文件4.记录每月日常消费流水5.提供还款接口1.atm的脚本[root@python ...
    99+
    2023-01-31
    功能 Python atm
  • java实现简单银行ATM系统
    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册、登录功能用户登录后可实现以下功能:1)...
    99+
    2024-04-02
  • Java简单实现银行ATM系统
    本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 实现步骤: 定义账户类,用于后期创建账户对象封装用户的账户信息。 账户类中的信息至少需要包含(卡号...
    99+
    2024-04-02
  • C语言简单实现银行ATM存取款功能
    这里使用的运行工具是DEV C++。老铁们一定要看仔细了。是DEV C++ 一、课程设计的目的 掌握C语言程序设计的基础知识、基本理论、原理和实现技术。 二、课程设计的题目 银行...
    99+
    2024-04-02
  • 用Java实现简单画板功能
    现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。 首先,打开windows下的画图软件,我们知道我们需要一个窗体(...
    99+
    2024-04-02
  • Java实现简单控制台版ATM系统
    本文实例为大家分享了Java实现简单控制台版ATM系统的具体代码,供大家参考,具体内容如下 ATM系统项目 ATM系统要实现的功能 1.查询:账号必须存在,密码(三次机会,不对就锁卡...
    99+
    2024-04-02
  • java如何实现简单银行ATM系统
    这篇文章主要介绍了java如何实现简单银行ATM系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何实现简单银行ATM系统文章都会有所收获,下面我们一起来看看吧。#ATM系统##功能模拟银行ATM机系...
    99+
    2023-06-30
  • java实现简单点赞功能
    本文实例为大家分享了java实现简单点赞功能的具体代码,供大家参考,具体内容如下 需求分析 分析: 1.必须先登录,否则提示2.第一次点赞(顶),点赞操作,点赞数+1,提示顶成功3...
    99+
    2024-04-02
  • 使用java怎么实现一个ATM功能
    使用java怎么实现一个ATM功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言...
    99+
    2023-06-14
  • 用Java实现简单计算器功能
    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制。 实训要求: (1...
    99+
    2024-04-02
  • java简单随机抽奖功能怎么实现
    实现简单的随机抽奖功能可以使用Java的Random类来生成随机数。下面是一个简单的实现示例:```javaimport java....
    99+
    2023-08-31
    java
  • 简单实现Java验证码功能
    今晚看到网上有关验证码的实现的代码,很早就想写一个了,感觉验证码挺有意思的,于是就写了一个,然而后来一直加载不出图片。尝试了很多方法,后来终于解决了,原来是我项目里面的 web.xml中没有部署servlet的映射,web.xml如下图:运...
    99+
    2023-05-31
    java 验证码 ava
  • Java web实现简单注册功能
    今天写了一个注册功能,没有用任何框架!发现不会写了,中间查了好几次百度。不过还是顺利的写完并且跑起来了。在这里记录一下。我认为有时候写这些代码还是对我们理解框架很有帮助的,因为框架也...
    99+
    2024-04-02
  • Java如何实现简单控制台版ATM系统
    本篇内容主要讲解“Java如何实现简单控制台版ATM系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单控制台版ATM系统”吧!ATM系统项目ATM系统要实现的功能查询:账号必...
    99+
    2023-06-30
  • java实现简单发送邮件功能
    本文实例为大家分享了java实现简单发送邮件的具体代码,供大家参考,具体内容如下 添加依赖 <!--发送邮件API-->     <!-- https://mvnr...
    99+
    2024-04-02
  • Java实现简单邮件发送功能
    本文实例为大家分享了Java实现简单邮件发送的具体代码,供大家参考,具体内容如下 需要的jar包: activation-1.1.1.jarmail-1.4.7.jar QQ邮箱设置...
    99+
    2024-04-02
  • Java实现简单的聊天室功能
    本文实例为大家分享了Java实现简单聊天室功能的具体代码,供大家参考,具体内容如下 一、客户端的创建 1.我们可以用Socket来创建客户端 public class Client...
    99+
    2024-04-02
  • 怎么用Java实现简单计算器功能
    这篇文章主要讲解了“怎么用Java实现简单计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现简单计算器功能”吧!一 项目说明实训目的:掌握 Java GUI 开发中的...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作