Day_09【常用API】扩展案例1_程序中使用一个长度为3的对象数组,存储用户的登录名和密码……
需求说明:实现用户注册、登陆功能;
1.程序中使用一个长度为3的**对象数组**,存储用户的登录名和密码:
例如如下格式:
登录名 密码 生日 爱好
zhangsan 1111 1998-03-15 旅游,唱歌
lisi 2222 2002-05-20 吃饭,睡觉,打豆豆
wangwu 3333 2001-07-28 看书,看电影,旅游
注册时,要判断数组是否已满,是:则禁止注册。 2.**循环**为用户列出菜单:
①注册 ②登陆 ③退出 3.用户选择①,调用:registe()方法,执行注册流程;
用户选择②,调用:login()方法,执行登录流程;
用户选择③,结束程序; 4.编写方法:**registe()**,执行注册流程:
要求用户输入以下信息(信息无需校验):
用户名:
登录密码:
出生日期:
爱好:(多个爱好中间用逗号(中英文都可以)隔开) 5.编写方法:**login()**,执行登陆流程:
请用户输入登录名、登陆密码;
使用登录名和密码进行验证;
通过:打印:这个用户的所有信息;
未通过:打印:用户名或密码错误!
package com.itheima;
//用户信息类
public class User {
private String username;
private String password;
private String birthday;
private String hobby;
public User() {}
public User(String username,String password,String birthday,String hobby) {
this.username = username;
this.password = password;
this.birthday = birthday;
this.hobby = hobby;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
package com.itheima;
import java.util.Scanner;
public class Test1 {
// 定义一个存储用户登录名和密码,长度为3的对象数组
private static User[] userArray = new User[3]; // 没讲过
private static int index = 0; // 没讲过
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("1.注册" + "\t" + "2.登录" + "\t" + "3.退出");
int select = sc.nextInt();
switch (select) {
case 1:
registe();
break;
case 2:
login();
break;
case 3:
System.out.println("感谢使用,再见");
System.exit(0);
default:
break;
}
}
}
// 注册方法
public static void registe() {
// 先验证用户是否已满
if (index >= userArray.length) {
System.out.println("用户已满,禁止注册");
return; // 不太明白为什么不能用else
}
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的用户名:");
String userName = sc.nextLine();
System.out.println("请输入您的登录密码:");
String password = sc.nextLine();
System.out.println("请输入您的生日:");
String birthday = sc.nextLine();
System.out.println("请输入您的爱好(多个爱好中间用逗号隔开):");
String hobby = sc.nextLine();
// 将数据输入到数组
User user = new User(userName, password, birthday, hobby);
userArray[index] = user; // 不太明白
// 将索引增加1,以便下一次储存
index++; // 不太明白
System.out.println("注册成功");
}
// 登录方法
public static void login() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的用户名:");
String userName = sc.nextLine();
System.out.println("请输入您的密码");
String password = sc.nextLine();
// 使用登录名和密码进行验证
for (int x = 0; x < userArray.length; x++) {
if (userName.equals(userArray[x].getUsername()) && password.equals(userArray[x].getPassword())) {
System.out.println("登录成功,以下是您的个人信息");
System.out.println("用户名:" + userArray[x].getUsername() + "\t" + "密码:" + userArray[x].getPassword()
+ "\t" + "生日:" + userArray[x].getBirthday() + "\t" + "爱好" + userArray[x].getHobby());
return; //同上
}
}
System.out.println("用户名或密码错误!");
}
}
控制台输出内容

Day_09【常用API】扩展案例1_程序中使用一个长度为3的对象数组,存储用户的登录名和密码……的更多相关文章
- Day_12【集合】扩展案例1_利用集合的知识对长度为10的int数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序
分析以下需求,并用代码实现 1.定义一个长度为10的int数组,并存入10个int类型的数据,其中有一些数据是重复的 2.利用集合的知识对数组进行去重,产生新数组,不能改变数组中原来数字的大小顺序 3 ...
- Day_11【集合】扩展案例1_遍历打印学生信息,获取学生成绩的最高分,获取成绩最高的学员,获取学生成绩的平均值,获取不及格的学员数量
分析以下需求,并用代码实现: 1.按照以下描述完成类的定义 学生类 属性: 姓名name 年龄age 成绩score 行为: 吃饭eat() study(String content)(content ...
- 对类HelloWorld程序中添加一个MessageBox弹窗
对类HelloWorld程序中添加一个MessageBox弹窗 分析: 任一程序运行的时候都会加载kernel32.dll的,但MessageBoxA()这个API却是在user32.dll中的.所以 ...
- 如何在RCP程序中添加一个banner栏
前言:这段时间还算比较空闲,我准备把过去做过的有些形形色色,甚至有些奇怪的研究总结一下,也许刚好有人用的着也不一定,不枉为之抓耳挠腮的时光和浪费的电力.以前有个客户提出要在RCP程序中添加一个bann ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
- 安卓WebView的使用,在应用程序中嵌入一个浏览器,轻松地展示各种各样的网页
WebView 在应用程序中嵌入一个浏览器,轻松地展示各种各样的网页. 1.定义一个WebView位置 <?xml version="1.0" encoding=" ...
- java—数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = input数组中,除了input[i] 之外的所有数的乘积,不用考虑溢出例如 input {2, 3, 4, 5} output: {60, 40, 30, 24}
/** * 小米关于小米笔试题 数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = * input数组中,除了input[i] 之外的 ...
- (未使用AOP)使用ThreadLocal对象把Connection和当前线程绑定, 从而使一个线程中只有一个能控制事务的对象
每个连接都有自己的独立事务,会造成数据的不一致 这组操作应该要么一起操作成功,要么一起操作失败, 应该使用同一个连接,只有一个能控制事务的对象 需要使用ThreadLocal对象把Connection ...
- Day_13【IO流】扩展案例1_读取项目文件内容并去重
分析以下需求,并用代码实现: 需求: 读取当前项目下的info1.txt 文件内容如下 : aaaaaaaaaaabbbbbbbbbbbbccdefg 要求将数据去重后写回最终效果 : fgdebca ...
随机推荐
- 用threejs 实现3D物体在浏览器展示
用threejs 实现3D物体在浏览器展示,通过鼠标平移,缩放,键盘箭头按钮左右移动等功能展示. <!DOCTYPE html> <html> <head> < ...
- Extjs——简单的Grid panel小实例
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- Python发送http请求时遇到问题总结
1.报错信息为“ERROR 'str' object has no attribute 'endwith'”,排查发现endswith方法名写错了,少了s,写成了 'endwith' if inter ...
- 用Python介绍了企业资产情况的数据爬取、分析与展示。
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张耀杰 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...
- 今天我们谈一下HTML标签中的<map>标签的用法和使用场景
首先我们看下这个标签到底是干什么的! W3C的定义: 然后兼容性: 然后与之配套使用的另一个标签: <area/>规定其区域: 我们来看看<map>标签支不支持全局属性:=== ...
- Java数组 —— 八大排序
(请观看本人博文--<详解 普通数组 -- Arrays类 与 浅克隆>) 在本人<数据结构与算法>专栏的讲解中,本人讲解了如何去实现数组的八大排序. 但是,在讲解的过程中,我 ...
- [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用
路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...
- tensorflow1.0 构建卷积神经网络
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import os os.envi ...
- 关于json转义中文
服务器传递或者程序传递中,不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上很多,但是其实都是错误的,正确的方法是在j ...
- java中Runnable和Callable的区别
文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...