一周的学习结束
最终练习
程序开始运行输出到控制台: ************提示**************** 输入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不然会被劝退的
这周就没啥难度了