JAVA实验2:用户登录系统-UserLoginSystem

一、使用JAVA完成用户登录系统1.0 使用JAVA完成用户登录系统 阅读详情

登录系统 

package com.userlogin;

import java.util.Scanner;

public class LoginSystem {
    static int num = 0;        //创建用户的个数

    public static void main(String[] args){         //主函数
        User[] users = new User[10];
        Scanner input = new Scanner(System.in);
        boolean flag = true;

        while(flag){                                //功能实现
            System.out.print("0.退出程序\t");
            System.out.print("1.创建用户\t");
            System.out.print("2.用户登录\t");
            System.out.println("3.查看所有账户");
            System.out.println("请输入您要使用的功能:");
            int p = input.nextInt();
            switch(p){
                case(1):{
                    function1(users,input,true);        //功能1
                    break;
                }
                case(2):{
                    function2(users,input,true);        //功能2
                    break;
                }
                case(3):{
                    usersShow(users);                           //查看所有用户名
                    break;
                }
                case(0):
                default:flag = false;
            }
        }
    }

    public static void function1(User[] users,Scanner input,boolean flag_1){    //实现功能1
        while(flag_1){
            boolean flag_11,flag_12;
            flag_11 = flag_12 = true;
            String psd = "0";

            System.out.println("请输入你要创建的用户名:");
            String uname = input.next();
            try{
                cheekUsername(uname);
            }
            catch(Exception e){
                System.out.println(e.getMessage());
                continue;
            }
            while(flag_11){
                System.out.println("请输入密码:");
                psd = input.next();
                try{
                    cheekUserSetPassword(psd);
                }
                catch(Exception e){
                    System.out.println(e.getMessage());
                    continue;
                }
                flag_11 = false;
            }
            while(flag_12){
                System.out.println("确认密码:");
                try{
                    cheekUserSetPassword(psd,input.next());
                }
                catch(Exception e){
                    System.out.println(e.getMessage());
                    continue;
                }
                flag_12 = false;
            }
            users[num++] = new User(uname,psd);
            System.out.println("创建用户"+users[num-1].getUsername()+"成功!");
            System.out.println("是否继续创建用户?(1/是  0/否)");
            if(input.nextInt() == 0){
                flag_1 = false;
            }
        }
    }

    public static void function2(User[] users,Scanner input,boolean flag_2){    //实现功能2
        while(flag_2)
        {
            System.out.println("请输入用户名:");
            String uname = input.next();
            try{
                cheekUsername(uname);
            }
            catch(Exception e){
                System.out.println(e.getMessage());
                continue;
            }
            System.out.println("请输入密码:");
            String psd = input.next();
            try{
                cheekUserPassword(users,uname,psd);
            }
            catch(Exception e){
                System.out.println(e.getMessage());
                continue;
            }
            System.out.println("登录成功,欢迎"+uname+"回到LoginSystem!");
            flag_2 = false;
        }
    }

    public static void cheekUsername(String uname) throws UserLoginException{       //用户名是否符合要求,不符合抛出异常
        if(uname.length() < 6){
            throw new UserLoginException("用户名过短");
        }
        else if(uname.length() > 14){
            throw new UserLoginException("用户名过长");
        }
    }

    public static void cheekUserPassword(User[] users,String uname,String psd) throws UserLoginException{   //登录时密码是否符合要求,不符合抛出异常
        if(psd.length() > 16){
            throw new UserLoginException("密码输入过长");
        }
        if(psd.length() < 3){
            throw new UserLoginException("密码输入过短");
        }
        for(int i=0;i<num;i++){
            if(users[i].getUsername().equals(uname)){
                if(!users[i].getPassword().equals(psd)){
                    throw new UserLoginException("密码错误");
                }
                else{
                    return;
                }
            }
        }
        throw new UserLoginException("该用户不存在");
    }

    public static void cheekUserSetPassword(String psd) throws UserLoginException{      //创建用户时密码是否符合要求,不符合抛出异常
        if(psd.length() < 3){
            throw new UserLoginException("密码过短");
        }
        else if(psd.length() > 16){
            throw new UserLoginException("密码过长");
        }
    }

    public static void cheekUserSetPassword(String psd,String enpsd) throws UserLoginException{     //创建用户时确认密码是否符合要求,不符合抛出异常
        if(enpsd.length() < 3){
            throw new UserLoginException("密码过短");
        }
        else if(enpsd.length() > 16){
            throw new UserLoginException("密码过长");
        }
        else if(!psd.equals(enpsd)){
            throw new UserLoginException("两次输入密码不一致");
        }
    }

    public static void usersShow(User[] users){     //查看所有用户名
        for(int i=0;i<num;i++){
            System.out.println("用户"+(i+1)+":"+users[i].getUsername());
        }
    }
}

用户类 

package com.userlogin;

public class User {
    public String username;
    public String password;

    public User(String username,String password){
        this.username = username;
        this.password = password;
    }

    public String getUsername(){
        return username;
    }

    public String getPassword(){
        return password;
    }
}

用户登录异常类 

package com.userlogin;

public class UserLoginException extends Exception{
    public UserLoginException(){

    }

