基于Java实现简易的 注册 + 登录 系统 (中级)
引言 :这个项目我以学习的角度进行补充和完善,力求把登录 + 注册做到最完美!!!
该项目适用于 学习完 基础的编程语法的同学进行进阶学习
【1】基于Java实现简易的 注册 + 登录 系统
非 数据库 实现!!!
一、项目分析
- 基础菜单栏:主界面、登录界面,注册界面
- 类的划分:测试类、pojo类(存放账号和密码的构造方法)、信息存储类(专门存储用户注册的信息类【用于登录验证】)
- 业务逻辑分析:该项目主要实现两个功能,
- 一个是注册,用户点击注册,则会跳转到注册界面,输入要注册的账号密码,输入完成跳转到登录界面
- 二是登录:用户会直接跳转到登录界面,通过已有的数据进行匹配登录
二、界面设计
这个大家自行设计
- 基础菜单栏
欢迎来到 xxx 系统
1、注册
2、登录
3、退出
请输入你的选择:
- 登录界面
欢迎来到 xxx 在线 系统
请输入你的账号:
aaa
请输入你的密码:
bbb
恭喜你登录成功!!!
…
- 注册界面
欢迎来到注册界面
请输入你的账号:
ada
请输入你的密码:
abc
三、代码实现
特别提醒:我这里存储数据用到的是列表(ArrayList),每次运行代码的时候,原有的数据就会保留,新注册的信息就会删除
接下来我把几个比较重要的代码区域贴出来,供大家学习使用
- 难点一:首先就是登录逻辑的判断
import java.util.Scanner;
import dataStored.LoginDataStored;
public class Login {static LoginDataStored l=new LoginDataStored();//创建数据存储的对象public static void login() {Scanner in=new Scanner(System.in);String account = null;String password = null;String s;//初始化账户信息(这也是列表(ArrayList)的弊端,每次使用必须进行初始化的操作)l.init();do {System.out.println("欢迎来到 xxx 在线 系统");//菜单的使用System.out.println("请输入你的账号:");account=in.next();System.out.println("请输入你的密码:");password=in.next();//两层判断,其实这里还可以继续扩展,对用户注册的账户进行判断,是否有重复的//还可以继续扩展,对密码的茬高度进行长度限制,提高安全性for(int i=0;i<l.list.size();i++)if(account.equals(l.list.get(i).getAccount())) {if(password.equals(l.list.get(i).getPassword())) {System.out.println("恭喜你登录成功!!!");System.out.println("..............");//程序到这里就介结束了,我也就没写了,不然会一直重复登录s=in.next();// 用于暂停。。。}else {System.out.println("密码错误,请重新尝试");}}else {System.out.println("账户错误,请重新输入");}}while(true);//账号密码输不对,就一直输入}
}
- 难点二:用户注册与登录的对象,设置有参和无参的构造方法
public class SignIn {private String account;private String password;public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public SignIn(String account, String password) { //有参数的构造方法super();this.account = account;this.password = password;}public SignIn() {}
}
- 难点三: 使用列表实现用户的信息注册
import java.util.*;
import Login.Login;
import pojo.SignIn;public class LoginDataStored {public static SignIn s=new SignIn();//创建SignIn 对象,用于实现用户注册信息的存储,public static List<SignIn> list=new ArrayList<SignIn>();//通过列表存储用户信息public static Scanner in=new Scanner(System.in);static Login ll=new Login();//创建登录界面的对象,用于界面跳转public void init() {//初始化账号信息list.add(new SignIn("aaa","bbb"));list.add(new SignIn("bbb","ccc"));}//注册界面,写在这里主要是方面添加信息public static void Register() {info("欢迎来到注册界面");String account="";String password="";System.out.println("请输入你的账号:");account=in.next();System.out.println("请输入你的密码:");password=in.next();s=new SignIn(account,password);list.add(s);//返回登录界面ll.login();}//封装输入流public static void info(String str) {System.out.println(str);}
}
项目资源我已经上传到 我的 Github 仓库当中,大家有需要的可以自取~
传送门
edited by gorit on 2019年7月12日
基于Java实现简易的 注册 + 登录 系统 (中级)相关推荐
- 【java项目学习笔记】基于servlet+jsp+jdbc的注册登录系统
目录 项目介绍 准备工作 前端实现 后端实现 项目介绍 实现效果: 首先进行注册,注册成功后自动跳转到登录界面,用先前注册的账号进行登录 注册成功和登录成功的信息会在后端控制台打印 用户注册的信息记录 ...
- python注册系统_Python制作简易注册登录系统
Python制作简易注册登录系统 这篇文章主要为大家详细介绍了 Python 简易注册登录系统的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Python 是一种面向对象.解释型计算机程 ...
- 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件
基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 基于Java毕业设计新冠疫苗接种预约系统登录源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构 ...
- 基于jsp的失物招领系统_基于Java web的校园失物招领系统
源码编号:B-E00021 点击查看分类规则 项目类型:Java EE项目(java web项目) 项目名称:基于java web的校园失物招领系统(LostGoods) 当前版本:V1.0.0版本 ...
- 基于Java的乐嘉网络商城系统(毕设)
文章目录 前言 1.1 用户登录与注册 1.1.1 用户注册 1.1.2 用户登录 1.2 前台展示 1.2.1 首页展示 1.2.2 首页搜索 1.2.3 商品浏览 1.2.4 商品详情页搜索 1. ...
- 基于JAVA黑白图片和上色处理系统(Springboot框架+AI人工智能) 开题报告
本科生毕业论文 基于Java(springboot框架)黑白图片和上色处理系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- 基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告
本科生毕业论文 基于Java框架springboot学生信息管理和新生报到系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
- 精品基于java开发的航空订票系统SSM
<基于java开发的航空订票系统>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1. ...
- 基于JAVA车辆大全和车牌识别系统(Springboot框架+AI人工智能) 开题报告
本科生毕业论文 基于Java(springboot框架)车辆大全和智能识别系统 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师: XXXX大学 ...
最新文章
- Hadmard product(哈达玛积)
- 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
- 基本粒子群算法(PSO)的改进
- 内存管理之slab分配器
- SAP 电商云 Spartacus UI production build 时遇到和 orderCore 相关的错误
- 执行Dockerfile构建基础镜像,建立python工作环境
- SDN精华问答 | 为什么SDN要花这么长时间才被采用?
- Beauty Of Unimodal Sequence(HDU-6592)
- python最长匹配_二分图最大匹配:匈牙利算法的python实现
- 算法提高 高精度乘法(java)
- linux硬盘类型怎么选,如何选择linux系统安装类型
- Python学习-将Python3.3.4还原成Python2.6版本
- java扫描器创建,java – 如何创建条码扫描器(Android)?
- 计算机组装与维护选教材,计算机组装与维护校本教材.doc
- 精选 8个 学习英语的APP,完全免费,适合不同阶段的你
- 一种高带外抑制Ku波段滤波器设计
- 关于软件测试未来发展趋势分析与总结
- libvirt live migration 流程
- 使用vite安装vue3.0(不是脚手架)
- html后台管理模板(源码)