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);
    }
}

运行结果: 

总结:

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

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

避开这5个坑!ADNI数据库下载实操经验分享(含断点续传方案) 本文分享了ADNI数据库下载的5个常见陷阱及解决方案,包括高级搜索策略优化、断点续传技巧和数据完整性验证。特别针对大文件下载中断问题,提供了wget断点续传和分卷下载的实操方法,帮助研究者高效获取神经影像数据,避免重复下载和时间浪费。 阅读详情

相关推荐

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 217

Java Web实现用户登录功能

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

hollow_future的博客 6464

中心对数比变换(Centered Log Ratio Transformation,CLR)的原理及scikit-bio介绍

中心对数比变换(Centered Log Ratio Transformation,CLR)是一种数据预处理方法,常用于成分数据分析领域。在成分数据中,各成分之间通常存在一定的约束关系,比如它们的和为固定值等,中心对数比变换可以有效地处理这种具有特殊约束的数据。官方文档scikit-bio是一个在Python3中处理生物数据的库成分统计 (skbio.stats.composition )模块中的,此函数将组合从Aitchison几何体转换到真实空间。这个clr。

RECORD LEARN PROGRESS 1万+

java用户登录系统

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

qq_63508200的博客 4783

通信工程学习:什么是OLT光线路终端

OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。

limengshi138392的博客 4360

FoundationPose复现及Realsense应用

FoundationPose是一个统一的基础模型,用于6D对象姿态估计和跟踪,支持基于模型和无模型的设置。在测试时可以立即应用于未见过的新对象,无需微调,只要给出其CAD模型,或者捕获少量RGBD参考图像。得益于统一框架,下游姿态估计模块在两种3D模型设置中都是相同的,当没有CAD模型时,使用神经隐式表示进行高效的新视角合成。通过大规模合成训练,辅以大型语言模型(LLM)、一种基于transformer的新架构和对比学习公式,实现了强大的泛化能力。

m0_56661101的博客 1万+

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

实现用户登录等基础功能

m0_63930574的博客 510

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3104

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

日常学习笔记

Hoorus的窝 6802

解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]

惊奇的发现,maven没有用环境变量中设置好的JAVA_HOME目录,至此发现错误原因,原来执行java -version默认使用系统环境变量JAVA_HOME,而maven优先使用了windows的用户变量JAVA_HOME(这里之前忘记修改,仍然指向java8路径),修改用户变量JAVA_HOME指向java21或删除该用户变量JAVA_HOME(如无它用)后即可。打开maven包所在的目录,在maven的配置文件 mvn.cmd 文件中,设置java_home的目录。

litlit023的专栏 1800

29. 如何通过 ABAP 代码给 SAP OData 元数据增添注解

我们先看下效果,在 MPC_EXT 类的 DEFINE 方法里编写 ABAP 代码之后,用 Postman 使用 url 访问 OData metadata,在返回的数据里,能看到我们用 ABAP 代码添加的自定义注解。你好,请问可以不可以在odata里面通过什么设置,从而自动给metadata.xml中加上注解,实现value help的功能,还是说每次需要在metadata.xml中修改?的词汇引用,然后为命名空间 com.sap.vocabularies.UI.v1 声明了一个别名。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1660

Java学生登陆系统的实现

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

weixin_60660061的博客 1372

被Cloudflare 5秒盾虐了半个月,终用Python破局:UA+TLS指纹伪装实战,拦截率从42%干到3%

其实5秒盾不难破,难的是摸透它的检测逻辑——它不是“一刀切”地拦截爬虫,而是通过“多维度指纹校验”,判断你是不是“真实用户”。表层:UA和HTTP头要完整、匹配;中层:TLS指纹要和真实浏览器一致(核心);深层:行为要符合人类习惯(请求间隔、JS执行)。这套方案不仅适用于Cloudflare 5秒盾,很多基于指纹检测的反爬系统(如Akamai、Imperva)也适用。2025年的爬虫,早已不是“能爬就行”,而是“爬得稳、不被封”——指纹伪装就是实现这一点的关键。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1849

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

用java写个简单的登录系统

weixin_73986007的博客 2554

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

m0_68796480的博客 3296

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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
上一篇: 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、付费专栏及课程。

余额充值