    public UserLoginException(String s){
        super(s);
    }
}

运行结果: 

总结:

这个只是一个用户登录系统的雏形,还有很多的地方等待完善

比如用户创建后的数据应该保留在一个文件内,还有可以查看所有用户的用户名应该只有超级管理员才能看,剩下的就是一些代码优化和系统功能的扩充

高频面波成像实战:从频散曲线到全波形反演 面波勘探是近地表工程勘察的重要手段,其核心原理在于不同频率的面波对地下介质的敏感深度不同,由此形成的频散曲线能够反映浅层剪切波速结构。相较于传统钻探与折射波法,高频面波成像具有无损、高效、对低速夹层敏感等优势,广泛应用于路基检测、空洞探测、滑坡调查等领域。在实际工程中,从野外采集的排列设计、震源选型,到频散谱提取与频散曲线反演,每一步都直接影响成像精度。然而频散反演受限于一维层状假设,难以刻画横向剧烈变化的地质体。全波形反演通过拟合完整波形信息,能够突破频散曲线的分辨率边界,获得更精细的近地表速度模型。本文 阅读详情

相关推荐

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 487

Java Web实现用户登录功能

登录页面login.jsp,输入用户名和密码后,跳转到登录处理程序LoginServlet进行业务逻辑处理,调用服务层,服务层调用数据访问层(DAO),连接数据库,查询数据库,以此判断是否登录成功。登录成功,跳转到登录成功页面success.jsp,否则跳转到登录失败页面failure.jsp。登录页面login.jsp,输入用户名和密码后,跳转到登录处理页面doLogin.jsp进行业务逻辑处理,登录成功,跳转到登录成功页面success.jsp,否则跳转到登录失败页面failure.jsp。

hollow_future的博客 6464

视频预处理--经典方法卷积3D

在三维卷积操作中,卷积核不仅在空间维度上滑动,还在时间维度上滑动,从而同时捕捉时间和空间上的特征。通过合理设置步长和填充,可以灵活控制输出特征图的大小和特征提取的效果。你的理解非常准确:三维卷积核就像是一个长度为 3 的滑动窗口,每次选取 3 个连续的帧进行卷积操作,而步长和填充则进一步优化了这一过程。

m0_73359068的博客 1649

java用户登录系统

用户登录系统1.登录 2.注册 3.忘记密码1.登录: 用户输入用户名和密码和五位验证码,用户名在3-15个长度之间,并且不能是纯数字,密码:验证码:5位验证码,四位字母,一位数字2.注册:键盘录入用户名,密码,身份证,手机号3.忘记密码:键盘录入用户名,再输入身份证和手机号用来修改密码全部代码System.out.println("欢迎来到学生管理系统");System.out.println("请选择操作: 1.登录 2.注册 3.忘记密码");

qq_63508200的博客 4783

Conda环境创建报错?教你快速解决Solving environment: failed和ResolvePackageNotFound问题

本文深入解析Conda环境创建中常见的'Solving environment: failed'和'ResolvePackageNotFound'报错原因,并提供从基础到高级的系统化解决方案。涵盖渠道配置、版本通配、环境文件编辑等实用技巧,帮助开发者快速解决conda环境创建问题,提升工作效率。

weixin_28677451的博客 258

微机原理-基于8086电压报警2.5V仿真系统设计

*单片机设计介绍,微机原理-基于8086电压报警2.5V仿真系统设计。

2201_75940997的博客 1083

使用java实现用户的基础功能

实现用户登录等基础功能

m0_63930574的博客 510

基于深度学习的野生菌菇检测识别分类系统(YOLOv8 + UI界面 + 数据集)

随着深度学习技术的迅猛发展,计算机视觉领域的应用得到了广泛的关注。野生菌菇的检测与识别是一个复杂而又有趣的问题,涉及到物体检测、图像分类以及自然语言处理等技术。本文将介绍如何基于YOLOv8模型,结合自定义UI界面与数据集,构建一个高效且精确的野生菌菇检测识别分类系统。首先,我们将介绍YOLOv8的原理与特点,然后详细描述如何构建和训练野生菌菇识别模型,并介绍如何为该系统设计UI界面,最终形成一个完整的系统。本文内容包括代码实现、模型训练及数据集准备等,旨在为有类似需求的开发者提供参考和帮助。目录摘要目录。

YOLO 1547

JavaWeb学习——用户登录案例(13)

日常学习笔记

Hoorus的窝 6802

YOLOv11【第二章:核心模块进阶篇·第28节】DynamicHead动态检测头设计!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1万+

基于STM32的智能电子秤设计毕业论文

摘要:本文设计了一款基于STM32F103C8T6的智能电子秤系统,通过HX711称重传感器实现高精度测量,采用OLED显示和矩阵键盘完成人机交互。系统包含重量采集、数据处理、单价设置、去皮清零及总价计算等功能模块,经测试测量误差小于0.1%,稳定性良好。研究实现了低成本、高可靠性的智能称重方案,为后续无线传输和AI算法集成奠定了基础。关键词:STM32;智能电子秤;HX711;OLED显示;矩阵键盘。

