模拟注册系统

发布于:2022-10-23 ⋅ 阅读:(353) ⋅ 点赞:(0)

模拟注册系统

  • 案例介绍

1.案例描述

模拟用户注册登录系统,当用户注册时,输入账号密码后显示注册成功,登录时输入账号密码显示登录成功。

2.运行结果

任务运行结果如图1所示。

 

图 1 运行结果

  • 案例思路

  1. 模拟用户登录系统的后端需要模拟账号密码的存储,根据账号的不可重复性和密码的可重复性可以联想到利用HashMap键值的存储方式来存储账号和密码。

  2. 前端用户注册登录系统用户可以选择的服务可以分为3个,注册,登录和找回密码,可以将这些方法封装到一个类中,类中包含账号密码属性。

  3. 在注册方法中如果用户输入的账号已经存在于HashMap中,就会提示用户账号已经存在,如果不存在那么就注册成功并将用户输入的账号密码存储到HashMap中。登录方法中,判断用户输入的账号是否存在于HashMap中,如果不存在则显示账号不存在,如果存在继续判断用户输入的密码是否与账号对应,对用则显示登录成功,不对应则显示,密码错误。找回密码很简单,只需根据用户输入的账号将密码提取出来,如果HashMap中没有这个账号,则显示账号不存在。

  4. 再创建一个方法去运行这些方法,可以利用if,switch语句实现用户选择结构,和使用sleep函数使模拟系统更加逼真。最后创建主函数实例化对象运行程序。

  • 案例实现

import java.util.*;
​
public class Register {
    HashMap accountNumber = new HashMap();
    //利用HashMap的不可重复性建立一个HashMap用来存贮账号和密码,HashMap的键是账号,值是密码。
​
​
    Register() {
        //无参构造方法
    }
    public int login(String id, String passwd) {    //登录方法 ,返回值为int类型
        if (!accountNumber.containsKey(id)) {     //判断accountNumber中是否存在id这个键 ,存在则为flase,不存在则为true
            return 0;                           //返回0代表账号不存在
        } else if (accountNumber.get(id).equals(passwd) & accountNumber.containsKey(id)) {
            //判断accountNumber是否存id这个键和这个键对用的值是否与passwd相等
            return 1;                           //返回1代表登录成功
        } else return 2;                         //返回2代表密码错误
    }
    public String findBackPassward(String id) {   // 找回密码方法 ,返回值为密码
        if (accountNumber.containsKey(id))             //判断传入的参数id是否在accountNumber中存在
            return (String) accountNumber.get(id);     //存在则返回这个id键的值(密码)
        else return "----账号不存在----";                //返回错误提示
    }
​
    public boolean setUsername(String id, String passwd) {   //注册方法 ,返回ture或者false
        if (accountNumber.containsKey(id)) {        //判断accountNumber这个HashMap中是否已经有了id这个键
            return false;                            // 注册失败,返回false
        } else {
            this.accountNumber.put(id, passwd);
            // accountNumber中不存在id这个键,就用put方法将id和passwd装入accountNumber中
            return true;                            //注册成功,返回ture
        }
    }
​
​
​
    public void run()throws InterruptedException{
        System.out.println("***********************************\n********欢迎来到IDEA登录平台*********\n***********************************");
        Register register = new Register();
        Thread T=new Thread();
        Scanner scan = new Scanner(System.in);
        boolean symbol1 = true;
        while (symbol1) {
            System.out.println("请选择功能:\n1.账号登录---2.找回密码---3.注册账号---4.退出界面");
            int choice = scan.nextInt();   //choice标志选择哪种服务类型
            switch (choice) {
                case 1:
                    boolean symbol2 = true;
                {
                    while (symbol2) {
                        System.out.println("账号:");
                        String username1 = scan.next();
                        System.out.println("密码:");
                        String password1 = scan.next();
                        if (register.login(username1, password1) == 0) {
                            System.out.println("该账号不存在,请输入666退出或者输入任意值数字重新登录:");
                            int input = scan.nextInt();
                            if (input == 666) symbol2 = false;
                        } else if (register.login(username1, password1) == 1) {
                            System.out.println("登录成功!(输入666退出登录)");
                            int input = scan.nextInt();
                            if (input == 666)
                                {symbol2 = false;
                                    System.out.println("退出中...");T.sleep(2000);
                                    }
​
                        } else System.out.println("密码错误,请重新登录-");
                    }
                }
                break;
                case 2:
                    System.out.println("请输入您要找回密码的账号:");
                    String findpassword = scan.next();
                    System.out.println("您的密码是:\n" + register.findBackPassward(findpassword));
                    break;
                case 3:
                    boolean symbol3 = true;    //symbol3标志是否重新注册
                    while (symbol3) {
                        System.out.println("新账号:");
                        String username3 = scan.next();
                        System.out.println("密码:");
                        String password3 = scan.next();
                        if (register.setUsername(username3, password3)) {
                            System.out.println("注册成功,快去登录吧!!!");
                            T.sleep(2000);
                            symbol3 = false;
                        } else {
                            System.out.println("该账号已存在,请输入666退出或者输入任意值重新注册:");
                            int input = scan.nextInt();
                            if (input == 666) symbol3 = false;
                            System.out.println("请稍后...");
                            T.sleep(3000);
                        }
                    }
                    break;
                case 4:
                    symbol1 = false;
                    System.out.println("退出成功!");
                    break;
            }
        }
    }
}
class Test{
    public static void main(String[] args) throws InterruptedException {
        Register User=new Register();
        User.run();
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到