【Java案例】用户登录注册

案例介绍:

编写程序实现简单的用户登录注册功能。程序包含以下4个功能:

(1)登录功能,用户输入正确的账号密码登录成功;

(2)注册功能,输入用户名和密码进行注册;

(3)查看功能,查看所有的用户名与密码;

(4)退出功能,退出系统;

用户可以输入对应的编号进行相应的功能操作。例如,输入2进入注册功能,输入用户名和密码进行注册。

 运行结果:

//main()方法 

//使用static修饰属性,则称该属性为静态属性(或全局属性)
static Scanner scanner =new Scanner(System.in);
// 存储用户名和密码
public static String[] USERNAMES = new String[3];
public static String[] PASSWORDS = new String[3];public static void main(String[] args){USERNAMES[0]="JAVA";PASSWORDS[0]="java";while(true){menu(); //调用menu()方法System.out.print("请选择功能:");int choice = scanner.nextInt();switch (choice){case 1:login();     break; //输入1,调用login()方法case 2:register();  break; //输入2,调用register()方法case 3:show();      break; //输入3,调用show()方法default:System.out.println("系统退出!");System.exit(0); //输入0,退出程序执行}}
}

// 菜单:menu()方法

public static void menu(){ //菜单System.out.println("------------黑马管理系统------------");System.out.println("1.登录功能(login)");System.out.println("2.注册功能(register)");System.out.println("3.查看(show)");System.out.println("0.退出(exit)");System.out.println("------------黑马管理系统------------");
}

 //登录:login()方法

/*登录功能:
* 键盘输入用户名与密码
* 使用for循环+if语句验证输入的用户名和密码是否正确
*/
public static void login(){ //登录for(int retry=1;retry<=3;retry++){System.out.print("请输入注册用户名:");String usernames = scanner.next();System.out.print("请输入密码:");String passwords = scanner.next();for(int i=0;i<USERNAMES.length;i++){if(passwords!=null){if(usernames.equals(USERNAMES[i])&&passwords.equals(PASSWORDS[i])){System.out.println("登录成功!");return;}}}System.out.println("登录失败 "+retry+" 次,请重新输入!");}System.out.println("登录失败超过三次,退出登录功能!");
}

//注册:register()方法

/*注册功能
* 键盘输入用户名与密码,如果用户存在则要求重新输入。
* 如果用户不存在,在数组中插入注册的账号密码。
* 此时可能会有数组长度不够的情况,所以需要增加数组的长度。
*/
public static void register() {boolean isNewUser; //判断是否是新用户String usernames;do {System.out.print("请输入注册用户名:");usernames = scanner.next();isNewUser = true;/*两种表达方式:* ①for(String uname:USERNAMES)* {*     System.out.println(uname);* }* ②for(int i=0;i<USERNAMES.length;i++)* {*     System.out.println(USERNAMES[i]);* }*/for (int i = 0; i < USERNAMES.length; i++){if (USERNAMES[i] != null && usernames.equals(USERNAMES[i])){System.out.println("用户名已存在,请重新输入!");isNewUser = false;break;}}} while (!isNewUser); //新用户会跳出循环,不再要求重新输入System.out.print("请输入密码:");String passwords = scanner.next();boolean isFull = true; //判断当前数组是否装满for (int i = 0; i < USERNAMES.length; i++){if (USERNAMES[i] == null){isFull = false;break;}}if(isFull){String[] newUSERNAMES=new String[USERNAMES.length+10];String[] newPASSWORDS=new String[PASSWORDS.length+10];//arraycopy可以实现一个数组的指定个数元素负责到另一个数组中//将USERNAMES数组里从索引为0的元素开始,复制到newUSERNAMES数组里索引为0的位置,复制USERNAMES.length个元素System.arraycopy(USERNAMES,0,newUSERNAMES,0,USERNAMES.length);System.arraycopy(PASSWORDS,0,newPASSWORDS,0,PASSWORDS.length);USERNAMES=newUSERNAMES;PASSWORDS=newPASSWORDS;}for(int i=0;i<USERNAMES.length;i++){if(USERNAMES[i]==null){USERNAMES[i]=usernames;PASSWORDS[i]=passwords;System.out.println("注册成功!");break;}}
}

//查看:show()方法

public static void show(){System.out.println("系统当前存在的用户为:");for (int i=0;i<USERNAMES.length;i++){if(USERNAMES[i]!=null){System.out.println("用户名:"+USERNAMES[i]+",密码:"+PASSWORDS[i]);}}
}

完整代码:

import java.util.Scanner;public class User {static Scanner scanner =new Scanner(System.in);public static String[] USERNAMES = new String[3];public static String[] PASSWORDS = new String[3];public static void main(String[] args){USERNAMES[0]="JAVA";PASSWORDS[0]="java";while(true){menu(); //调用menu()方法System.out.print("请选择功能:");int choice = scanner.nextInt();switch (choice){case 1:login();     break; //输入1,调用login()方法case 2:register();  break; //输入2,调用register()方法case 3:show();      break; //输入3,调用show()方法default:System.out.println("系统退出!");System.exit(0); //输入0,退出程序执行}}}public static void menu(){ //菜单System.out.println("------------黑马管理系统------------");System.out.println("1.登录功能(login)");System.out.println("2.注册功能(register)");System.out.println("3.查看(show)");System.out.println("0.退出(exit)");System.out.println("------------黑马管理系统------------");}public static void login(){ //登录for(int retry=1;retry<=3;retry++) {System.out.print("请输入注册用户名:");String usernames = scanner.next();System.out.print("请输入密码:");String passwords = scanner.next();for(int i=0;i<USERNAMES.length;i++) {if(passwords!=null) {if(usernames.equals(USERNAMES[i])&&passwords.equals(PASSWORDS[i])) {System.out.println("登录成功!");return;}}}System.out.println("登录失败 "+retry+" 次,请重新输入!");}System.out.println("登录失败超过三次,退出登录功能!");}public static void register() { //注册boolean isNewUser; //判断是否是新用户String usernames;do {System.out.print("请输入注册用户名:");usernames = scanner.next();isNewUser = true;for (int i = 0; i < USERNAMES.length; i++) {if (USERNAMES[i] != null && usernames.equals(USERNAMES[i])) {System.out.println("用户名已存在,请重新输入!");isNewUser = false;break;}}} while (!isNewUser); //新用户会跳出循环,不再要求重新输入System.out.print("请输入密码:");String passwords = scanner.next();boolean isFull = true; //判断当前数组是否装满for (int i = 0; i < USERNAMES.length; i++) {if (USERNAMES[i] == null) {isFull = false;break;}}if(isFull) {String[] newUSERNAMES=new String[USERNAMES.length+10];String[] newPASSWORDS=new String[PASSWORDS.length+10];System.arraycopy(USERNAMES,0,newUSERNAMES,0,USERNAMES.length);System.arraycopy(PASSWORDS,0,newPASSWORDS,0,PASSWORDS.length);USERNAMES=newUSERNAMES;PASSWORDS=newPASSWORDS;}for(int i=0;i<USERNAMES.length;i++) {if(USERNAMES[i]==null) {USERNAMES[i]=usernames;PASSWORDS[i]=passwords;System.out.println("注册成功!");break;}}}public static void show(){ //查看System.out.println("系统当前存在的用户为:");for (int i=0;i<USERNAMES.length;i++) {if(USERNAMES[i]!=null) {System.out.println("用户名:"+USERNAMES[i]+",密码:"+PASSWORDS[i]);}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/234796.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】异常处理 ② ( 异常捕获类型 | 异常捕获机制 - 严格匹配异常类型 | 未知异常捕获 - 不知道异常类型 )

文章目录 一、异常捕获机制 - 严格匹配异常类型1、异常捕获机制 - 严格匹配异常类型2、代码示例 - 异常捕获严格匹配异常类型 二、异常捕获机制 - 未知异常捕获1、未知异常捕获 - 不知道异常类型2、代码示例 - 未知异常捕获 一、异常捕获机制 - 严格匹配异常类型 1、异常捕获机…

[vue3] 使用 vite 创建vue3项目的详细流程

一、vite介绍 Vite&#xff08;法语意为 “快速的”&#xff0c;发音 /vit/&#xff0c;发音同 “veet”) 是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验&#xff08;热更新、打包构建速度更快&#xff09;。 二、使用vite构建项目 【学习指南】学习新技能最…

3dsMax插件Datasmith Exporter安装使用方法

3dsMax插件Datasmith Exporter安装使用方法 某些文件格式无法用Datasmith直接导入虚幻引擎&#xff0c;这些数据必须先被转换为Datasmith能够识别的文件格式。Datasmith Exporter插件就可以帮助您的软件导出可以被Datasmith导入虚幻引擎的.udatasmith格式文件。 在开始使用虚幻…

css 字体倾斜

css 字体倾斜 //左右倾斜 transform: skew(40deg, 0deg);//上下倾斜 transform: skew(0deg, 16deg);

在Rust中编写自动化测试

1.摘要 Rust中的测试函数是用来验证非测试代码是否是按照期望的方式运行的, 测试函数体通常需要执行三种操作:1.设置任何所需的数据或状态;2.运行需要测试的代码;3.断言其结果是我们所期望的。本篇文章主要探讨了Rust自动化测试的几种常见场景。 2.测试函数详解 在Rust项目工…

JUC并发编程 01——多线程基础知识

一.线程应用 异步调用 以调用方角度来讲&#xff0c;如果 需要等待结果返回&#xff0c;才能继续运行就是同步 不需要等待结果返回&#xff0c;就能继续运行就是异步 应用 比如在项目中&#xff0c;视频文件需要转换格式等操作比较费时&#xff0c;这时开一个新线程处理视…

C/C++ 实现FTP文件上传下载

FTP&#xff08;文件传输协议&#xff09;是一种用于在网络上传输文件的标准协议。它属于因特网标准化的协议族之一&#xff0c;为文件的上传、下载和文件管理提供了一种标准化的方法&#xff0c;在Windows系统中操作FTP上传下载可以使用WinINet库&#xff0c;WinINet&#xff…

卡码网语言基础课 | 17. 判断集合成员

目录 一、 set 集合 二、 创建集合 2.1 引入头文件 2.2 创建 2.3 插入元素 2.4 删除元素 三、 find的用法 四、 实现基本解题 五、 延伸拓展 题目&#xff1a;编写一个程序&#xff0c;判断给定的整数 n 是否存在于给定的集合中。 输入描述&#xff1a; 有多组测试…

单点登录平台设计

1.基本介绍 1.1什么是单点登录 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种身份认证的解决方案&#xff0c;它允许用户只需一次登录即可访问多个应用程序或系统。在一个典型的SSO系统中&#xff0c;用户只需通过一次身份认证&#xff0c;就可以…

css新闻链接案例

利用html和css构建出新闻链接案例&#xff0c;使用渐变色做出背景色变化 background: linear-gradient(to bottom, rgb(137, 210, 251), rgb(238, 248, 254), white); 利用背景图片&#xff0c;调整位置完成 dd { height: 28px; line-height: 28px; background-image: url(./图…

Linux系统编程 day07 信号

Linux系统编程 day07 信号 1. 信号的介绍以及信号的机制2. 信号相关函数2.1 signal2.2 kill2.3 abort和raise2.4 alarm2.5 setitimer 3. 信号集4. 信号捕捉函数6. SIGCHLD信号7. SIGUSR1与SIGUSR2 1. 信号的介绍以及信号的机制 信号是信息的载体&#xff0c;在Linux/Unix环境下…

JMeter从入门到精通

1、 jmeter的介绍 jmeter也是一款接口测试工具&#xff0c;由java语言开发的&#xff0c;主要进行性能测试。 2、jmeter安装 jmeter官网下载链接&#xff1a; https://jmeter.apache.org/download_jmeter.cgi &#xff0c;查看是否安装成功【jmeter -v】 下载 java jdk1.8&…