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=trueif (!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;}}}
}