La collection Java réalise un enregistrement et une connexion simples de l'utilisateur et joue à la démo du jeu de devinettes

Répertoire des articles de la série

La collection Java réalise un enregistrement et une connexion simples des utilisateurs et joue à la démo du jeu de devinettes
Java utilise IO pour réaliser un enregistrement et une connexion simples des utilisateurs et joue à la démo du jeu de devinettes



1. Scénario du projet

Utilisez simplement la collection Java pour réaliser pleinement le cas de l'enregistrement et de la connexion de l'utilisateur et jouez à un petit jeu de devinettes.
(Jeu de devinettes de nombres : le système génère au hasard un nombre entre 1 et 100 que l'utilisateur doit deviner, et donne des invites pour deviner grand, petit et le nombre de suppositions correctes)


2. Analyse

Quels sont les cours ?
– Classe d'utilisateur
– Classe de test

Que contient chaque classe ?
–Classe utilisateur :
–Variable membre : nom d'utilisateur (nom d'utilisateur), mot de passe (mot de passe)
–Méthode de construction : pas de construction de paramètre
–Méthode membre : getXxx() / setXxx()
–Classe de test :
méthode –main()

Quelle est la relation entre les classes et les classes?
– Créer des objets de classe d'opération d'utilisateur et de classe de description de base d'utilisateur dans la classe de test et utiliser leurs fonctions.

Sous-package par fonction
– package de classe de description de base utilisateur pojo
– interface d'opération utilisateur dao
– package de classe d'opération utilisateur dao.impl
– classe de test utilisateurtest

La structure du répertoire du projet est illustrée dans la figure
Structure du répertoire du projet


Trois, réalisez

Classe de description de base de l'utilisateur User.java

package pojo;

public class User {
    
    
    // 用户名
    private String username;
    // 密码
    private String password;

    public User() {
    
    
    }

    public String getUsername() {
    
    
        return username;
    }

    public void setUsername(String username) {
    
    
        this.username = username;
    }

    public String getPassword() {
    
    
        return password;
    }

    public void setPassword(String password) {
    
    
        this.password = password;
    }
}


Interface d'opération utilisateur UserDao.java

package dao;

import pojo.User;

/**
 * 这是针对用户进行操作的接口
 *
 * @author Y
 * @version V1.0
 *
 */

public interface UserDao {
    
    
    /**
     * 这是用户登录功能
     *
     * @param username
     *           用户名
     * @param password
     *            密码
     * @return 返回登录是否成功
     */
    public abstract boolean isLogin(String username, String password);

    /**
     *
     * @param user
     *           要注册的用户信息
     */
    public void regist(User user);
}


L'implémentation spécifique de la classe d'opération utilisateur UserDaoImpl.java

package dao.impl;

import dao.UserDao;
import pojo.User;

import java.util.ArrayList;

/**
 * 这是用户操作的具体实现类
 *
 * @author Y
 * @version V1.0
 */

public class UserDaoImpl implements UserDao {
    
    
    // 为了让多个方法能够使用同一个集合,就把集合定义为成员变量
    // 为了不让外人看到,用private
    // 为了让多个对象共享同一个成员变量,用static
    private static ArrayList<User> array = new ArrayList<User>();

    @Override
    public boolean isLogin(String username, String password) {
    
    
        // 遍历集合,获取每一个用户,并判断该用户的用户名和密码是否和传递过来的匹配
        boolean flag = false;

        for (User u: array) {
    
    
            if (u.getUsername().equals(username) && u.getPassword().equals(password)) {
    
    
                flag = true;
                break;
            }
        }

        return flag;
    }

    @Override
    public void regist(User user) {
    
    
        array.add(user);
    }
}


Devinez le jeu de nombres GuessNumber.java

package game;

import java.util.Scanner;

/**
 * 猜数字小游戏
 *
 * @author Y
 * @version V1.0
 *
 */

public class GuessNumber {
    
    
    private GuessNumber() {
    
    
    }

