jjzjj

java实现简单的银行存款取款系统

aierken2 2023-06-07 原文

项目场景:

java实现简单的银行存款取款系统

本次代码适合初学者小白,连数据库都没有运用。一次性程序哈哈。


备学内容:

你得先了解java中以下基本内容。
1、 数组
2、 方法
3、 类
4、 Scanner扫描器


学习产果:


在写这段代码的过程中,我学到了以下几个知识点:
1、 类和方法的灵活应用。
2、类既然可以数组来使用!!!
3、 数据的相互传递:


系统描述:

当我学完java中的基本知识点之后想实现一个银行存取款系统,就简单实现:
登录,注册,退出,存款,取款转账,查询个人信息等功能。

首先写一个main方法

import java.util.Scanner;     //扫描器
public class bank{
     public static void main(String[] args){
     	Scanner sc = new Scanner(System.in);
     }
 }

main方法创建好之后再 创建一个geren1类,就是保存用户各类信息。

class geren1{
    private String zhanghao;
    private String mima;
    private int zijin=0;
    private String name;
    private int xuhao;
    private String phone;
    //构造方法
    public geren1(String zhanghao,String mima,String name,String phone,int xuhao){
        this.zhanghao = zhanghao;
        this.mima = mima;
        this.name = name;
        this.phone = phone;
        this.xuhao = xuhao;
    }
    //遍历个人信息
    public void print(){
        System.out.println("姓名:"+this.getName()+
                "\t\t\t账号:"+this.getZhanghao()+
                " \n密码:"+this.getMima()+
                "\t\t\t账户资金:"+this.getZijin()+
                "\n练习电话:"+this.getPhone());
    }

    public String getPhone(){
        return phone;
    }
    public void setPhone(String phone){
        this.phone = phone;
    }
    public int getXuhao(){
        return xuhao;
    }
    public void setXuhao(int xuhao){
        this.xuhao = xuhao;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getZhanghao(){
        return zhanghao;
    }
    public void setZhanghao(String zhanghao){
        this.zhanghao = zhanghao;
    }
    public String getMima(){
        return mima;
    }
    public void setMima(String mima){
        this.mima = mima;
    }
    public int getZijin(){
        return zijin;
    }
    public void setZijin(int zijin){
        this.zijin = zijin;
    }
}

类创建好了之后在main方法里创建一个geren1类型数组。

意思就是在geren1数组中就放geren1类。最多也就能放10个,
如果想多方几个就把10改成100或者更多就OK了。

 public static void main(String[] args){
 	Scanner sc = new Scanner(System.in);
 	geren1[] user = new geren1[10];
 }

然后就输出一个登录页面,不用认真,简单输出就好!我在main方法外面创建一个xtjiemian()方法,顾名思义就是专门用来显示登录界面的。

public static void xtjiemian(Scanner sc,geren1[] user){
        while (true)
        {
            System.out.println("===银行存取款系统===");
            System.out.println();
            System.out.println("1,登录\t\t2,注册\t\t3,退出");
            int xuanze = sc.nextInt();
            if (xuanze == 1)
            {
                //print(user);
                denglu1(sc,user);
            }else if(xuanze == 2){
                zhuce(sc,user);
                //print(user);
            }else if(xuanze == 3){
                break;
            }
            else{System.out.println("输入有误!");}
        }
    }

然后分别再写两个登录和注册判断的两个方法

