继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

基于Java 实现的简易(登录 + 注册)系统

Gorit
关注TA
已关注
手记 36
粉丝 55
获赞 243

引言 :这个项目我以学习的角度进行补充和完善,力求把登录 + 注册做到最完美!!!

该项目适用于 学习完 基础的编程语法的同学进行进阶学习

【1】基于Java实现简易的 注册 + 登录 系统

数据库 实现!!!

一、项目分析

  1. 基础菜单栏:主界面、登录界面,注册界面
  2. 类的划分:测试类、pojo类(存放账号和密码的构造方法)、信息存储类(专门存储用户注册的信息类【用于登录验证】)
  3. 业务逻辑分析:该项目主要实现两个功能,
    • 一个是注册,用户点击注册,则会跳转到注册界面,输入要注册的账号密码,输入完成跳转到登录界面
    • 二是登录:用户会直接跳转到登录界面,通过已有的数据进行匹配登录

二、界面设计

这个大家自行设计

  1. 基础菜单栏

欢迎来到 xxx 系统
1、注册
2、登录
3、退出
请输入你的选择:

  1. 登录界面

欢迎来到 xxx 在线 系统
请输入你的账号:
aaa
请输入你的密码:
bbb
恭喜你登录成功!!!

  1. 注册界面

欢迎来到注册界面
请输入你的账号:
ada
请输入你的密码:
abc

三、代码实现

特别提醒:我这里存储数据用到的是列表(ArrayList),每次运行代码的时候,原有的数据就会保留,新注册的信息就会删除

接下来我把几个比较重要的代码区域贴出来,供大家学习使用

  1. 难点一:首先就是登录逻辑的判断
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);//账号密码输不对,就一直输入
	}
}
  1. 难点二:用户注册与登录的对象,设置有参和无参的构造方法
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() {}
}
  1. 难点三: 使用列表实现用户的信息注册
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日

打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP