案例需求:
(1)登录功能,用户输入正确的账号密码可成功登录.
(2)注册功能,输入用户名和密码进行注册.
(3)查看功能,查看所有的用户名和密码.
(4)退出功能,退出系统.
用户可以输入对应的编号进行相应的功能操作.例如,输入"2"进入注册功能,输出用户名和密码进行注册.
首先创建一个登录类:
在里面定义成员变量账号和密码,在创建一个无参构造方法
public class DengLu {
// 定义账号和密码
private String zhangHao;
private String miMa;
// 创建一个无参构造方法
public DengLu(){
}
public String getZhangHao(){
return zhangHao;
}
public void setZhangHao(String zhangHao){
this.zhangHao = zhangHao;
}
public String getMiMa(){
return miMa;
}
public void setMiMa(String miMa){
this.miMa = miMa;
}
}
然后创建登录界面:
import java.util.ArrayList;
import java.util.Scanner;
/**
* 2022/1/17
*/
public class DengLuCeShi {
public static void main(String[] args) {
// 定义集合
ArrayList<DengLu> array = new ArrayList<>();
// 定义一个while循环使整体循环
while (true){
System.out.println("--------欢迎使用用户登录注册系统--------");
System.out.println("1,登录功能");
System.out.println("2,注册功能");
System.out.println("3,查看功能");
System.out.println("4,退出");
System.out.println("请选择功能:");
// 用户输入
Scanner in = new Scanner(System.in);
String s = in.nextLine();
switch (s){
case "1":
// 调用登录方法
DengLu(array);
break;
case "2":
// 调用注册方法
ZhuCe(array);
break;
case "3":
// 调用查看方法
ChaKan(array);
break;
case "4":
System.out.println("感谢使用!");
System.exit(0); // JVM退出
default:
System.out.println("正在努力开发中~~~~~");
}
}
}
定义登录方法:
// 登录功能
public static void DengLu(ArrayList<DengLu> array){
// 判断是否集合中是否有账号
if (array.size() == 0){
System.out.println("暂无账号!");
return;
}
// 输入账号密码
Scanner in = new Scanner(System.in);
System.out.println("请输入账号:");
String zhangHao = in.nextLine();
System.out.println("请输入密码:");
String miMa = in.nextLine();
// 遍历集合
for (int i = 0 ; i < array.size() ; i++){
DengLu d = array.get(i);
// 判断账号密码是否正确
if (d.getZhangHao().equals(zhangHao) && d.getMiMa().equals(miMa)){
System.out.println("登录成功!");
}else{
System.out.println("请检查账号密码是否正确!");
}
}
}
定义注册方法:
这里定义了一个boolean方法来判断注册的账号是否重复
// 注册功能
public static void ZhuCe(ArrayList<DengLu> array) {
Scanner in = new Scanner(System.in);
// 将zhu定义在外面,使外面元素也可以被访问到
String zhu;
// 定义循环,如果账号重复,则循环再次输入
while (true) {
// 输入要注册的账号
System.out.println("请输入要注册账号:");
zhu = in.nextLine();
boolean b = PanDuan(array , zhu);
// b是可变的,所以当他是true则返回账号重复,是false则退出循环
if (b){
System.out.println("账号重复,请重新输入!");
}else{
break;
}
}
// 将mi定义在循环外,使外面的内容也能访问到
String mi;
// 定义一个循环,判断两次密码是否一致,不一致则提示继续输入
while (true) {
System.out.println("请输入密码:");
mi = in.nextLine();
System.out.println("请再次输入密码:");
String mi2 = in.nextLine();
// 判断两次密码是否一致,一致的话跳出循环
if (mi.equals(mi2)) {
break;
// 不一致则循环
}else{
System.out.println("两次密码不一致,请重新输入!");
}
}
// 创建对象,将账号密码存进去
DengLu d = new DengLu();
d.setZhangHao(zhu);
d.setMiMa(mi);
// 将元素存入集合中
array.add(d);
// 输出提示
System.out.println("注册成功!");
}
// 判断账号是否存在
public static boolean PanDuan(ArrayList<DengLu> array , String zhang){
boolean flag = false;
// 遍历集合,判断是否有相同的账号
for (int i = 0 ; i < array.size() ; i++){
DengLu d = array.get(i);
// 如果集合中有这个账号,则返回true
if (d.getZhangHao().equals(zhang)){
flag = true;
// 满足条件之后终止循环
break;
}
}
return flag;
}
定义查看方法:
// 查看功能
public static void ChaKan(ArrayList<DengLu> array){
// 判断集合中是否有内容
if (array.size() == 0){
System.out.println("暂无内容!");
return;
}
// 使用制表符使格式好看点
System.out.println("账号\t\t密码");
// 遍历集合获取集合中的元素
for (int i = 0 ; i < array.size() ; i++){
DengLu d = array.get(i);
System.out.println(d.getZhangHao() + "\t" + d.getMiMa());
}
}
}
最后看看输出结果:
到这里也就做完了.
代码基本上都有注释.
有问题欢迎评论区纠正.