iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何实现简单控制台版ATM系统
  • 668
分享到

Java如何实现简单控制台版ATM系统

2023-06-30 16:06:07 668人浏览 安东尼
摘要

本篇内容主要讲解“Java如何实现简单控制台版ATM系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单控制台版ATM系统”吧!ATM系统项目ATM系统要实现的功能查询:账号必

本篇内容主要讲解“Java如何实现简单控制台版ATM系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单控制台版ATM系统”吧!

ATM系统项目

ATM系统要实现的功能

查询:账号必须存在,密码(三次机会,不对就卡)

取款:账号必须存在,密码(三次机会,不对就锁卡),取款金额不能大于存款

存款:账号必须存在,存款金额不能低于0

转帐:你的账户,转款账户都必须存在,密码(三次机会,不对就锁卡),转账金额不能超过余额

锁卡:账号必须存在,使用密码冻结

解卡:账号必须存在,只能使用身份证号进行解锁

补卡:使用身份证进行补卡

改密:愿密码进行改密,也可以使用身份证进行改密

退出: 保存数据

项目分析

可分为四个对象,第一个 银行卡对象(Card 存储银行卡信息);第二个 用户对象(Person 存储用户信息);第三个 功能对象( Controller 具体的操作功能类);视图对象( Views 显示操作界面)。从而可分为四个类

代码

Card类

封装卡的属性(卡号,密码,余额,锁卡状态)

