iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现基础银行ATM系统
  • 327
分享到

Java实现基础银行ATM系统

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

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

摘要

目录一、前言二、使用步骤三、运行效果图:本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 一、前言 银行ATM系列简单操作 二、使用步骤 1.创建

本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下

一、前言

银行ATM系列简单操作

二、使用步骤

1.创建用户信息类Account.java

代码如下(示例):

package ATM;
public class Account {
        private String id;
        private String name;
        private double balance;
        private double nORM;
        private String passWord;
        public Account() {
        }
        public Account(String id, String name, String password,double balance, double norm) {
            this.id = id;
            this.name = name;
            this.password=password;
            this.balance = balance;
            this.norm = norm;
        }
        public String getId() {
            return id;
        }
 
        public void setId(String id) {
            this.id = id;
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public double getBalance() {
            return balance;
        }
 
        public void setBalance(double balance) {
            if(balance<0){
                this.balance=0;
            }
            this.balance = balance;
        }
 
        public double getNorm() {
            return norm;
        }
 
        public void setNorm(double norm) {
            if(norm<=0||norm>50000){
             this.norm=50000;
            }
            this.norm = norm;
        }
 
        public String getPassword() {
            return password;
        }
 
        public void setPassword(String password) {
            this.password = password;
        }
        
}

2.编写用户界面和操作功能(代码中含有注释)

ATMSystem.java代码如下(示例):

package ATM;
import java.util.*;
 
public class ATMSystem {
    public static void main(String[] args) {
    //1.准备系统需要的容器对象,用于存储账户对象
        ArrayList<Account> account=new ArrayList<>(100);
        //提前准备了,甄嬛用户信息,可删 ——自行注册
        account.add(new Account("11111111","甄嬛","111",0.0, 30000));
    //2.准备系统首页,登录和开户
        //调用shouMain方法
        shouMain(account);
    }
    //首页
    public static void shouMain(ArrayList<Account> account){
        Scanner sc=new Scanner(System.in);
        while(true){
        System.out.println("=========欢迎您进入赵氏ATM系统=========");
        System.out.println("1.登录账户");
        System.out.println("2.注册开户");
        System.out.println("请输入命令(1、2)选择对应操作:");
        String a1=sc.next();
        switch(a1){
        case "1":
            //登录
            DL(account,sc);
            break;
        case "2":
            //开户
            ZC(account,sc);
            break;
        default:
            System.out.println("错误:命令输入不规范!");
        }}
    }
    //开户功能的实现
    public static void ZC(ArrayList<Account> account,Scanner sc){
        System.out.println("=========用户开户功能=========");
        System.out.println("请输入姓名:");
        String name=sc.next();
        String password="";
        while(true){
            System.out.println("请设置密码:");
            password=sc.next();
            System.out.println("请再输入一次密码:");
            String againPassword=sc.next();
            if(password.equals(againPassword)){
                break;
            }else{
                System.out.println("两次密码不一致,请重新设置密码!");
            }
        }
        System.out.println("请输入取现限额:");
        Double norm=sc.nextDouble();
        if(norm<=0||norm>50000){
            norm=50000.0;
            System.out.println("您的取现额度不规范,默认为50000元");
        }
        String id=ID(account);
        Account accounts=new Account(id,name,password,0,norm);
        account.add(accounts);
       System.out.println("您的卡号为:"+id);
    }
    //随机生成八位数卡号不与已存在的卡号重复
    //关键 !!!!!此方法与此方法下方的两个方法效果一样,任选其一
public static String ID(ArrayList<Account> account){
    while(true){
        Random r=new Random();
        String id="";
        for(int i=0;i<1;i++){
            int q=r.nextInt(2);
            id+=q;
        }int T=0;
        for(int j=0;j<account.size();j++){
            Account ac=account.get(j);                
            if(ac.getId().equals(id)){
                T=1;
                break;
            }
        }
        if(T==0){
            return id;
        }
    }
}
//随机生成八位数卡号不与已存在的卡号重复
//    public static String ID(ArrayList<Account> account){
//        while(true){
//        Random r=new Random();
//        String id="";
//            for(int i=0;i<8;i++){
//            int q=r.nextInt(10);
//              id+=q;
//        }
//            //判断卡号是否重复了
//            Account ac=pdid(account,id);
//            if(ac==null){
//                //说明当前卡号没有重复
//                return id;
//            }
//        }
//    public static Account pdid(ArrayList<Account> account,String id){
//        int acount=0;
//        //如果有重复的返回重复的对象
//        for(int i=0;i<account.size();i++){
//            Account ac=account.get(i);
//            if(id.equals(ac.getId())){
//                return ac;
//            }        
//            }
//        return null;        
//    }
    //登录
    public static void DL(ArrayList<Account> account,Scanner sc){
        //调用检查卡号的JC方法
        Account acc=JC(account,sc);
        while(true){
            //核对输入密码
        System.out.println("请输入密码:");
        String password=sc.next();
        if(acc.getPassword().equals(password)){
            //登录后页面//操作页面
            System.out.println("恭喜您,"+acc.getName()+"成功进入系统!");
            showUser(account,acc,sc);
            return;
        }else{
            System.out.println("密码错误!");
        }
        }
}
//检查登录卡号是否存在
    public static Account JC(ArrayList<Account> account,Scanner sc){  
        while(true){
            System.out.println("请输入卡号:");
        String id=sc.next();
           for(int i=0;i<account.size();i++){
           Account acc=account.get(i);
         if(id.equals(acc.getId())){
             return acc;
        }}
            System.out.println("警告:卡号错不存在!");
       }
    }   
    //用户操作页面
    private static void showUser(ArrayList<Account> account,Account acc,Scanner sc) {
        while(true){
        System.out.println("====================用户操作页面==========================");
        System.out.println("1.查询账户");
        System.out.println("2.存款");
        System.out.println("3.取款");
        System.out.println("4.转账");
        System.out.println("5.修改密码");
        System.out.println("6.退出");
        System.out.println("7.注销账户");
        System.out.println("请输入命令(1、2、3、4、5、6、7)选择对应操作:");
        String a2=sc.next();
        switch(a2){
        case "1"://查询
            CX(acc);
            break;
        case "2"://存款
            CK(acc,sc);
            break;
        case "3"://取款
            QK(acc,sc);
            break;
        case "4"://转账
            ZZ(account,acc,sc);
            break;
        case "5"://修改密码
            XG(acc,sc);
            return;
        case "6"://退出
            System.out.println("欢迎下次登录!");
            return;
        case "7"://注销
            SC(account,acc);
            return;
       default:
           System.out.println("错误:命令输入不规范!");
        }
    }
    }
    //简单的删除该对象
    private static void SC(ArrayList<Account> account,Account acc) {
        account.remove(acc);
        return;
    }
    //通过Account类中set方法修改对象的密码,可举一反三修改取款限额
    private static void XG(Account acc, Scanner sc) {
        while(true){
            System.out.println("请输入修改后的密码:");
        String mima=sc.next();
        System.out.println("请再输入一次:");
        String mm=sc.next();
        if(mima.equals(mm)){
            acc.setPassword(mima);
            System.out.println("密码修改成功!");
            System.out.println("请重新登录~~");
            return;
        }
        }    
    }
    //转账有账户个数限制,转账的卡号是否存在,并核对姓名,限制转账金额
    //通过Account类中set方法修改对象的余额
    private static void ZZ(ArrayList<Account> account,Account acc, Scanner sc) {
        if(account.size()<2){
            System.out.println("当前系统,账户不足2个,不支持转账!");
            return;
        }else{
        while(true){
            System.out.println("请您输入转账的账户卡号:");
            String cards=sc.next();
            for(int i=0;i<account.size();i++){
                   Account car=account.get(i);
                 if(cards.equals(car.getId())&&!cards.equals(acc.getId())){
                     QR(car,sc);
                     while(true){
                         System.out.println("请您输入转账的金额:");
                         double money=sc.nextDouble();
                            if(money>acc.getNorm()){
                                System.out.println("转账金额不能大于限额:"+acc.getNorm()+"元");
                            }else if(money>acc.getBalance()){
                                System.out.println("您的余额为:"+acc.getBalance()+"元,不支持大额度的转账金额!");
                            }else{
                                acc.setBalance(acc.getBalance()-money);
                                car.setBalance(acc.getBalance()+money);
                                System.out.println("转账成功,现在你的余额为:"+acc.getBalance());
                                break;
                     }
                     }
                     break;
                }else{System.out.println("警告:卡号错,不存在!");}break;      
            }break;
               }
        }
    }
    //确认转账对象的姓名,避免转错对象
    private static void QR( Account car, Scanner sc) {
        String name="**"+car.getName().substring(2);
        while(true){
            System.out.println("您确定要为"+name+"转账!");
        System.out.println("请您输入对方姓名确认:");
        String names=sc.next();
        if(names.equals(car.getName())){
            System.out.println("请继续转账");
            break;
        }else{
            System.out.println("姓名不符合");
        }
        }
    }
    //取款是简单的修改余额,注意取款限额
    private static void QK(Account acc, Scanner sc) {
        while(true){
            System.out.println("输入您要取款的金额:");
        double money=sc.nextDouble();
        if(money>acc.getNorm()){
            System.out.println("取款金额不能大于限额:"+acc.getNorm()+"元");
        }else if(money>acc.getBalance()){
            System.out.println("您的余额为:"+acc.getBalance()+"元,不支持大额度的取款金额!");
        }else{
            acc.setBalance(acc.getBalance()-money);
            System.out.println("取款成功,现在你的余额为:"+acc.getBalance());
            break;
        }
    }
    }
    //存款是简单的修改余额
    private static void CK(Account acc, Scanner sc) {
        System.out.println("输入您要存款的金额:");
        double money=sc.nextDouble();
        double balance=acc.getBalance();
        double bal=money+balance;
        acc.setBalance(bal);
        System.out.println("存款成功~您现在的金额为"+bal+"元");
    }
    //查询信息,通过Account类中get方法读出想知道的数据
    private static void CX(Account acc) {
        System.out.println("您的帐户信息如下:");
        System.out.println("卡号:"+acc.getId());
        System.out.println("姓名:"+acc.getName());
        System.out.println("余额:"+acc.getBalance());
        System.out.println("当前取现额度:"+acc.getNorm());
    }
    
}

三、运行效果图:

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

--结束END--

本文标题: Java实现基础银行ATM系统

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

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

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

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

下载Word文档
猜你喜欢
  • Java实现基础银行ATM系统
    目录一、前言二、使用步骤三、运行效果图:本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 一、前言 银行ATM系列简单操作 二、使用步骤 1.创建...
    99+
    2024-04-02
  • java实现简单银行ATM系统
    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册、登录功能用户登录后可实现以下功能:1)...
    99+
    2024-04-02
  • Java简单实现银行ATM系统
    本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 实现步骤: 定义账户类,用于后期创建账户对象封装用户的账户信息。 账户类中的信息至少需要包含(卡号...
    99+
    2024-04-02
  • java实现银行ATM管理系统
    本文实例为大家分享了java实现银行ATM管理系统的具体代码,供大家参考,具体内容如下 功能 账户类、首页设计 分析 ① 每个用户一个账户对象,需要设计账户类,账户类至少包含(卡号、...
    99+
    2024-04-02
  • java如何实现简单银行ATM系统
    这篇文章主要介绍了java如何实现简单银行ATM系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何实现简单银行ATM系统文章都会有所收获,下面我们一起来看看吧。#ATM系统##功能模拟银行ATM机系...
    99+
    2023-06-30
  • Java实现ATM银行管理系统(控制台版本)
    目录前言介绍创建抽象类Card类创建普通银行类继承Card创建普通信用卡继承Card创建普通医保卡继承CardATM主要方法业务类逻辑实现main方法测试启动类控制台打印前言介绍 最...
    99+
    2024-04-02
  • java模拟实现银行ATM机操作
    java模拟银行ATM机操作(基础版),供大家参考,具体内容如下 实现的功能需求: 修改密码之后,就会自动退出登录,再重新登录,若登录成功才能验证修改密码成功,这里用到 【跳出指定循...
    99+
    2024-04-02
  • Java如何实现ATM银行管理系统控制台版本
    这篇文章主要讲解了“Java如何实现ATM银行管理系统控制台版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现ATM银行管理系统控制台版本”吧!创建抽象类Card类abstr...
    99+
    2023-07-02
  • Java基于对象流实现银行系统
    Java基于对象流实现银行系统的具体代码,供大家参考,具体内容如下 系统特点: 数据持久化到文件中,系统启动后,加载文件中数据到集合中,相当于做了一个缓存。文件读写使用的是对象流(O...
    99+
    2024-04-02
  • C语言如何实现银行ATM存取款系统
    这篇文章给大家分享的是有关C语言如何实现银行ATM存取款系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、课程设计的目的掌握C语言程序设计的基础知识、基本理论、原理和实现技术。二、课程设计的题目银行ATM存取...
    99+
    2023-06-25
  • Java 多线程 之 银行ATM实例
    转载于 : http://www.verejava.com/id=16992914422268 package com.thread;import java.util.Scanner;public&n...
    99+
    2023-06-02
  • 基于python实现银行管理系统
    目录一、python银行管理系统二、分析部分三、代码部分一、python银行管理系统 二、分析部分 三、代码部分 import random class bankU...
    99+
    2024-04-02
  • C语言编程银行ATM存取款系统实现源码
    目录一、课程设计的目的二、课程设计的题目三、设计内容银行ATM存取款系统实现的效果源码业务流程1、用户开户2、登录流程3、密码修改这里使用的运行工具是DEV C++。老铁们一定要看仔...
    99+
    2024-04-02
  • Java基于控制台界面实现ATM系统
    本文实例为大家分享了Java实现ATM系统的具体代码,供大家参考,具体内容如下 这应该算最基础的Javase项目了,但其中逻辑还是得想想的。 功能还算完善,只是对输入数据的校验没做全...
    99+
    2024-04-02
  • Java如何实现ATM系统
    这篇文章主要介绍Java如何实现ATM系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.系统准备,首页,用户开户功能系统准备,首页设计系统准备内容分析:每个用户的账户信息都是一个对象,需要提供账户类需要准备一个容...
    99+
    2023-06-29
  • java实现ATM机系统(2.0版)
    java实现银行ATM自助取款机,实现功能:用户登录、余额查询、存钱、取钱、转账、修改密码、退出系统。 用java实现一个ATM机系统(2.0版) 设计思路 设计五个类包括测试类: ...
    99+
    2024-04-02
  • Java实现ATM机操作系统
    本文实例为大家分享了Java实现ATM机操作系统的具体代码,供大家参考,具体内容如下 用IO流操作txt文件作为数据库模拟实现一个ATM业务操作系统---->网上银行,实现登录...
    99+
    2024-04-02
  • Java实现银行账户管理子系统
    本文实例为大家分享了Java实现银行账户管理子系统的具体代码,供大家参考,具体内容如下 所用到的知识点:面向对象基础语法,封装,方法覆盖(重写)、继承、多态 话不多说,直接上代码 A...
    99+
    2024-04-02
  • 如何基于python实现银行管理系统
    这篇文章将为大家详细讲解有关如何基于python实现银行管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • Java如何实现ATM机模拟系统
    这篇“Java如何实现ATM机模拟系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何实现ATM机模拟系统”文章吧...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作