day06_练习

2 篇文章 0 订阅

练习

1 幸运抽奖练习

核心功能的实现

package cn.javasm.demo;

import java.util.Arrays;
import java.util.Scanner;

public class LuckyDemo {
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str;
        // 记录登录是否成功
        boolean loginFlag = false;
        do {
            // 显示菜单
            System.out.println("*****欢迎进入奖客富翁系统*****\n" +
                    "                1.注册\n" +
                    "                2.登录\n" +
                    "                3.抽奖\n" +
                    "*********************************");
            System.out.println("请选择要操作的功能:");
            // 获取用户输入的数字
            int choice = input.nextInt();

            switch (choice){
                case 1:
                    // 用户注册方法
                    userRegister(input);
                    break;
                case 2:
                    loginFlag = userLogin(input,loginFlag);
                    break;
                case 3:
                    lucky(loginFlag);
                    break;
                default:
                    System.out.println("您的输入有误!请重新输入");
                    break;
            }

            System.out.println("是否继续?y/n");
            str = input.next();
        } while ("y".equals(str));

        System.out.println("程序终止!");
    }

    private static void lucky(boolean loginFlag) {
        if (!loginFlag){
            System.out.println("请先登录!");
            return;
        }

        // 登录成功 可以开始抽奖  自动获得用户的所有信息
        // 随机生成5个4位的随机卡号
        int[] luckyNumArray = new int[5];
        for (int i = 0; i < luckyNumArray.length; i++) {
            luckyNumArray[i] = (int)(Math.random() * (10000 - 1000) + 1000);
        }
        System.out.println("进入的幸运卡号是" + Arrays.toString(luckyNumArray));

        for (int num : luckyNumArray) {
            if (num == randomNum){
                System.out.println(randomNum + "是今日的幸运会员,全场免费!");
                return;
            }
        }

        System.out.println(randomNum + "不是今日的幸运会员");
    }

    // 登录方法
    // 返回值如果是true,代表登录成功。返回false代表登录失败
    private static boolean userLogin(Scanner input,boolean loginFlag) {
        // 登录之前必须先注册
        if (regName == null){
            System.out.println("请先注册");
            return false;
        }
        if (loginFlag){
            System.out.println("已经登录成功了,是否切换账号登录?y/n");
            String str = input.next();
            if (!"y".equals(str)){
                return true;
            }
        }
        // 定义变量来记录用户登录的次数
        int count = 3;
        do {
            // 只要进入到dowhile循环中就说明已经开始登录了,就使用了一次机会
            count--;
            System.out.println("输入登录的用户名:");
            // 用户名
            String loginName = input.next();
            System.out.println("输入登录的密码:");
            // 密码
            String loginPwd = input.next();

            // 登录的用户名和密码要和注册时的用户名和密码进行比较
            if (loginName.equals(regName) && loginPwd.equals(regPwd)){
                System.out.println("登录成功,欢迎您!" + loginName);
                return true;
            }

            if (count == 0){
                System.out.println("3次机会使用完毕,退回主页面");
                return false;
            }

            System.out.println("登录失败,还剩下" + count + "次机会,请重新输入!");

        } while (true);
    }

    // 注册用户名
    public static String regName;
    // 注册密码
    public static String regPwd;
    // 生成的卡号
    public static int randomNum;
    // 注册方法
    private static void userRegister(Scanner input) {
        // 注册流程
        System.out.println("输入个人注册信息");
        System.out.println("输入注册的name:");
        // 获取用户的用户名
        regName = input.next();
        System.out.println("输入注册的密码:");
        regPwd = input.next();

        // 产生4位随机数字作为用户的卡号
        // [1000,10000)    随机数 = (int)(Math.random() * (最大值 - 最小值) + 最小值);
        randomNum = (int)(Math.random() * (10000 - 1000) + 1000);
        System.out.println("注册成功,信息如下:");
        System.out.println(regName + "\t" + regPwd + "\t" + randomNum);
    }
}

附加功能的实现

package cn.javasm.demo;

import javax.swing.*;
import java.util.Arrays;
import java.util.Scanner;

public class LuckyDemo {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str;
        // 记录登录是否成功
        boolean loginFlag = false;
        do {
            // 显示菜单
            System.out.println("*****欢迎进入奖客富翁系统*****\n" +
                    "                1.注册\n" +
                    "                2.登录\n" +
                    "                3.抽奖\n" +
                    "*********************************");
            System.out.println("请选择要操作的功能:");
            // 获取用户输入的数字
            int choice = input.nextInt();

            switch (choice){
                case 1:
                    // 用户注册方法
                    userRegister(input);
                    break;
                case 2:
                    loginFlag = userLogin(input,loginFlag);
                    break;
                case 3:
                    lucky(loginFlag);
                    break;
                default:
                    System.out.println("您的输入有误!请重新输入");
                    break;
            }

            System.out.println("是否继续?y/n");
            str = input.next();
        } while ("y".equals(str));

