本文将介绍一个使用Java语言实现的简单用户注册登录系统,并重点分析如何解决重复注册的问题。

package zy2;
import java.util.Scanner;
public class UserDaoImpl implements IUserDao {
    public String UserName1;//定义用户名变量
    public String UserPassword1;//密码变量
    public int count1 = 0;//密码设置次数
    public int count2 = 0;//登录次数
    public int count3 = 0;//密码错误次数
    public int count4 = 0;//重置密码次数
    public int count5 = 0;//成功登录
    public void AddUser() {    //添加用户(注册功能)
        System.out.println('^^^^^^^^^^^^^^^^注册界面^^^^^^^^^^^^^^^^');
        System.out.println('您还未注册,请先进行注册');
        Scanner scanner1 = new Scanner(System.in);
        System.out.print('请输入您的用户名称:');
        User.User = scanner1.nextLine();

        System.out.print('请输入您的用户生日:');
        User.Birthday = scanner1.nextLine();

        while (count1 <= 3) {
            System.out.print('请输入用户密码:');
            User.Password = scanner1.nextLine();

            System.out.print('请确认用户密码:');
            User.ConfirmPassword = scanner1.nextLine();
//确认二次输入密码
            if (User.ConfirmPassword.equals(User.Password)) {
                System.out.println('
密码设置成功,请重新登录!');
                System.out.println('正在跳转中,请稍后!');
                FindUser();//跳转登录界面

            } else {
                System.out.println('密码前后设置不一致,请重新设置!');
                count1 = count1 + 1;
            }
        }
    }

    public void FindUser() {    //查找用户(登录功能)
        while (count2 <= 3) {
            System.out.println('****************登录界面*****************');
            System.out.print('用户登录名:');
            Scanner scanner2 = new Scanner(System.in);
            String UserName2 = scanner2.nextLine();//获取用户输入的用户名
            if (UserName2.equals(User.User)) {//判断用户名是否存在
                System.out.println('✔');

                System.out.print('用户密码:');
                String UserPassword2 = scanner2.nextLine(); //获取用户输入的密码

                if (User.Password.equals(UserPassword2)) {//判断密码是否正确
                    System.out.println('✔');
                    System.out.println('登陆成功!');
                    System.out.println('++++++++++++++++用户信息++++++++++++++++');
                    System.out.println('  用户名:'+User.User);
                    System.out.println('  生  日:'+User.Birthday);
                    System.out.println('+++++++++++++++++++++++++++++++++++++++');
                    count2=4;//跳出循环
                    count1=4;

                } else {
                    System.out.println('密码错误!请重新输入');
                    count2 = count2 + 1;
                    count3 = count3 + 1;
                }
                if(count3==4){
                    System.out.println('输入次数过多,请稍后再试');
                }
            } else {
                System.out.print('查无此用户!请重新输入,注册账号请输入1,重新登录按任意键>>>');
                Scanner Again=new Scanner(System.in);
                String AgainNumber=Again.nextLine();
                if(AgainNumber.equals('1')){
                    AddUser();//跳转到注册界面
                }else {
                    FindUser(); //重新跳转到登录界面
                }
            }
            System.out.println('
');
        }
    }
    public void ResetPassword(){    //用户(重置密码)
        while (count4 <= 3) {
            System.out.println('================密码重置===============');
            System.out.print('用户登录名:');
            Scanner scanner3 = new Scanner(System.in); //获取用户输入的用户名
            String UserName3 = scanner3.nextLine();//判断用户名是否存在
            if (UserName3.equals(User.User)) {
                System.out.print('请输入旧的密码:');
                String UserPassword3 = scanner3.nextLine();//获取用户输入的旧密码
                if (UserPassword3.equals(User.Password)) {//判断旧密码是否正确
                    System.out.print('验证通过,请输入新的密码:');
                    String UserPassword4 = scanner3.nextLine();//获取用户输入的新密码
                    System.out.print('请确认用户新的密码:');
                    String UserPassword4Confirm = scanner3.nextLine();//获取用户确认的新密码
                    if (UserPassword4Confirm.equals(UserPassword4)) {//二次确认密码
                        User.Password=UserPassword4Confirm;
                        System.out.println('已更换为新的密码!请重新登录!');
                        count2 =0; //重置计数器2
                        count3 =0; //重置计数器3
                        count4 =4; //跳出循环
                        while (count2 <= 3) {
                            System.out.println('****************登录界面*****************');
                            System.out.print('用户登录名:');
                            Scanner scanner2 = new Scanner(System.in);
                            String UserName2 = scanner2.nextLine();
                            if (UserName2.equals(User.User)) {
                                System.out.println('✔');

                                System.out.print('用户密码:');
                                String UserPassword2 = scanner2.nextLine();

                                if (User.Password.equals(UserPassword2)) {
                                    System.out.println('✔');
                                    System.out.println('登陆成功!');
                                    System.out.println('++++++++++++++++用户信息++++++++++++++++');
                                    System.out.println('  用户名:'+User.User);
                                    System.out.println('  生  日:'+User.Birthday);
                                    System.out.println('+++++++++++++++++++++++++++++++++++++++');
                                    count2=4;
                                    count1=4;
                                    count5=1;//记录重置密码成功后登录次数

                                } else {
                                    System.out.println('密码错误!请重新输入');
                                    count2 = count2 + 1; //计数器加1
                                    count3 = count3 + 1; //计数器加1
                                }
                                if(count3==4){
                                    System.out.println('输入次数过多,请稍后再试');
                                }
                            } else {
                                System.out.print('查无此用户!请重新输入,注册账号请输入1,重新登录按任意键>>>');
                                Scanner Again=new Scanner(System.in);
                                String AgainNumber=Again.nextLine();
                                if(AgainNumber.equals('1')){
                                    AddUser(); //跳转到注册界面
                                }else {
                                    FindUser(); //重新跳转到登录界面
                                }
                            }
                            System.out.println('
');
                        }
                    }else {
                        System.out.println('密码前后设置不一致,请重新设置!');
                        count4 = count4 + 1;
                    }
                    if(count4==4 && count5==0){
                        System.out.println('输入次数过多,请稍后再试');
                    }
                }else{
                    System.out.println('旧密码验证不通过!请重新输入!');
                }
            }else {
                System.out.print('查无此用户!请重新输入,注册账号请输入1,重新登录按任意键>>>');
                Scanner Again=new Scanner(System.in);
                String AgainNumber=Again.nextLine();
                if(AgainNumber.equals('1')){
                    AddUser();//跳转到注册界面
                    ResetPassword();//重新跳转到重置密码界面
                }else {
                    count2=0; //重置计数器2
                    count3=0; //重置计数器3
                    FindUser(); //重新跳转到登录界面
                }
            }
        }
    }
}

代码分析:

  • FindUser() 方法 中判断用户输入的用户名是否与已注册用户一致,若一致则进行密码验证,否则提示用户输入或注册账号。
  • AddUser() 方法 实现注册功能,在注册成功后调用 FindUser() 方法跳转到登录界面。

解决重复注册问题:

FindUser() 方法中,当输入的用户名不存在时,会提示用户重新输入或者注册账号。如果用户选择注册账号,则调用 AddUser() 方法跳转到注册界面,避免了重复注册的问题。

需要注意的是,以上代码只是演示代码,实际应用中需要完善以下内容:

  • 数据持久化:将用户数据存储到数据库或文件中。
  • 错误处理:对用户输入进行验证和处理,防止输入错误导致程序异常。
  • 安全性:对密码进行加密,防止密码被盗取。
  • 界面设计:可以使用图形界面库,设计更加友好、易用的用户界面。

通过以上分析和改进,可以实现一个基本的用户注册登录系统,并有效避免重复注册的问题。

Java 用户注册登录系统实现 - 用户名验证与重复注册问题解决方案

原文地址: https://www.cveoy.top/t/topic/nXK9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录