模拟用户登录功能。 【需求】:已知用户名和密码,请用程序实现模拟用户登录。总共给3次机会,登录之后,给出相应的提示。 【分析】一般情况下,用界面的文本框输入的信息都是字符串。对用户名和密码的比较判断用String来实现。 【思路】: (1) 定义一个dao包,在该包中定义一个UserDao类,添加一个用户登录方法userLogin(),用户名和密码作为参数的实现数据传递,返回值类型用boolean,表示查找成功与否。 1)已经用户名和密码,定义两个字符串存放。用String类表示。 2) 用已知的用户名和密码和传递参数做比较,字符串内容的比较用equals实现,为真返回true,为假返回false。 (2) 定义一个test包,在该包中定义一个TestUser类。 1)在main方法来实现模拟用户输入的用户名和密码,用Scanner实现。 2)实例化UserDao对象,并调用登录的方法来判断是否查找成功,并给出相应的提示。 3)用循环实现3次机会,这里的次数明确,采用for循环实现,并在登录成功的时候,使用break结束循环。登录失败时做次数的提示,登录成功时直接提示“登录成功”。
时间: 2023-06-10 08:06:44 浏览: 254
以下是代码实现:
UserDao.java
```java
package dao;
public class UserDao {
private String username = "admin"; // 已知的用户名
private String password = "123456"; // 已知的密码
public boolean userLogin(String username, String password) {
if (this.username.equals(username) && this.password.equals(password)) { // 判断用户名和密码是否正确
return true;
}
return false;
}
}
```
TestUser.java
```java
package test;
import dao.UserDao;
import java.util.Scanner;
public class TestUser {
public static void main(String[] args) {
UserDao userDao = new UserDao();
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i++) { // 最多3次机会
System.out.print("请输入用户名:");
String username = scanner.next();
System.out.print("请输入密码:");
String password = scanner.next();
if (userDao.userLogin(username, password)) { // 登录成功
System.out.println("登录成功!");
break; // 结束循环
} else { // 登录失败
System.out.println("用户名或密码错误,请重新输入!您还有" + (2 - i) + "次机会。");
}
}
}
}
```
运行程序后,会提示用户输入用户名和密码,最多有3次机会。如果输入的用户名和密码正确,则提示“登录成功!”;如果输入的用户名和密码错误,则提示“用户名或密码错误,请重新输入!您还有x次机会。”(其中x表示还剩余的机会次数)。若3次机会全部用完还未成功登录,则程序结束。
阅读全文