欢迎交流
题目如下:
- 普通用户:登录,注册,退出
- 管理员用户名:admin 密码:123
- 管理员的功能有:删除,修改密码,拉入黑名单
*(如果小张被拉入黑名单,那么小张无法登录,将被拒绝登录, - 如果拉入黑名单,需要添加拉黑的方法,同时将用户做参数)
解答如下:
User 类如下图:
package incom;
public class User {
private String name;
private String key;
public User(String name, String key) {
this.name = name;
this.key = key;
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String toString() {
return "User [name=" + name + ", key=" + key + "]";
}
}
UserBiz类如下图:
package incom;
/**
* 普通用户:登录,注册,退出
* 管理员用户名:admin 密码:123
* 管理员的功能有:删除,修改密码,拉入黑名单
*(如果小张被拉入黑名单,那么小张无法登录,将被拒绝登录,
* 如果拉入黑名单,需要添加拉黑的方法,同时将用户做参数)
* @author Administrator
*
*/
public class UserBiz {
User uArr[] = new User[100];
User BlackList[] = new User[100];
/**
* 添加用户
* @param u
*/
public void addArr(User u) {
for (int i = 0; i < uArr.length; i++) {
if(uArr[i]==null && uArr[i] != u) {
uArr[i] = u;
break;
}
}
}
/**
* 查找用户名字
* @param name
* @return
*/
public boolean findName(String name) {
boolean flag = false;
for (int i = 0; i < uArr.length; i++) {
if(uArr[i]!=null && uArr[i].getName().equals(name)) {
flag = true;
break;
}
}
return flag;
}
/**
* 登录时,判断密码是否正确
* @param key
* @return
*/
public boolean findKey(String key) {
boolean flag = false;
for (int i = 0; i < uArr.length; i++) {
if(uArr[i]!=null && uArr[i].getKey().equals(key)) {
flag = true;
break;
}
}
return flag;
}
/**
* 删除用户
* @param name
*/
public void deleteUser(String name) {
for (int i = 0; i < uArr.length; i++) {
if(uArr[i]!=null && uArr[i].getName().equals(name)) {
uArr[i] = null;
break;
}
}
System.out.println("Delete successful!");
}
/**
* 更改密码
* @param name
* @param key
*/
public void updateKey(String name,String key) {
for (int i = 0; i < uArr.length; i++) {
if(uArr[i]!=null && uArr[i].getName().equals(name)) {
uArr[i].setKey(key);
break;
}
}
System.out.println("Update successful!");
}
/**
* 拉进黑名单
* @param u
*/
public void pullInBlackList(User u) {
for (int i = 0; i < BlackList.length; i++) {
if (BlackList[i] == null && BlackList[i] != u) {
BlackList[i] = u;
break;
}
}
}
/**
* 判断是否为黑名单
* @param BlackName
* @return
*/
public boolean wetherInBlackList(String BlackName) {
boolean flag = false;
for (int i = 0; i < BlackList.length; i++) {
if (BlackList[i]!= null && BlackList[i].getName().equals(BlackName)) {
flag = true;
break;
}
}
return flag;
}
/**
* 查看白名单
*/
public void show() {
for (int i = 0; i <uArr.length; i++) {
if (uArr[i] != null) {
System.out.println(uArr[i].toString());
}
}
}
/**
* 查看黑名单
*/
public void showBlackList() {
for (int i = 0; i <BlackList.length; i++) {
if (BlackList[i] != null) {
System.out.println(BlackList[i].toString());
}
}
}
}
测试类如下图:
package incom;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
UserBiz ubz = new UserBiz();
while (true) {
System.out.print("1.General login\t2.Administrator login\n>");
int whichLogin = s.nextInt();
if (whichLogin == 1) { //普通用户登录
while(true) {
System.out.print("1.login\t\t2.register\t3.exit\n>");
int choose = s.nextInt();
if (choose==1) {
System.out.print("Please input user name\n>");
String username = s.next();
boolean blackname = ubz.wetherInBlackList(username);
//判断是否在黑名单
if (blackname==true) { //如果在黑名单
System.out.print("You have been blacklisted!!!\n");
}else { //如果不在黑名单
boolean findname = ubz.findName(username);
while (findname==false) {
System.out.print("Please input user name again\n>");
username = s.next();
findname = ubz.findName(username);
}
System.out.print("Please input user name password\n>");
String password = s.next();
boolean findkey = ubz.findKey(password);
while(findkey==false) {
System.out.print("Please input user name password again\n>");
password = s.next();
findkey = ubz.findKey(password);
}
System.out.println("Login successful!!!");
break;
}
}else if (choose==2) {
System.out.print("Input your favourite name\n>");
String favname = s.next();
boolean findname = ubz.findName(favname);
while (findname==true) {
System.out.print("Input your favourite name again\n>");
favname = s.next();
findname = ubz.findName(favname);
}
System.out.print("Set your password\n>");
String password = s.next();
System.out.print("Make sure your password\n>"); //再次确认密码
String password1 = s.next();
while (!password.equals(password1)) { //判断两次输入密码是否相等
System.out.println("Passwords are inconsistent!!!");
System.out.print("Set your password\n>");
password = s.next();
System.out.print("Make sure your password\n>");
password1 = s.next();
}
User newUser = new User(favname, password1);
ubz.addArr(newUser);
System.out.println("Register successful!!!");
ubz.show();
}else if (choose==3) {
System.out.println("Exit successful!");
break;
}else System.out.println("Try again");
}//end while
}else if(whichLogin == 2) { //管理员登录
System.out.print("Please input Administrator user name\n>");
String adminName = s.next();
System.out.print("Please input Administrator password\n>");
String adminKey = s.next();
//判断管理员登录情况
while(!adminName.equals("admin") || !adminKey.equals("123456")) {
System.out.println("Try again");
System.out.print("Please input Administrator user name\n>");
adminName = s.next();
System.out.print("Please input Administrator password\n>");
adminKey = s.next();
}
System.out.println("Administrator login successful!!!"); //登录成功
while(true) { //此处使用while,当退出管理员登录时,可以返回上一选择情况
System.out.print("1.Detete user\t2.Update password\t3.Pull the user in blacklist\t4.Exit\n>");
int which = s.nextInt();
if (which == 1) { //删除用户
System.out.print("Please input user name of deletion\n>");
String delname = s.next();
boolean findname = ubz.findName(delname);
while (findname==false) {
System.out.print("Input need to delete user name again\n>");
delname = s.next();
findname = ubz.findName(delname);
}
ubz.deleteUser(delname);
}else if (which == 2) { //更改密码
System.out.print("Please input need to Reset password of user name\n>");
String name = s.next();
boolean findname = ubz.findName(name);
while (findname==false) {
System.out.print("Please input need to Reset password of user name again\n>");
name = s.next();
findname = ubz.findName(name);
}
System.out.print("Set your password\n>");
String password = s.next();
System.out.print("Make sure your password\n>"); //再次确认密码
String password1 = s.next();
while (!password.equals(password1)) { //判断两次输入密码是否相等
System.out.println("Passwords are inconsistent!!!");
System.out.print("Set your password\n>");
password = s.next();
System.out.print("Make sure your password\n>");
password1 = s.next();
}
ubz.updateKey(name, password1);
ubz.show();
}else if (which == 3) { //拉黑
System.out.print("Please input black user name\n>");
String blackname = s.next();
boolean findname = ubz.findName(blackname);
System.out.println(findname);
while (findname==false) {
System.out.print("Please input black user name again\n>");
blackname = s.next();
findname = ubz.findName(blackname);
}
User u = new User(blackname, null);
ubz.pullInBlackList(u);
System.out.println("Pull in blacklist succussful!!!");
System.out.println("The blacklist is as follows:");
ubz.showBlackList(); //查看黑名单
}else if (which == 4) {
System.out.println("Exit successful!"); //退出管理员登录,返回上一界面
break;
}else System.out.println("Try again");
}//end while
} //end else if (whichLogin == 2)
else System.out.println("Try again");
}//end top while
}//main
}