        System.out.println("程序终止!");
    }

    private static void lucky(boolean loginFlag) {
        if (!loginFlag){
            System.out.println("请先登录!");
            return;
        }

        // 登录成功 可以开始抽奖  自动获得用户的所有信息
        // 随机生成5个4位的随机卡号
        int[] luckyNumArray = new int[5];
        for (int i = 0; i < luckyNumArray.length; i++) {
            luckyNumArray[i] = (int)(Math.random() * (10000 - 1000) + 1000);
        }
        System.out.println("进入的幸运卡号是" + Arrays.toString(luckyNumArray));

        int randomNum = cardNoArray[userLoginIndex];

        for (int num : luckyNumArray) {
            if (num == randomNum){
                System.out.println(randomNum + "是今日的幸运会员,全场免费!");
                return;
            }
        }

        System.out.println(randomNum + "不是今日的幸运会员");
    }

    // 登录方法
    // 返回值如果是true,代表登录成功。返回false代表登录失败
    private static boolean userLogin(Scanner input,boolean loginFlag) {
        // 登录之前必须先注册
        if (nameArray[0] == null){
            System.out.println("请先注册");
            return false;
        }
        if (loginFlag){
            System.out.println("已经登录成功了,是否切换账号登录?y/n");
            String str = input.next();
            if (!"y".equals(str)){
                return true;
            }
        }
        // 定义变量来记录用户登录的次数
        int count = 3;
        do {
            // 只要进入到dowhile循环中就说明已经开始登录了,就使用了一次机会
            count--;
            System.out.println("输入登录的用户名:");
            // 用户名  gfs 123   bfm 456
            String loginName = input.next();
            System.out.println("输入登录的密码:");
            // 密码
            String loginPwd = input.next();

            for (int i = 0;i < index;i++){
                // 登录的用户名和密码要和注册时的用户名和密码进行比较
                if (loginName.equals(nameArray[i]) && loginPwd.equals(passArray[i])){
                    System.out.println("登录成功,欢迎您!" + loginName);
                    userLoginIndex = i;
                    return true;
                }
            }


            if (count == 0){
                System.out.println("3次机会使用完毕,退回主页面");
                return false;
            }

            System.out.println("登录失败,还剩下" + count + "次机会,请重新输入!");

        } while (true);
    }

    // 注册用户名
//    public static String regName;
//    // 注册密码
//    public static String regPwd;
//    // 生成的卡号
//    public static int randomNum;
    // 用户名数组
    public static String[] nameArray = new String[1];
    // 密码数组
    public static String[] passArray = new String[1];
    // 会员卡号数组
    public static int[] cardNoArray = new int[1];
    // 维护下一次注册的用户信息的索引  也是数组中实际元素的个数
    public static int index = 0;
    // 当前登录成功的用户的索引
    public static int userLoginIndex = 0;
    // 注册方法
    private static void userRegister(Scanner input) {
        // 可以允许多注册,保存多个用户注册的信息 -->维护多个用户信息 -->数组
        // 注册流程
        System.out.println("输入个人注册信息");
        // 获取用户的用户名  要保证用户名是唯一的
        String regName;
        do{
            System.out.println("输入注册的name:");
            regName = input.next();
            // 标记值  false代表没有重名,true代表重名了
            boolean b = false;
            for (int i = 0; i < index; i++) {
                if (regName.equals(nameArray[i])){
                    System.out.println("<<" + regName + ">>重名了,请重新输入");
                    b = true;
                    break;
                }
            }

            if (!b) break;

        }while (true);


        System.out.println("输入注册的密码");
        String regPass = input.next();
        // 系统产生4位随机数作为卡号
        int randomNum = (int)(Math.random() * (10000 - 1000) + 1000);
        // 保证数组的空间是够用的
        int length = nameArray.length;
        if (index >= length){
            // 需要扩容
            // 定义扩容的长度
            int newLength = (length + index) * 2;
            nameArray = Arrays.copyOf(nameArray,newLength);
            passArray = Arrays.copyOf(passArray,newLength);
            cardNoArray = Arrays.copyOf(cardNoArray,newLength);
        }

        // 把这些信息放入数组的同一个索引处
        nameArray[index] = regName;
        passArray[index] = regPass;
        cardNoArray[index++] = randomNum;

        System.out.println(regName + "\t" + regPass + "\t" + randomNum);
    }
}

2 补充

2.1 文档注释

注释分为:单行注释 多行注释 文档注释

文档注释是用在类和方法上面的,用来解释类和方法的含义
格式

/** 注释内容*/

方法的文档注释

/**
     * 这是一个登录方法
     * @param input     键盘录入的对象
     * @param loginFlag 是否登录成功的标记  true成功 false失败
     * @return 是否登录成功 true成功 false失败
     */
    private static boolean userLogin(Scanner input,boolean loginFlag) {

配置类的文档注释的模板

/**
 * @author gfs
 * @className ${NAME}
 * @date ${DATE} ${TIME}
 * @version 0.1
 * @since jdk11
 * @description
 */

在这里插入图片描述

在这里插入图片描述

生成java文档

在这里插入图片描述
在这里插入图片描述

2.2 断点调试

F7进入方法

F8下一行

F9跳到下一个断点

``java
/**

  • @author gfs
  • @className ${NAME}
  • @date ${DATE} ${TIME}
  • @version 0.1
  • @since jdk11
  • @description
    */



[外链图片转存中...(img-LFMla4iB-1702646203771)]

[外链图片转存中...(img-yP61ZXan-1702646203772)]





生成java文档
[外链图片转存中...(img-Ktlxp4O8-1702646203772)]

[外链图片转存中...(img-XdTYM7qk-1702646203772)]

## 2.2 断点调试

F7进入方法

F8下一行

F9跳到下一个断点





















  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值