用if、do...while、switch、写一个简单的超市会员随机幸运会员系统,包含注册,登录,抽奖。
作者:互联网
系统完成后如下:
我们经行分步进行编写:
【步骤 1】实现菜单的输出显示:输出“奖客富翁系统”菜单,选择菜单编号, 输出菜单信息。若编号选择错误,输出“您的输入有误”:
首先我们进行排版:
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
第一步先写判断:
if (A <= 0 || A > 3) {
System.out.println("输入错误");
} else {
第二步在进行数据选择:
可以用if (A == 1) {
} else if (A==2){
}......这样来写但是过于多,代码看起来较乱。
用switch来写会显得很清楚,代码一看就懂。
switch (A) {
case 1:
System.out.println("奖客富翁系统>注册");
break;
case 2:
System.out.println("奖客富翁系统>登录");
break;
case 3:
System.out.println("奖客富翁系统>抽奖");
break;
}
这样就很容易看明白了,但A = 1、2、3就进入switch,然后在switch内进行语句输出。
【步骤 2】实现循环执行功能:用户选择一项菜单并输出菜单信息后,系统询问是否继续?如果继续,则继续选择菜单,否则结束系统:
因此我们这一步进行do...while循环:
我们在整体样式前加上do得到如下:
import java.util.Scanner;
public class Dome08 {
public static void main(String[] args) {
Scanner ning = new Scanner(System.in);
String B = null ;//为什么这个要写外面。null“存放空值”也可以写陈String B = "";
//解释:写里面就无法让while(!B.equals("是"))读取。
do {
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
int A = ning.nextInt(); //菜单选择
if (A <= 0 || A > 3) { //选择的数字判断
System.out.println("输入错误");
} else {
switch (A) { //switch内进行选择
case 1:
System.out.println("奖客富翁系统>注册");
break;
case 2:
System.out.println("奖客富翁系统>登录");
break;
case 3:
System.out.println("奖客富翁系统>抽奖");
break;
}
}System.out.print("是否结束:");//给出结束语句选择
B = ning.next(); //当给出是跳到while外,当给出否继续循环
} while (!B.equals("是"));
System.out.println("系统退出,谢谢使用。");
}
}
【步骤 3】实现注册功能:用户选择注册菜单,进入注册界面。系统提示用户输入用户名和密码,系统产生4位随机数作为卡号。注册成功,显示注册信息:
这一步我们需要在case 1:一.内进行添加代码。按提目来我们在类名前进行随机数导包,导包范围为1000~9999.因为本题为四位数。
二.这一步之后的定义数据类型全部写在do之上String C = null,D = null;
System.out.println("请填写个人注册信息:");
System.out.print("用户名:");
C = ning.next();
System.out.print("用户密码:");
D = ning.next();
System.out.println("会员卡号:"+E);
然后我们在switch外进行打印排版演示如下:
import java.util.Scanner;
import java.util.Random;
public class Dome08 {
public static void main(String[] args) {
Scanner ning = new Scanner(System.in);
String B = null ;//为什么这个要写外面。null“存放空值”也可以写陈String B = "";
//解释:写里面就无法让while(!B.equals("是"))读取。
Random yun = new Random();
int E = yun.nextInt(9999)+1000;
do {
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
int A = ning.nextInt(); //菜单选择
if (A <= 0 || A > 3) { //选择的数字判断
System.out.println("输入错误");
} else {
switch (A) { //switch内进行选择
case 1:
System.out.println("奖客富翁系统>注册");
break;
case 2:
System.out.println("奖客富翁系统>登录");
break;
case 3:
System.out.println("奖客富翁系统>抽奖");
break;
}
}
System.out.println("用户名\t用户密码\t会员卡号");
System.out.println(C+"\t"+D+"\t"+E);
System.out.print("是否结束:");//给出结束语句选择
B = ning.next(); //当给出是跳到while外,当给出否继续循环
} while (!B.equals("是"));
System.out.println("系统退出,谢谢使用。");
}
}
【步骤 4】实现登录功能:注册成功后,用户选择“登录”菜单,进入登录界面。输入注册时的用户名和密码,登录成功,系统提示欢迎信息。如果用户名和密码输入 错误,提示用户继续输入,最多有 3 次输入机会,这一步较为难:
因为注册后我们所定义的值并未改变。所以直接选2.登录。将case 2:直接改成if(A==2)。由于用户名、用户密码、会员卡号只打印一次,我们将这两句移到case 1:然后在用if判断接下来是否继续。继续也就意味着你选了2.登录。登录输入三次因此我们还要定义一个do....while循环接收输入的用户名与密码,并进行判断是否输入正确。最后在switch外判断是否等于三次等于三次强制结束演示如下:
import java.util.Scanner;
import java.util.Random;
public class Dome08 {
public static void main(String[] args) {
Scanner ning = new Scanner(System.in);
String B = null ;//为什么这个要写外面。null“存放空值”也可以写成String B = "";
//解释:写里面就无法让while(!B.equals("是"))读取。
Random yun = new Random();
int E = yun.nextInt(9999)+1000;
String C = null,D = nullF = null,G = null;
do {
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
int A = ning.nextInt(); //菜单选择
if (A <= 0 || A > 3) { //选择的数字判断
System.out.println("输入错误");
} else {
switch (A) { //switch内进行选择
case 1:
System.out.println("奖客富翁系统>注册");
System.out.println("请填写个人注册信息:");
System.out.print("用户名:");
C = ning.next();
System.out.print("用户密码:");
D = ning.next();
System.out.println("会员卡号:"+E);
System.out.println("用户名\t用户密码\t会员卡号");
System.out.println(C+"\t"+D+"\t"+E);
System.out.print("是否结束:");//给出结束语句选择
B = ning.next(); //当给出是跳到while外,当给出否继续循环
if (!B.equals("是")) { //判断是否继续
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
A = ning.nextInt();
if (A == 2) { //选择2.登录
System.out.println("奖客富翁系统>登录");
int P = 0;
do {//由于要进行比较所以数据类型储存放在了最上面
System.out.println("输入用户名:");
F = ning.next();
System.out.println("输入用户密码:");
G = ning.next();
P++;//累加,直到加到第三次
if (!(C.equals(F) && D.equals(G))) {
System.out.println("输入错误");
}
} while (!(C.equals(F) && D.equals(G)) && !(P == 3));
//判断循环是否结束:当C不等于F 且 D不等于G 并且 P不等于3继续循环
if (P == 3) {//判断当P==3结束
break; //一直循环是否结束,知道选择是结束
} else {//否则登录成功
System.out.println("欢迎您:"+C+"登录成功");
break;
}
} else {//其它情况,这种情况较少
System.out.println("系统退出,谢谢使用。");
break;
}
}
case 3:
System.out.println("奖客富翁系统>抽奖");
break;
}
System.out.print("是否结束:");
B = ning.next();
}
} while (!B.equals("是"));
System.out.println("系统退出,谢谢使用。");
}
}
【步骤 5】实现幸运抽奖功能:登录成功后,用户名选择幸运抽奖菜单。输入会员卡号,系统生成 5 个 4 位随机数作为幸运数字。如果会员卡号是其中之一,则成为本日幸运会员:
第五步最为简单只要在case 3:中加入for循环五次判断是否与第一个随机数相等。
import java.util.Scanner;
import java.util.Random;
public class Dome08 {
public static void main(String[] args) {
Scanner ning = new Scanner(System.in);
String B = null ;//为什么这个要写外面。null“存放空值”也可以写成String B = "";
//解释:写里面就无法让while(!B.equals("是"))读取。
Random yun = new Random();
int E = yun.nextInt(9999)+1000;
int H = 0;
String C = null,D = null,F = null,G = null;
do {
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
int A = ning.nextInt(); //菜单选择
if (A <= 0 || A > 3) { //选择的数字判断
System.out.println("输入错误");
} else {
switch (A) { //switch内进行选择
case 1:
System.out.println("奖客富翁系统>注册");
System.out.println("请填写个人注册信息:");
System.out.print("用户名:");
C = ning.next();
System.out.print("用户密码:");
D = ning.next();
System.out.println("会员卡号:"+E);
System.out.println("用户名\t用户密码\t会员卡号");
System.out.println(C+"\t"+D+"\t"+E);
System.out.print("是否结束:");//给出结束语句选择
B = ning.next(); //当给出是跳到while外,当给出否继续循环
if (!B.equals("是")) { //判断是否继续
System.out.println("**************************************");
System.out.println("\t 欢迎进入奖客富翁系统");
System.out.println("\t\t1.注册");
System.out.println("\t\t2.登录");
System.out.println("\t\t3.抽奖");
System.out.println("**************************************");
System.out.print("请选择菜单:");
A = ning.nextInt();
if (A == 2) { //选择2.登录
System.out.println("奖客富翁系统>登录");
int P = 0;
do {//由于要进行比较所以数据类型储存放在了最上面
System.out.println("输入用户名:");
F = ning.next();
System.out.println("输入用户密码:");
G = ning.next();
P++;//累加,直到加到第三次
if (!(C.equals(F) && D.equals(G))) {
System.out.println("输入错误");
}
} while (!(C.equals(F) && D.equals(G)) && !(P == 3));
//判断循环是否结束:当C不等于F 且 D不等于G 并且 P不等于3继续循环
if (P == 3) {//判断当P==3结束
break; //一直循环是否结束,知道选择是结束
} else {//否则登录成功
System.out.println("欢迎您:"+C+"登录成功");
break;
}
} else {//其它情况,这种情况较少
System.out.println("系统退出,谢谢使用。");
break;
}
}
break;
case 3: //抽奖
System.out.println("奖客富翁系统>抽奖");
for (int i = 1; i <= 5; i++) {
H = yun.nextInt(9999)+1000;
System.out.print(H+"\t");
}
System.out.println();
if (E == H) {
System.out.println("恭喜你是幸运会员");
} else {
System.out.println("很遗憾你不是幸运会员");
}
break;
}System.out.print("是否结束:");
B = ning.next();
}
} while (!B.equals("是"));
System.out.println("系统退出,谢谢使用。");
}
}
最终演示结果为:
主要思路清晰,连贯性较强。
标签:do,奖客,登录,...,System,会员,ning,println,out 来源: https://blog.csdn.net/weixin_61880944/article/details/120630539