	public static void denglu1(Scanner sc,geren1[] user){
        System.out.println("==== 登  录 =====");
        System.out.println("请输入账号:");
        String zh = sc.next();
        System.out.println("请输入密码:");
        String mm = sc.next();

        for (int i = 0;i<user.length;i++){
            System.out.println(user[i]);
            if (user[i] != null){
                geren1 gr = user[i];
                System.out.println(gr.getZijin());
                if (zh.equals(gr.getZhanghao()) && mm.equals(gr.getMima()))
                {
                    System.out.println("登录成功!");
                    grjiemian(sc,user,gr);
                    return;
                }
            }
        }
        System.out.println("无此账号或密码错误!");
    }
    public static void zhuce(Scanner sc, geren1[] user){
        System.out.println("==== 注  册 ====");
        for (int i=0;i<user.length;i++)
        {
            if (user[i] == null)
            {

                System.out.println("请输入注册账号:");
                //user[i][0] = sc.next();
                String zhanghao = sc.next();
                System.out.println("请输入注册密码:");
                //user[i][1] = sc.next();
                String mima = sc.next();
                System.out.println("请输入您的真实姓名:");
                String name = sc.next();
                System.out.println("请输入银行卡号:(手机号即可)");
                //zijin[i][2] = sc.nextInt();
                String phone = sc.next();
                geren1 gr = new geren1(zhanghao,mima,name,phone,i);
                user[i] = gr;
                System.out.println("注册成功");
                return;
            }
        }
    }

最后就是登录后的个人界面

public static void grjiemian(Scanner sc,geren1[] user,geren1 gr){
        while(true){
            System.out.println("==== 个人页面 =====");
            System.out.println("请选择您要办理的业务:");
            System.out.println("1,存款\t\t\t2,取款");
            System.out.println("3,查询余额\t\t4,转账");
            System.out.println("5,查询个人信息\t6,退出登录");
            int xuanze = sc.nextInt();
            if (xuanze == 1){
                System.out.println("请输入存款金额:");
                gr.setZijin(gr.getZijin()+sc.nextInt());
                System.out.println("存款成功,当前余额:"+gr.getZijin()+"元");
            }else if (xuanze == 2){
                System.out.println("请输入取款金额:");
                int qk = sc.nextInt();
                if(qk>gr.getZijin()){
                    System.out.println("余额不足。。。");
                }else{
                    gr.setZijin(gr.getZijin()-qk);
                    System.out.println("取款成功,当前余额:"+gr.getZijin()+"元");
                }
            }else if(xuanze == 3){
                System.out.println("当前余额:"+gr.getZijin()+"元");
            }
            else if(xuanze == 4){
                System.out.println("请输入转账账号:");
                String zh = sc.next();
                System.out.println("请输入转账金额:");
                int jine = sc.nextInt();
                for (int zhao = 0;zhao<user.length;zhao++){
                    if (user[zhao] !=null){
                        geren1 gr1 = user[zhao];
                        if (zh.equals(gr1.getZhanghao())){
                            gr1.setZijin(gr1.getZijin()+jine);
                            gr.setZijin(gr.getZijin() - jine);
                        }
                    }
                }
            }
            else if(xuanze == 5){
                gr.print();
            }
            else if(xuanze == 6){
                return;
            }
        }
    }

把xtjiemian()方法写在main()方法中,大功告成,以下是最后的成品代码。

import java.util.Scanner;

public class denglu2 {
   public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
       geren1[] user = new geren1[10];
       //System.out.println(user[1]);
       xtjiemian(sc,user);
   }
   public static void xtjiemian(Scanner sc,geren1[] user){
       while (true)
       {
           System.out.println("===优就业银行系统===");
           System.out.println();
           System.out.println("1,登录\t\t2,注册\t\t3,退出");
           int xuanze = sc.nextInt();
           if (xuanze == 1)
           {
               //print(user);
               denglu1(sc,user);
           }else if(xuanze == 2){
               zhuce(sc,user);
               //print(user);
           }else if(xuanze == 3){
               break;
           }
           else{System.out.println("输入有误!");}
       }
   }
   public static void zhuce(Scanner sc, geren1[] user){
       System.out.println("==== 注  册 ====");
       for (int i=0;i<user.length;i++)
       {
           if (user[i] == null)
           {

               System.out.println("请输入注册账号:");
               //user[i][0] = sc.next();
               String zhanghao = sc.next();
               System.out.println("请输入注册密码:");
               //user[i][1] = sc.next();
               String mima = sc.next();
               System.out.println("请输入您的真实姓名:");
               String name = sc.next();
               System.out.println("请输入手机号:");
               //zijin[i][2] = sc.nextInt();
               String phone = sc.next();
               geren1 gr = new geren1(zhanghao,mima,name,phone,i);
               user[i] = gr;
               System.out.println("注册成功");
               return;
           }
       }
   }
   public static void denglu1(Scanner sc,geren1[] user){
       System.out.println("==== 登  录 =====");
       System.out.println("请输入账号:");
       String zh = sc.next();
       System.out.println("请输入密码:");
       String mm = sc.next();

       for (int i = 0;i<user.length;i++){
           //System.out.println(user[i]);
           if (user[i] != null){
               geren1 gr = user[i];
               //System.out.println(gr.getZijin());
               if (zh.equals(gr.getZhanghao()) && mm.equals(gr.getMima()))
               {
                   System.out.println("登录成功!");
                   grjiemian(sc,user,gr);
                   return;
               }
           }
       }
       System.out.println("无此账号或密码错误!");
   }
   public static void grjiemian(Scanner sc,geren1[] user,geren1 gr){

       while(true){
           System.out.println("==== 个人页面 =====");
           System.out.println("请选择您要办理的业务:");
           System.out.println("1,存款\t\t\t2,取款");
           System.out.println("3,查询余额\t\t4,转账");
           System.out.println("5,查询个人信息\t6,退出登录");
           int xuanze = sc.nextInt();
           if (xuanze == 1){
               System.out.println("请输入存款金额:");
               gr.setZijin(gr.getZijin()+sc.nextInt());
               System.out.println("存款成功,当前余额:"+gr.getZijin()+"元");
           }else if (xuanze == 2){
               System.out.println("请输入取款金额:");
               int qk = sc.nextInt();
               if(qk>gr.getZijin()){
                   System.out.println("余额不足。。。");
               }else{
                   gr.setZijin(gr.getZijin()-qk);
                   System.out.println("取款成功,当前余额:"+gr.getZijin()+"元");
               }
           }else if(xuanze == 3){
               System.out.println("当前余额:"+gr.getZijin()+"元");
           }
           else if(xuanze == 4){
               System.out.println("请输入转账账号:");
               String zh = sc.next();
               System.out.println("请输入转账金额:");
               int jine = sc.nextInt();
               for (int zhao = 0;zhao<user.length;zhao++){
                   if (user[zhao] !=null){
                       geren1 gr1 = user[zhao];
                       if (zh.equals(gr1.getZhanghao())){
                           gr1.setZijin(gr1.getZijin()+jine);
                           gr.setZijin(gr.getZijin() - jine);
                       }
                   }
               }
           }
           else if(xuanze == 5){
               gr.print();
           }
           else if(xuanze == 6){
               return;
           }
       }
   }
}

代码其实可以再优化以下,有一些代码可以合并。


效果图:




有关java实现简单的银行存款取款系统的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  3. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  4. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  5. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  6. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  7. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  8. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  9. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  10. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

随机推荐