• 7.24Java入门--->第五节


    一周的学习结束

    最终练习

    程序开始运行输出到控制台:
    ************提示****************
    输入0:开户
    输入1:查询
    输入2:存款
    输入3:取款
    输入4:退出
    ********************************
    
    
    如果用户输入的不是0-4之间的数提示:您选择的菜单不存在,请重新选择:
    
    程序开始运行输出到控制台:
    ************提示****************
    输入0:开户
    输入1:查询
    输入2:存款
    输入3:取款
    输入4:退出
    ********************************
    
    当用户输入0时。则进入开户功能:系统提示:
    ********************************
    您选择的是开户功能
    请输入您的姓名:
    此时用户需要输入姓名,输入完毕后系统提示:
    请输入您的身份证号:
    此时用户需要输入身份证号,输入完毕验证是否为18位身份证,如果未通过验证,提示重新输入身份证
    直到通过验证为止。
    通过验证后输入密码:
    此时用户需要输入6位纯数字密码,输入完成后提示:
    开户成功  谢谢使用,从新回到
    ************提示****************
    输入0:开户
    输入1:查询
    输入2:存款
    输入3:取款
    输入4:退出
    ********************************
    
    用户输入1时,进入查询功能:系统提示:
    您选择的是查询功能,请输入您的身份证,此时用户输入身份证,系统对身份证进行验证(和开户时输入的身份证是否一致)
    如果不存在提示用户输入的身份证不存在,请重新输入,直到用户输入正确的身份证后提示请输入您的密码,
    此时系统判断是否是开户时输入的密码,如果不是提示用户继续重新输入(最多三次机会)
    验证通过后系统将显示当前账户的信息并进入主菜单。
    用户姓名  您好
    您的余额是  XXX
    您的身份证是  XXX
    ************提示****************
    输入0:开户
    输入1:查询
    输入2:存款
    输入3:取款
    输入4:退出
    ********************************
    
    
    当用户输入2时,进入存款功能,系统提示:
    *******************
    你选择的是存款功能
    请输入您的身份证,此时用户需要输入存款的身份证,系统对身份证进行检测,如果不存在提示
    您输入的身份证不存在,请重新输入:
    当用户输入身份证正确时,提示输入密码:
    此时系统判断是否是开户时输入的密码,如果不是提示用户继续重新输入(最多三次机会)
    验证通过后系统将显示当前账户的信息
    ****************
    用户姓名  您好
    您的余额是  XXX  
    您的身份证是  XXX
    ***************
    此时要求用户输入存款金额,系统对金额进行判断,如果输入的数小于等于0则提示您输入的数据无效,系统自动退出!谢谢使用。
    返回主菜单
    import java.math.BigDecimal;
    import java.sql.SQLOutput;
    import java.util.Scanner;
    
    public class Test005 {
        private static String name;
        private static String num;
        private static int password;
    //    private static int sum=100;
        private static boolean l2;
        private static BigDecimal sum=new BigDecimal(100);
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            while(true){
                ssout();
                System.out.println("请输入序号");
                int i=scanner.nextInt();
                if (i==0){
                    System.out.println("您选择的是开户");
                    account();
                    continue;
                }
                if (i==1){
                    System.out.println("您选择的是查询");
                    select();
                    continue;
                }
                if (i==2){
                    System.out.println("您选择的是存款");
                    add();
                    continue;
                }
                if (i==3){
                    System.out.println("取款");
                    sub();
                    continue;
                }
                if (i==4){
                    System.out.println("退出");
                    return;
                }
                if (i!=1&&i!=2&&i!=3&&i!=4){
                    System.out.println("输入错误重新输入");
                    continue;
                }
            }
        }
    
        public static void ssout(){
            System.out.println("************提示***********");
            System.out.println("输入0:开户");
            System.out.println("输入1:查询");
            System.out.println("输入2:存款");
            System.out.println("输入3:取款");
            System.out.println("输入4:退出");
            System.out.println("**************************");
        }
        public static void account(){
            Scanner scanner=new Scanner(System.in);
    
            System.out.println("请输入您的姓名:");
            name=scanner.next();
            System.out.println("请输入您的身份证号:");
            num=scanner.next();
            int i=num.length();
            if (i!=18){
                System.out.println("身份证号输入错误,返回上一级");
                return;
            }
            System.out.println("请输入您的密码:(密码为6为纯数字)");
            password=scanner.nextInt();
            String s=password+"";
            int test=s.length();
            if (test!=6){
                System.out.println("密码输入错误,返回上一级");
                return;
            }
            System.out.println("开户成功");
        }
        public static void select(){
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入您的身份证,系统将对您的身份践行验证:");
            boolean l1=true;
            while(l1) {
                String testNum = scanner.next();
                if (testNum.equals(num)) {
                    for (int i = 0; i <= 3; i++) {
                        if(i==3){
                            System.out.println("输入错误过多,退出程序");
                            l2=false;
                            return;
                        }
                        System.out.println("输入密码,共有三次机会,第"+(i+1)+"次");
                        String testName=scanner.next();
                        String s=password+"";
                        if(testName.equals(s)){
                            System.out.println(name+"您好");
                            System.out.println("您的余额是"+sum);
                            System.out.println("您的身份证是"+num);
                            return;
                        }else {
                            System.out.println("输入错误");
                            continue;
                        }
                    }
                } else {
                    System.out.println("error输入错误,重新输入");
                    continue;
                }
            }
        }
        public static void add(){
            Scanner scanner=new Scanner(System.in);
            l2=true;
            select();
            if (l2==false) return;
            System.out.println("****************");
            System.out.println("输入存款金额");
            int i=scanner.nextInt();
            if (i<0){
                System.out.println("无效,自动退出");
                return;
            }else {
                sum=sum.add(BigDecimal.valueOf(i));
            }
        }
        public static void sub(){
            Scanner scanner=new Scanner(System.in);
            l2=true;
            select();
            if (l2==false) return;
            System.out.println("****************");
            System.out.println("输入取款金额");
            int i=scanner.nextInt();
            int s= sum.intValue();
            if (i<0||i>s){
                System.out.println("无效,自动退出");
                return;
            }else {
                sum=sum.subtract(BigDecimal.valueOf(i));
                System.out.println("钱你是拿不到的,但是余额会扣 [/奸笑] ");
                System.out.println("余额:"+sum);
            }
        }
    }

    功能全部完成

    关于bigdecimal

    涉及到钱必须用Bigdecimal不然会被劝退的

    这周就没啥难度了

  • 相关阅读:
    DataTablez转List对象效率慢的问题.
    Oracle 删除重复数据
    1.layui 添加旋转等待, 2.div里面加载HTML页面
    layui-table JSON.stringify()序列化出来的不同行数据类型错误.导致后台转成表格的时候出错.(常用)
    0基础学MVC课程
    构造函数的执行顺序
    html控件自动点 “加号”添加 多个附件
    C#委托之个人理解 转自 loose_went
    一步一步学Linq to sql系列文章 转lovecherry
    使用AOP 使C#代码更清晰 转yanghua_kobe
  • 原文地址:https://www.cnblogs.com/springxian/p/13370879.html
Copyright © 2020-2023  润新知