T1、编程设计理工超市功能菜单并完成注册和登录功能的实现。
显示完菜单后,提示用户输入菜单项序号。当用户输入<注册>和<登录>菜单序号时模拟完成注册和登录功能,最后提示注册/登录成功并显示注册信息/欢迎XXX登录。当用户输入其他菜单项序号时,这输出“该功能暂未实现,请期待...”。要求利用无限循环让用户可以不断选择功能菜单,只有当用户输入<退出>菜单序号时才退出循环结束程序。
package com.cx.encap;
import java.util.Scanner;
public class Login {
    public static void main(String[] args) {
        //创建Scanner对象,用于输入
        Scanner input = new Scanner(System.in);
        String userName = "";//用户名
        String pwd = "";//密码
        boolean isRegister = false;//是否注册,false表示未注册
        while (true) {
            System.out.println("===================欢迎来到理工超市管理系统===================");
            System.out.println("1.用户注册    2.用户登录    3.浏览商品   4.查看商品详情");
            System.out.println("5.加入购物车  6.查看购物车  7.结算       8.退出");
            System.out.println("==============================================================");
            System.out.print("请输入菜单项序号:");
            int choice = input.nextInt();
            switch (choice) {
                case 1:  //注册
                    //用户注册提示信息
                    System.out.println("用户注册");
                    //输入用户名
                    System.out.print("请输入用户名:");
                    userName = input.next();
                    //输入密码
                    System.out.print("请输入密码:");
                    pwd = input.next();
                    //再次输入密码
                    System.out.print("请再次输入密码:");
                    String cfmPwd = input.next();
                    //判断两次输入的密码是否一致,如不一致需重新输入
                    while (!cfmPwd.equals(pwd)) {
                        //提示信息:两次输入的密码不一致
                        System.out.println("两次密码输入不同,请重新输入:");
                        //重新输入密码
                        System.out.print("请输入密码:");
                        pwd = input.next();
                        System.out.print("请再次输入密码:");
                        cfmPwd = input.next();
                    }
                    //checkNumber为验证码  一个随机四位数
                    //0=<Math.random()<1  double类型
                    //0=<Math.random()*9000<9000  double类型
                    //0=<(int)(Math.random()*9000)=<8999  int类型
                    //1000=<(int)(Math.random()*9000)+1000=<9999  int类型
                    int checkNumber = (int) (Math.random() * 9000) + 1000;
                    //提示信息:请输入验证码
                    System.out.println("请输入验证码:" + checkNumber);
                    //输入验证码
                    int checkedNum = input.nextInt();
                    //判断验证码是否正确
                    //若验证码错误,需重新输入验证码
                    while (checkNumber != checkedNum) {
                        //提示信息:验证码输入错误,请重新输入验证码
                        System.out.println("验证码输入错误,请重新输入验证码");
                        //提示信息:请输入验证码
                        checkNumber = (int) (Math.random() * 9000) + 1000;
                        System.out.println("请输入验证码:" + checkNumber);
                        //输入验证码
                        checkedNum = input.nextInt();
                    }
                    System.out.println("注册成功!");
                    isRegister = true;
                    continue;
                case 2:  //登录
                    System.out.println("用户登录");
                    //判断是否注册,如果未注册,请先注册再登录
                    //未注册时,isRegister=false
                    //!isRegister=true
                    if (!isRegister) {
                        System.out.println("请先注册再登录");
                    }
                    //isRegister=true时,表示已经注册
                    //三次验证登录
                    for (int i = 0; i < 3; i++) {
                        //提示信息:请输入登录的用户名
                        System.out.print("请输入登录的用户名:");
                        String uName = input.next();
                        //提示信息:请输入登录的密码
                        System.out.print("请输入登录的密码:");
                        String uPwd = input.next();
                        //判断用户名和密码是否正确
                        if (uName.equals(userName) && uPwd.equals(pwd)) {
                            System.out.println("登录成功!欢迎" + userName + "登录!");
                            break;//登录成功,则跳出for循环
                        } else {
                            if (i < 2) {
                                System.out.println("用户名或者密码错误,您还有" +
                                        (2 - i) + "次机会,请重新输入");
                            } else {
                                System.out.println("三次均输入错误用户名或密码");
                            }
                        }
                    }
                    continue;
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                    System.out.println("该功能暂未实现,请期待...");
                    continue;
                case 8:  //退出
                    System.out.println("退出");
                    System.exit(0);//退出程序
                default:
                    System.out.println("输入错误,请重新输入...");
                    continue;
            }
        }
    }
}




















