[案例 2-6] 登录注册

案例需求:

(1)登录功能,用户输入正确的账号密码可成功登录.

(2)注册功能,输入用户名和密码进行注册.

(3)查看功能,查看所有的用户名和密码.

(4)退出功能,退出系统.

用户可以输入对应的编号进行相应的功能操作.例如,输入"2"进入注册功能,输出用户名和密码进行注册.


首先创建一个登录类:

在里面定义成员变量账号和密码,在创建一个无参构造方法

public class DengLu {
    // 定义账号和密码
    private String zhangHao;
    private String miMa;

    // 创建一个无参构造方法
    public DengLu(){

    }
    public String getZhangHao(){
        return zhangHao;
    }
    public void setZhangHao(String zhangHao){
        this.zhangHao = zhangHao;
    }
    public String getMiMa(){
        return miMa;
    }
    public void setMiMa(String miMa){
        this.miMa = miMa;
    }
}

然后创建登录界面:


import java.util.ArrayList;
import java.util.Scanner;

/**
 * 2022/1/17
 */
public class DengLuCeShi {
    public static void main(String[] args) {
        // 定义集合
        ArrayList<DengLu> array = new ArrayList<>();
        // 定义一个while循环使整体循环
        while (true){
            System.out.println("--------欢迎使用用户登录注册系统--------");
            System.out.println("1,登录功能");
            System.out.println("2,注册功能");
            System.out.println("3,查看功能");
            System.out.println("4,退出");
            System.out.println("请选择功能:");

            // 用户输入
            Scanner in = new Scanner(System.in);
            String s = in.nextLine();
            switch (s){
                case "1":
                    // 调用登录方法
                    DengLu(array);
                    break;
                case "2":
                    // 调用注册方法
                    ZhuCe(array);
                    break;
                case "3":
                    // 调用查看方法
                    ChaKan(array);
                    break;
                case "4":
                    System.out.println("感谢使用!");
                    System.exit(0); // JVM退出
                default:
                    System.out.println("正在努力开发中~~~~~");
            }
        }
    }

定义登录方法:

// 登录功能
    public static void DengLu(ArrayList<DengLu> array){
        // 判断是否集合中是否有账号
        if (array.size() == 0){
            System.out.println("暂无账号!");
            return;
        }
        // 输入账号密码
        Scanner in = new Scanner(System.in);
        System.out.println("请输入账号:");
        String zhangHao = in.nextLine();
        System.out.println("请输入密码:");
        String miMa = in.nextLine();

        // 遍历集合
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            // 判断账号密码是否正确
            if (d.getZhangHao().equals(zhangHao) && d.getMiMa().equals(miMa)){
                System.out.println("登录成功!");
            }else{
                System.out.println("请检查账号密码是否正确!");
            }
        }
    }

定义注册方法:

这里定义了一个boolean方法来判断注册的账号是否重复

 // 注册功能
    public static void ZhuCe(ArrayList<DengLu> array) {
        Scanner in = new Scanner(System.in);
        // 将zhu定义在外面,使外面元素也可以被访问到
        String zhu;
        // 定义循环,如果账号重复,则循环再次输入
        while (true) {
            // 输入要注册的账号
            System.out.println("请输入要注册账号:");
            zhu = in.nextLine();
            boolean b = PanDuan(array , zhu);
            // b是可变的,所以当他是true则返回账号重复,是false则退出循环
            if (b){
                System.out.println("账号重复,请重新输入!");
            }else{
                break;
            }
        }
        // 将mi定义在循环外,使外面的内容也能访问到
        String mi;
        // 定义一个循环,判断两次密码是否一致,不一致则提示继续输入
        while (true) {
            System.out.println("请输入密码:");
            mi = in.nextLine();
            System.out.println("请再次输入密码:");
            String mi2 = in.nextLine();
            // 判断两次密码是否一致,一致的话跳出循环
            if (mi.equals(mi2)) {
                break;
                // 不一致则循环
            }else{
                System.out.println("两次密码不一致,请重新输入!");
            }
        }
        // 创建对象,将账号密码存进去
        DengLu d = new DengLu();
        d.setZhangHao(zhu);
        d.setMiMa(mi);
        // 将元素存入集合中
        array.add(d);
        // 输出提示
        System.out.println("注册成功!");
    }
    // 判断账号是否存在
    public static boolean PanDuan(ArrayList<DengLu> array , String zhang){
        boolean flag = false;
        // 遍历集合,判断是否有相同的账号
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            // 如果集合中有这个账号,则返回true
            if (d.getZhangHao().equals(zhang)){
                flag = true;
                // 满足条件之后终止循环
                break;
            }
        }
        return flag;
    }