public class Card {   //封装卡的属性   private String cardid;   private String passWord;   private double money;   private boolean islock;   //设置封装的各属性的set、get方法   public String getCardid() {    return cardid;   }   public void setCardid(String cardid) {    this.cardid = cardid;   }   public String getPassword() {    return password;   }   public void setPassword(String password) {    this.password = password;   }   public double getMoney() {    return money;   }   public void setMoney(double money) {    this.money = money;   }   public boolean isIslock() {    return islock;   }   public void setIslock(boolean islock) {    this.islock = islock;   }      //重写 to String方法   @Override    public String toString() {        return "Card [cardid=" + cardid + ", password=" + password + ", money=" + money + ", islock=" + islock + "]";    }        //构造卡的无参和有参构造方法      public Card() {        super();            }            public Card(String cardid, String password, double money, boolean islook) {        super();        this.cardid = cardid;        this.password = password;        this.money = money;        this.islock = islock;    }   }

Person类

封装用户信息(用户名,身份证号,手机号码,卡)

public class Person {    private String name;    private String userid;    private String phone;    private Card[] card;        //设置封装的各属性的set、get方法    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getUserid() {        return userid;    }    public void setUserid(String userid) {        this.userid = userid;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public Card[] getCard() {        return card;    }    public void setCard(Card[] card) {        this.card = card;    }            //重写 to String方法    @Override    public String toString() {        return "Person [name=" + name + ", userid=" + userid + ", phone=" + phone + ", card=" + card+ "]";    }    //构造无参和有参方法      public Person() {        super();    }        public Person(String name, String userid, String phone, Card[] card) {        super();        this.name = name;        this.userid = userid;        this.phone = phone;        this.card = card;    }    }

Controller类

创建三个默认账户信息,并构造操作方法

public class Controller {     Scanner sc = new Scanner(System.in);     Card c = new Card() ; //生成卡          //创建三组信息     Card c1 = new Card("1","666666",1000,false);  //默认账户1     Card c2 = new Card("2","666666",1500,false);  //默认账户2     Card c3 = new Card("3","666666",1800,false);  //默认账户3     public void reGISer(String name,String userid,String phone,Card[] card) {         //将Person类的属性赋给对象p         Person p = new Person(name,userid,phone,card);             }          public void query(Person p) {                  System.out.println(p);     }          public boolean verify(String cardid,String password) {         if(cardid.equals("1")&&password.equals("666666")) {  //如果输入的是账户1的账户密码,就得到账户1属性             c.setMoney(c1.getMoney());             c.setPassword(c1.getPassword());                          if(!c.isIslock()) {       //判断账户1是否被锁                 return true;             }else {                 System.out.println("抱歉,该卡已被锁");                 return false;             }         }                  if(cardid.equals("2")&&password.equals("666666")) { //如果输入的是账户2的账户密码,就得到账户2属性             c.setMoney(c2.getMoney());             c.setPassword(c2.getPassword());                          //判断该卡是否被锁             if(!c.isIslock()) {     //判断账户2是否被锁                 return true;             }         }                  if (cardid.equals("3")&&password.equals("666666")) { //如果输入的是账户3的账户密码,就得到账户3属性             c.setMoney(c3.getMoney());             c.setPassword(c3.getPassword());                          if(!c.isIslock()) {        //判断账户3是否被锁                 return true;             }         }                  return false;       //一个账户信息都没对上,重新输入              }             //构造查询方法     public void query(String cardid) {                  if(cardid.equals("1")) {                           //查询账户1             System.out.println(c.getMoney());         }else if(cardid.equals("2")) {                     //查询账户2             System.out.println(c.getMoney());         }else if(cardid.equals("3")) {                     //查询账户3             System.out.println(c.getMoney());         }else {             System.out.println("输入有误");         }              }          //构造取钱方法     public void putMoney() {         System.out.print("请输入需要取出的金额(将金额再确认一遍):");         double money = sc.nextDouble();        //判断钱够不够         if(money<=c.getMoney()) {             money = c.getMoney()-money;             c.setMoney(money);                        //钱够取出并更新账户余额             System.out.println("已取出"+sc.nextDouble()+"元");             System.out.println("账户余额为:"+money+"元");         }else {             System.out.println("对不起,账户余额不足");         }     }          //构造存钱方法     public void addMoney() {         System.out.println("请将纸币放于存钞口(将金额再确认一遍)");         double money = sc.nextDouble();          money = c.getMoney()+money;         c.setMoney(money);                               //存钱并更新账户余额                        System.out.println("已存入"+sc.nextDouble()+"元");        System.out.println("账户余额为:"+money+"元");                       }        //构造转钱方法     public void saveMoney() {         System.out.println("请输入需要转入账户名:");         String name = sc.next();         System.out.print("请输入转入金额(将金额再确认一遍):");         double money = sc.nextDouble();                  //判断钱够不够         if(c.getMoney()>=money) {             money = c.getMoney()-money;             c.setMoney(money);                             //钱够转钱 更新账户余额             System.out.println("已转出"+sc.nextDouble()+"元");             System.out.println("账户余额为:"+money+"元");         }else {                                            //钱不够返回             System.out.println("对不起,账户余额不足");         }     }          //构造锁卡方法     public void lock() {         c.setIslock(true);         System.out.println("该卡已被锁");     }          //构造解卡方法     public void unlock() {         c.setIslock(false);         System.out.println("该卡可正常使用");     }          //构造补卡方法     public void newCard() {         System.out.println("请输入您的姓名:");         String name = sc.nextLine();                 System.out.println("请输入您的身份证号码:");         String userid = sc.nextLine();                  Person p = new Person(name,userid,null,null);                             System.out.println("请输入重办账户号码:");                  String cardid = sc.nextLine();                  System.out.println("请输入要设置的密码(数字):");         String  password = sc.nextLine();              //限制密码位数         if(password.length()==6) {             System.out.println("密码设置成功");         }else {             System.out.println("密码限制6位,请重新选择功能");                      }              }                  //构造改密方法     public void changePwd() {         System.out.println("请输入密码:");         String password = sc.next();                  if(password.equals(c.getPassword())){             System.out.println("请输入更改后的密码:");             String newpassword = sc.next();             System.out.println("再输入一次密码:");             String newpassword1 = sc.next();                         if(newpassword.equals(newpassword1)) {             System.out.println("密码修改成功!");             c.setPassword(newpassword1);            }else {             System.out.println("两次密码输入不一致,请重新输入");             changePwd();            }       }else {                System.out.println(c.getPassword());           System.out.println("密码输入错误");       }     }          //构造退出方法     public void save() {         System.exit(0);     }}

View类

实现欢迎界面以及各操作界面

public class View {    Scanner s = new Scanner(System.in);    private int count = 3;    Card c =new Card();    Controller co = new Controller();        public static void main(String[] args) {        View v = new View();        v.show();    }        public void show() {        System.out.println("=============欢迎使用使用本行存取一体机=============");        System.out.println("请输入卡号:");        String cardid = s.nextLine();                System.out.println("请输入密码:");        String  password =s.nextLine();                //登录界面,账户密码错三次就锁卡        if(!co.verify(cardid, password)) {            count--;            if(count == 0) {                co.lock();   //调用lock                System.out.println("密码输入错误"+c.isIslock());                System.out.println("请重新输入:");            }                        System.out.println("你还有"+count+"次输入机会,");            System.out.println("输入机会用完后,将会锁卡");            show();        }        //如果账户密码正确就进入功能界面        if(co.verify(cardid, password)) {            while(true) {                System.out.println("请按相应的序号选择功能:1.取款    2.存款    3.查询余额    4.转账   5.修改密码    6.锁卡    7.解卡   8.补卡  9.退出");                                switch(s.nextInt()) {                case 1:   //取款                    co.putMoney();                    break;                case 2:  //存钱                    co.addMoney();                    break;                case 3:  //查询                    co.query(cardid);                    break;                case 4:  //转钱                    co.saveMoney();                    break;                case 5:  //改密                    co.changePwd();                    break;                case 6:  //锁卡                    co.lock();                    break;                case 7:  //解卡                    co.unlock();                    break;                case 8:  //补卡                    co.newCard();                    break;                case 9:  //退出                    System.out.println("感谢使用,欢迎下次光临");                    co.save();                    break;                                    default:  //输入指令错误                    System.out.println("输入有误");                    break;                }            }        }    }}

到此,相信大家对“Java如何实现简单控制台版ATM系统”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Java如何实现简单控制台版ATM系统

本文链接: https://www.lsjlt.com/news/330312.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系统”吧!ATM系统项目ATM系统要实现的功能查询:账号必...
    99+
    2023-06-30
  • Java如何实现ATM银行管理系统控制台版本
    这篇文章主要讲解了“Java如何实现ATM银行管理系统控制台版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现ATM银行管理系统控制台版本”吧!创建抽象类Card类abstr...
    99+
    2023-07-02
  • Java实现ATM银行管理系统(控制台版本)
    目录前言介绍创建抽象类Card类创建普通银行类继承Card创建普通信用卡继承Card创建普通医保卡继承CardATM主要方法业务类逻辑实现main方法测试启动类控制台打印前言介绍 最...
    99+
    2024-04-02
  • Java基于控制台界面实现ATM系统
    本文实例为大家分享了Java实现ATM系统的具体代码,供大家参考,具体内容如下 这应该算最基础的Javase项目了,但其中逻辑还是得想想的。 功能还算完善,只是对输入数据的校验没做全...
    99+
    2024-04-02
  • java如何实现简单银行ATM系统
    这篇文章主要介绍了java如何实现简单银行ATM系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何实现简单银行ATM系统文章都会有所收获,下面我们一起来看看吧。#ATM系统##功能模拟银行ATM机系...
    99+
    2023-06-30
  • java实现简单银行ATM系统
    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册、登录功能用户登录后可实现以下功能:1)...
    99+
    2024-04-02
  • Java简单实现银行ATM系统
    本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 实现步骤: 定义账户类,用于后期创建账户对象封装用户的账户信息。 账户类中的信息至少需要包含(卡号...
    99+
    2024-04-02
  • java实现ATM机系统(2.0版)
    java实现银行ATM自助取款机,实现功能:用户登录、余额查询、存钱、取钱、转账、修改密码、退出系统。 用java实现一个ATM机系统(2.0版) 设计思路 设计五个类包括测试类: ...
    99+
    2024-04-02
  • Java如何实现学生管理系统控制台版本
    本篇内容介绍了“Java如何实现学生管理系统控制台版本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建学生类Student pu...
    99+
    2023-07-02
  • Java如何实现ATM系统
    这篇文章主要介绍Java如何实现ATM系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.系统准备,首页,用户开户功能系统准备,首页设计系统准备内容分析:每个用户的账户信息都是一个对象,需要提供账户类需要准备一个容...
    99+
    2023-06-29
  • Java实现学生管理系统(控制台版本)
    目录前言介绍创建学生类Student main方法实现CRUD查询方法添加方法删除方法修改方法控制台打印前言介绍 最近很多同学找我帮忙做一些课程设计或Web前端大作业、其中...
    99+
    2024-04-02
  • Java如何实现ATM机模拟系统
    这篇“Java如何实现ATM机模拟系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何实现ATM机模拟系统”文章吧...
    99+
    2023-07-02
  • Java如何实现ATM机操作系统
    这篇“Java如何实现ATM机操作系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何实现ATM机操作系统”文章吧...
    99+
    2023-06-30
  • java控制台实现学生信息管理系统(IO版)
    使用java语言用本地文件存储数据实现学生信息管理系统,在控制台上编译执行,也就是学生管理系统IO版 可以实现基本的学生信息增加、删除、修改、查询功能(细化了查询功能) 集合版可以...
    99+
    2024-04-02
  • java控制台实现学生信息管理系统(集合版)
    使用java语言用集合存储数据实现学生信息管理系统,在控制台上编译执行 可以实现基本的学生信息增加、删除、修改、查询功能 IO版可以参考我的另外一篇博文。 运行界面如下 欢迎界面 ...
    99+
    2024-04-02
  • java控制台实现学生管理系统
    本文实例为大家分享了java控制台实现学生管理系统的具体代码,供大家参考,具体内容如下 编写一个学生成绩管理程序。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有...
    99+
    2024-04-02
  • java如何实现简单快递系统
    这篇“java如何实现简单快递系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java如何实现简单快递系统”文章吧。具体内...
    99+
    2023-06-29
  • C#控制台实现简单飞行棋游戏
    本文实例为大家分享了C#控制台实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下 需求分析 1.制作游戏头部:游戏头部介绍 2.绘制地图 使用一维数组装整个地图的路线 如果这...
    99+
    2024-04-02
  • java控制台实现学生信息管理系统
    简介 最近学了java基础后对以前不会写的作业深有感触,想起以前各种在网上找资料找别人的代码参考,所以今天特地写了了简单的基于控制台的学生信息管理系统供还在学基础的同学参考,写的有问...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作