其他分享
首页 > 其他分享> > 用if、do...while、switch、写一个简单的超市会员随机幸运会员系统,包含注册,登录,抽奖。

用if、do...while、switch、写一个简单的超市会员随机幸运会员系统,包含注册,登录,抽奖。

作者:互联网

系统完成后如下: 

 我们经行分步进行编写:

【步骤 1】实现菜单的输出显示:输出“奖客富翁系统”菜单,选择菜单编号, 输出菜单信息。若编号选择错误,输出“您的输入有误”:

首先我们进行排版:
        System.out.println("**************************************");
        System.out.println("\t    
欢迎进入奖客富翁系统");
        System.out.println("\t\t
1.注册");
        System.out.println("\t\t
2.登录");
        System.out.println("\t\t
3.抽奖");
        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