Java【10_1】用户注册登录(面向过程与面向对象)

测试题

1、基于文本界面实现登录注册的需求(要求可以满足多个用户的注册和登录) 通过工具去完成

公共类:

public class User {

private int id;//用户编号

private int username;//用户名

private int password;//密码

private String name;//真实姓名

//该类的下面代码,可以通过:在空白位置,快捷键(Alt+Insert)-> Getter and Setter 【让idea自动生成】-> 全选生成

public void setId(int i){

id=i;

}

public int getId(){

return id;

}

public void setUsername(int u){

username=u;

}

public int getUsername(){

return username;

}

public void setPassword(int p){

password=p;

}

public int getPassword(){

return password;

}

public void setName(String n){

name=n;

}

public String getName(){

return name;

}

}

示例:面向过程代码(全能人,干就是)

public class Test1 {

public static void main(String\[\] args) {

//文本界面(所有的输入入口和信息展示都在界面内)

java.util.Scanner input=new java.util.Scanner(System.in);

//保存用户的数组

User\[\] users=new User5;

int count=0;//记录用户个数

do{

System.out.println("欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出");

int num=input.nextInt();

if(num==1){

System.out.println("欢迎来到注册界面\n请输入用户名和密码");

int username=input.nextInt();

int password=input.nextInt();

System.out.println("请输入您的真实姓名:");

String name=input.next();

//用户信息的保存,将注册的用户信息,封装到一个对象内,将对象存储在数组中

//1. 判断容量是否充足 (用户名重复-->做一个验证)

if(count==users.length){

//需要扩容

User\[\] newUser=new Userusers.length\*2;

for (int i = 0; i < users.length; i++) {

newUseri=usersi;

}

users=newUser;

}

//2. 保存用户

User user=new User();

user.setId(count+1);//id会是数据库自动生成,不需要我们设置

user.setUsername(username);

user.setPassword(password);

user.setName(name);

userscount++=user;

}else if(num==2){

System.out.println("欢迎来到登录界面\n请输入用户名和密码");

int username=input.nextInt();

int password=input.nextInt();

//登录检查

User user=null;

for (int i = 0; i < count; i++) {

if(username==usersi.getUsername()&&password==usersi.getPassword()){

//找到登录人

user=usersi;//将当前登陆人的对象提取出来

break;

}

}

if(user==null){

System.out.println("用户名或密码错误");

}else{

System.out.println("登录成功,欢迎:"+user.getName());

}

}else if(num==3){

System.out.println("确认退出吗?0/1");

int flag=input.nextInt();

if(flag==0)

break;

}

}while(true);

}

}

D:\javademo\day10_am>java Test1

欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出

1

欢迎来到注册界面

请输入用户名和密码

10

11

请输入您的真实姓名:

keke

欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出

2

欢迎来到登录界面

请输入用户名和密码

10

20

用户名或密码错误

欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出

2

欢迎来到登录界面

请输入用户名和密码

10

11

登录成功,欢迎:keke

欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出

3

确认退出吗?0/1

1

欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出

3

确认退出吗?0/1

0

示例:面向对象代码(找人做,或创造业务对象)

public class Test2 {

public static void main(String\[\] args) {

//文本界面(所有的输入入口和信息展示都在界面内)

java.util.Scanner input=new java.util.Scanner(System.in);

//管家

UserService userService=new UserService();

do{

System.out.println("欢迎来到欢乐谷! 1. 注册 2. 登录 3. 退出");

int num=input.nextInt();

if(num==1){

System.out.println("欢迎来到注册界面\n请输入用户名和密码");

int username=input.nextInt();

int password=input.nextInt();

System.out.println("请输入您的真实姓名:");

String name=input.next();

//用户信息的保存(注册、后台都是可以添加客户的)

//是不是遇到功能了,面向过程(自己实现),面向对象(找人实现)

User user=new User();

user.setId(1);

user.setUsername(username);

user.setPassword(password);

user.setName(name);

userService.saveUser(user);

}else if(num==2){

System.out.println("欢迎来到登录界面\n请输入用户名和密码");

int username=input.nextInt();

int password=input.nextInt();

//登录检查

//是不是遇到功能了,面向过程(自己实现),面向对象(找人实现)

User login = userService.login(username, password);

if(login==null){

System.out.println("用户名或密码错误");

}else{

System.out.println("登录成功,欢迎:"+login.getName());

}

}else if(num==3){

System.out.println("确认退出吗?0/1");

int flag=input.nextInt();

if(flag==0)

break;

}

}while(true);

}

}

/*

类是专门处理User的业务的,User的保存、User的修改、User的删除、User的查询

发现:这个类中的方法,都是功能,没有任何的输入输出

*/

public class UserService {

//保存用户的数组

private User\[\] users=new User5;

//记录用户个数

private int count=0;

/*

保存用户,需要外界传进来一个User对象

*/

public void saveUser(User user){//形参设置为User类型!形式参数(当做是有值的)

if(count==users.length){

User\[\] newUser=new Userusers.length\*2;

for (int i = 0; i < users.length; i++) {

newUseri=usersi;

}

users=newUser;

}

userscount++=user;

}

/*

功能:登录

*/

public User login(int username,int password){

User user=null;

for (int i = 0; i < count; i++) {

if(username==usersi.getUsername()&&password==usersi.getPassword()){

user=usersi;

}

}

return user;

}

}

相关推荐
xywww1683 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
折哥的程序人生 · 物流技术专研7 小时前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
researcher-Jiang8 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
夜雪一千8 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
能有时光8 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
_Jimmy_9 小时前
Python 协程库如何使用以及有哪些使用场景
python
aqi009 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
西门吹-禅9 小时前
java springboot N+1问题
java·开发语言·spring boot
第一程序员9 小时前
Rust Agent 子进程执行:Command 之前,先定义输入和超时
python·rust·github
DLYSB_9 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