定义查看方法:

 // 查看功能
    public static void ChaKan(ArrayList<DengLu> array){
        // 判断集合中是否有内容
        if (array.size() == 0){
            System.out.println("暂无内容!");
            return;
        }
        // 使用制表符使格式好看点
        System.out.println("账号\t\t密码");
        // 遍历集合获取集合中的元素
        for (int i = 0 ; i < array.size() ; i++){
            DengLu d = array.get(i);
            System.out.println(d.getZhangHao() + "\t" + d.getMiMa());
        }
    }
}

最后看看输出结果:

到这里也就做完了.

代码基本上都有注释.

有问题欢迎评论区纠正.

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我了解了您的需求。下面是一个用ThinkPHP6框架实现注册登录的案例示例: 1. 创建数据库 首先,需要在MySQL中创建一个名为 "demo" 的数据库,并在该数据库中创建一个名为 "users" 的表,用于存储用户注册信息。 CREATE DATABASE demo; CREATE TABLE `users` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT '', `password` varchar(255) DEFAULT '', `email` varchar(255) DEFAULT '', `created_at` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 2. 创建控制器和模型 在ThinkPHP6框架中,使用命令行工具可以快速生成控制器和模型。在项目根目录下打开命令行窗口,执行以下命令: php think make:controller User php think make:model User 这样,就创建了名为 "User" 的控制器和模型。在控制器中,可以编写用户注册和登录的相关代码。 3. 用户注册 在User控制器中,添加注册方法如下: public function register() { $data = $this->request->param(); $validate = new \app\validate\User(); if (!$validate->scene('register')->check($data)) { return json(['code' => 0, 'msg' => $validate->getError()]); } $user = new \app\model\User(); $user->username = $data['username']; $user->password = md5($data['password']); $user->email = $data['email']; $user->save(); return json(['code' => 1, 'msg' => '注册成功']); } 在上面的代码中,首先从请求中获取用户的注册信息,然后使用验证器验证用户输入的数据格式是否正确。如果验证不通过,则返回相应的错误信息;如果验证通过,则将用户信息保存到数据库中,并返回注册成功的提示信息。 4. 用户登录 在User控制器中,添加登录方法如下: public function login() { $data = $this->request->param(); $validate = new \app\validate\User(); if (!$validate->scene('login')->check($data)) { return json(['code' => 0, 'msg' => $validate->getError()]); } $user = \app\model\User::where([ 'username' => $data['username'], 'password' => md5($data['password']) ])->find(); if ($user) { session('user', $user); return json(['code' => 1, 'msg' => '登录成功']); } else { return json(['code' => 0, 'msg' => '用户名或密码错误']); } } 在上面的代码中,首先从请求中获取用户的登录信息,然后使用验证器验证用户输入的数据格式是否正确。如果验证不通过,则返回相应的错误信息;如果验证通过,则从数据库中查找与用户输入的用户名和密码匹配的记录,如果找到相应的用户,就将用户信息保存到session中,并返回登录成功的提示信息;否则返回用户名或密码错误的提示信息。 5. 编写路由 在routes目录下的api.php文件中,添加如下路由: Route::post('register', 'user/register'); Route::post('login', 'user/login'); 这样就完成了用ThinkPHP6框架实现注册登录的案例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈努力学JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值