3254968421的博客 849

Java学生登陆系统的实现

今天带来是Java实现学生登陆系统~

weixin_60660061的博客 1372

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

用java写个简单的登录系统(终端界面实现)

用java写个简单的登录系统

weixin_73986007的博客 2554

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JAVA开发实例—简易的登陆系统

轻舟已过万重山!!记录JAVA初学者的小突破

m0_68796480的博客 3296

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

javaweb登录系统账号密码验证等

javaweb实现登录系统,登陆系统界面,servlet跳转,登录过程中error错误信息获取 涉及内容(适合初学javaweb者): javaweb MySQL servlet jsp 项目导航 运行tomcat定向到login界面: <body> <jsp:forward page="login.jsp"></jsp:forward> </body> 用户登录的jsp页面: <%@ taglib prefix="c" uri="http://

roydon 8096

Java实现简单登录系统

通过list存放3个用户的信息:用户名,密码,姓名。循环输入用户名密码,判断用户是否登录成功。不成功则最多输入5次后提示失败次数过多,成功则提示:欢迎回来,xxx(用户姓名)!

qq_64702611的博客 1542

登录系统--java

分享基础的登录页面的代码实现

liuwenhui666的博客 1032

java自定义接口方法的参数自动注入,比如@UserId Long userId、@LoginedUser User user

*** description: 在接口参数上注入当前登录的用户id的注解* 若未登录则值为null**//*** description: 在接口参数上注入当前登录的用户UserInfo的注解* 若未登录则值为null**//*** description: 在接口参数上注入当前登录的用户id的注解**/@Slf4j@Component@Override@Override= null?/**

HumorChen的博客 1931

Java面向对象-多态详解

1.通过现象认识多态 1.1 编码背景 1.定义一个用户类 User,拥有属性 loginName 和 nickName ,登录名和昵称,拥有方法 login(); 2.定义一个管理者用户类 UserManager,独有属性 level,表示管理等级,继承 用户类 User,并重写方法 login(); 3.定义一个普通用户类 UserOrdinary,独有属性registedDate,表示注册时间,继承 用户类 User,并重写方法 login(); 4.定义一个测试类 Application,声明一个静

northcastle的博客 343

【209期】图解用户登录验证业务流程(面试应答推荐)

点击上方“Java精选”,选择“设为星标”别问别人为什么,多问自己凭什么!下方有惊喜,留言必回,有问必答!每天08:15更新文章,每天进步一点点...前言本文通过图示及代码的方式介绍用...

Java精选 1854

用Java完成登录注册后台系统,包含远程、自动登录、注册一体化详细教程

当涉及到开发登入注册后台系统时,Java是一个非常强大和灵活的选择。Java提供了丰富的工具和库,使得开发这样的系统变得相对简单和高效。在本文中,我将为您提供一个详细的教程,介绍如何使用Java实现一个包含远程、自动登录和注册一体化的简易登入注册后台系统。确保您已经安装了Java开发环境(JDK)并配置好了相应的开发工具。教程开始。

Benmao的博客 2781

Java 登录注册系统 【java基础案例教程 案例2-6】

案例要求 编写程序实现简单的登录注册系统。程序包括以下4个功能。 1)登录功能,用户输入正确的账号密码可成功登录 2)注册功能,输入用户名和密码进行注册 3)查看功能,查看所有的用户名和密码 4)退出功能,退出系统。 用户可以输入对应的编号进行相应的功能操作。例如输入"2"进行注册功能,输入用户名和密码进行注册。 本人按照自己的思路来写(水平有限) 首先注册再登录 1.我认为最难的点在于创建多个用户并且保存下来 解:运用二维数组进行保存 第一种定义方式: 数据类型[][] 数组

L1mit4的博客 3万+

登陆管理系统

通过IO文件流,实现了多个用户注册登录,修改密码的基本功能。

ENDlesslove0的博客 415

java语言模拟用户登录系统!

java语言模拟用户登录系统!

m0_68794058的博客 394

java实现用户通过opt动态口令登录系统

在Java中实现一个基于动态口令(OTP, One-Time Password)的用户登录系统,通常涉及到几个关键组件:用户身份验证、OTP生成与验证、以及安全存储用户信息。下面简单介绍一下如何实现用户通过动态口令进行登录。

ts977的博客 1641

登录SYSTEM账户 Windows黑科技 首创方法 教程附源码(c++)

登录Windows的SYSTEM账户方法 SYSTEM通常情况不能直接登录,我查看了其他的很多方法但也都不是真正意义的登录SYSTEM账户,今天介绍一下这个账户到底可以怎么登录。 入手点并不在登录后,而就在Windows启动完毕后那个登录界面。没错,这就是SYSTEM账户的环境,尝试打开左下角的轻松访问功能发现程序的界面竟然和登录后打开别无两样,这已经足以证明。但是这个环境貌似不能做其他的事情,所......

Hnnnbhnnnb的博客 5111
上一篇: JAVA函数笔记
下一篇: JAVA实验3:实现递归目录拷贝
The_RedMaple
博客等级 码龄7年 375粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值