    public static void start() {
    
    
        // 产生一个随机数
        int number = (int) (Math.random() * 100) + 1;

        // 定义一个统计变量
        int count = 0;

        while (true) {
    
    

            // 键盘录入一个数据
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数据(1-100):");
            int guessNumber = sc.nextInt();

            count++;

            // 判断
            if (guessNumber > number) {
    
    
                System.out.println("你猜的数据" + guessNumber + "大了");
            } else if (guessNumber < number) {
    
    
                System.out.println("你猜的数据" + guessNumber + "小了");
            } else {
    
    
                System.out.println("恭喜你" + count + "次就猜中了");
                break;
            }
        }
    }
}


Implémentation de la classe de test utilisateur UserTest.java

import dao.UserDao;
import dao.impl.UserDaoImpl;
import game.GuessNumber;
import pojo.User;

import java.util.Scanner;

/**
 * 用户测试类
 *
 * @author Y
 * @version V1.0
 *
 */
public class UserTest {
    
    
    public static void main(String[] args) {
    
    
        // 为了能够回到首界面
        while (true) {
    
    
            // 欢迎界面给出选择项
            System.out.println("------------欢迎光临------------");
            System.out.println("1登录");
            System.out.println("2注册");
            System.out.println("3退出");
            System.out.println("请输入你的选择");
            // 键盘录入选择,根据选择做不同的操作
            Scanner sc = new Scanner(System.in);
            String choiceString = sc.nextLine();

            // switch语句的多个地方要使用,因此定义在外面
            // 多态
            UserDao ud = new UserDaoImpl();

            switch (choiceString) {
    
    
                case "1":
                    // 登录界面,输入用户名和密码
                    System.out.println("------------登录界面------------");
                    System.out.println("请输入用户名:");
                    String username = sc.nextLine();
                    System.out.println("请输入密码:");
                    String password = sc.nextLine();

                    // 调用登录功能
                    boolean flag = ud.isLogin(username, password);
                    if (flag) {
    
    
                        System.out.println("登录成功!");

                        System.out.println("你玩猜数字游戏吗?y/n");
                        while (true) {
    
    
                            String resultString = sc.nextLine();
                            if (resultString.equalsIgnoreCase("y")) {
    
    
                                // 玩猜数字游戏
                                GuessNumber.start();
                                System.out.println("你还玩吗?y/n");
                            } else {
    
    
                                break;
                            }
                        }
                        System.out.println("谢谢使用,欢迎下次再来!");
                        System.exit(0);
                        // 这里如果用break,结束的是switch
                    } else {
    
    
                        System.out.println("用户名或密码错误,登录失败");
                    }
                    break;
                case "2":
                    // 欢迎界面,请输入用户名和密码
                    System.out.println("------------注册界面------------");
                    System.out.println("请输入用户名:");
                    String newUsername = sc.nextLine();
                    System.out.println("请输入密码:");
                    String newPassword = sc.nextLine();

                    // 把用户名和密码封装到一个对象中
                    User user = new User();
                    user.setUsername(newUsername);
                    user.setPassword(newPassword);

                    // 调用注册功能
                    // 具体类使用
                    ud.regist(user);
                    System.out.println("注册成功!");
                    break;
                case "3":
                default:
                    System.out.println("谢谢使用,欢迎下次再来!");
                    System.exit(0);
                    break;
            }
        }
    }
}


4. Démonstration

Trois utilisateurs enregistrés : Zhao Meng, Yu Wenwen, Liu Lian
Enregistrement de l'utilisateur

L'utilisateur Zhao Meng se connecte, choisit de jouer ou non au jeu de devinettes de nombres, choisit de jouer
Se connecter
au jeu de devinettes de nombres
devinez le nombre
et se termine
Finition


Les références:

Reportez-vous à la vidéo JavaSE de Liu Yi

Je suppose que tu aimes

Origine blog.csdn.net/qq_39691492/article/details/130000498
conseillé
Classement