移动部第一次作业 2021-05-31
Posted 超霸霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动部第一次作业 2021-05-31相关的知识,希望对你有一定的参考价值。
已经一个星期都没更新了,今天才记起我在CSDN还有账号,其实这个星期在忙后端部的第一次作业,这个作业也是学习了部门其他小伙伴的代码后才写出来的,废话不多说直接上题目和代码
这是题目:
这是我的作业结构:
下面是我的代码:
Admin
package mycode;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Admin
{
//管理员用户名
private String adminName;
//管理员用户密码
private String adminPassword;
//list容器存放用户信息
private List<User> list = new ArrayList<>();
//初始化管理员的用户名和密码
public Admin()
{
setAdminName("蒋超");
setAdminPassword("123456");
}
//设置管理员名
public void setAdminName(String adminName)
{
this.adminName=adminName;
}
//设置管理员密码
public void setAdminPassword(String adminPassword)
{
this.adminPassword=adminPassword;
}
//主菜单
public void menu()
{
System.out.println("|-------------------|");
System.out.println("|-----1.用户登录-----|");
System.out.println("|-----2.管理员登录---|");
System.out.println("|-----3.用户注册-----|");
System.out.println("|-----4.找回密码-----|");
System.out.println("|-----5.退出系统 -----|");
System.out.println("|-------------------|");
}
//用户面板
public void userMenu()
{
System.out.println("-----1.退出登录-----");
System.out.println("-----2.注销账号-----");
System.out.println("-----3.修改密码-----");
}
//管理员面板
public void adminMenu()
{
System.out.println("-----1.退出登录--------");
System.out.println("-----2.打印所有信息-----");
System.out.println("-----3.删除用户信息------");
System.out.println("-----4.查找用户信息------");
}
//用户登录
public void userLogin()
{
String userName;
String userPassword;
//用户输入账户名和密码
Scanner scanner=new Scanner(System.in);
System.out.println("请输入用户名:");
userName=scanner.next(); //接收字符串用.next()
System.out.println("请输入密码:");
userPassword=scanner.next();
//判断账户名和密码是否正确,index为用户在list中的下标
int index=passwordIsTrue(userName,userPassword);
//若密码正确
if(index!=-1)
{
System.out.println(userName+" 登录成功!");
while(true)
{
userMenu();
int get=scanner.nextInt();
if(get==1)
{
//退出登录
userLogOut(index);
break;
}
else if(get==2)
{
//注销账号
userUnsubscribe(index);
break;
}
else if(get==3)
{
//修改密码
modifyUserPassword(index);
}
else
{
System.out.println("你的输入有误!");
}
}
}
//密码不正确
else
{
System.out.println("登录失败!");
}
}
//管理员登录
public void adminLogin()
{
String adminName;
String adminPassword;
//用户输入账户名和密码
Scanner scanner=new Scanner(System.in);
System.out.println("请输入管理员账号:");
adminName=scanner.next();
System.out.println("请输入管理员密码:");
adminPassword=scanner.next();
if((adminName.equals(this.adminName))&&(adminPassword.equals(this.adminPassword)))
{
while(true)
{
System.out.println(adminName+"登录成功!");
adminMenu();
int get=scanner.nextInt();
System.out.println("请输入你的操作:");
if(get==1)
{
//退出登录
System.out.println("管理员退出登录!");
break;
}
else if(get==2)
{
//打印所有信息
printAllUserInfo();
}
else if(get==3)
{
//删除用户信息
deleteUser();
}
else if(get==4)
{
//查找用户信息
System.out.println("请输入你要查找的用户名:");
String userName=new Scanner(System.in).next();
int index=findUser(userName);
if(index!=-1)
{
list.get(index).showInfo();
}
else
{
System.out.println("你查找的用户不存在!");
}
}
else
{
System.out.println("你的输入有误!");
}
}
}
else
{
System.out.println("登录失败!");
}
}
//用户注册
public void userRegister()
{
System.out.println("请输入用户名:");
String userName=new Scanner(System.in).next();
System.out.println("请输入密码:");
String userPassword=new Scanner(System.in).next();
if(nameExist(userName))
{
System.out.println("用户已存在!");
return;
}
else
{
User user=new User(userName,userPassword);
list.add(user);
System.out.println("注册成功!");
}
}
//退出系统
public void exit()
{
return;
}
//用户面板中的方法:
//判断密码是否正确
public int passwordIsTrue(String userName,String userPassword)
{
for(int i=0;i< list.size();i++)
{
if(userName.equals(list.get(i).getUserName())&&userPassword.equals(list.get(i).getUserPassword()))
{
return i;
}
}
return -1;
}
//判断账号是否已经存在
public Boolean nameExist(String userName)
{
int index=findUser(userName);
if(index!=-1)
{
return true;
}
else
{
return false;
}
}
//修改用户密码
public void modifyUserPassword(int index)
{
System.out.println("请输入修改后的密码:");
String newPassword=new Scanner(System.in).next();
list.get(index).setUserPassword(newPassword);
System.out.println("修改成功!");
}
//退出登录
public void userLogOut(int index)
{
System.out.println("账号:"+list.get(index).getUserName()+" 退出登录!");
}
//注销账号
public void userUnsubscribe(int index)
{
System.out.println("账号:"+list.get(index).getUserName()+"注销成功!");
list.remove(index);
}
//找回密码
public void findBackPassword()
{
System.out.println("请输入用户名:");
String userName=new Scanner(System.in).next();
int index=findUser(userName);
if(index==-1)
{
System.out.println("该用户不存在!");
}
else
{
int choice=list.get(index).getChoice();
if(choice==1)
{
System.out.println("请输入你的父亲姓名:");
}
else if(choice==2)
{
System.out.println("请输入你的母亲姓名:");
}
else if(choice==3)
{
System.out.println("请输入你的母校名称:");
}
else
{
System.out.println("你的输入有误");
}
String answer=new Scanner(System.in).next();
if(answer.equals(list.get(index).getAnswer()))
{
System.out.println("回答正确!");
System.out.println("你的密码为:"+list.get(index).getUserPassword());
}
else
{
System.out.println("你的回答错误!");
}
}
}
//判断密保问题是否正确
public Boolean secrutyIsTrue()
{
return true;
}
//管理员面板中的方法:
//打印所有用户信息
public void printAllUserInfo()
{
if(list.size()==0)
{
System.out.println("用户为空!");
}
else
{
for(int i=0;i<list.size();i++)
{
list.get(i).showInfo();
}
}
}
//根据用户名查找用户信息
public int findUser(String userName)
{
for(int i=0;i<list.size();i++)
{
if(userName.equals(list.get(i).getUserName()))
{
return i;
}
}
return -1;
}
//根据用户名删除用户信息
public void deleteUser()
{
System.out.println("请输入你要查找的用户名:");
String userName=new Scanner(System.in).next();
int index=findUser(userName);
if(index!=-1)
{
list.remove(index);
System.out.println("删除成功!");
}
else
{
System.out.println("你要删除的用户不存在!");
}
}
}
User:
package mycode;
import java.util.Scanner;
public class User
{
//用户名
private String userName;
//用户密码
private String userPassword;
//密保答案
private String answer;
//密保选择
private int choice;
public User(String userName,String userPassword)
{
setUserName(userName);
setUserPassword(userPassword);
setAnswer();
}
//设置用户名
public void setUserName(String userName)
{
this.userName=userName;
}
//设置用户密码
public void setUserPassword(String userPassword)
{
this.userPassword=userPassword;
}
//获取账户名
public String getUserName()
{
return this.userName;
}
//获取加密后的用户密码
public String getEncryptedPassword()
{
String encryptedPassword="";
for(int i=0;i<userPassword.length();i++)
{
encryptedPassword+="*";
}
return encryptedPassword;
}
//获取用户密码
public String getUserPassword()
{
return this.userPassword;
}
//打印信息
public void showInfo()
{
System.out.println("账号名:"+this.userName+"\\t\\t账号密码:"+getEncryptedPassword());
}
//密保菜单
public void securityMenu()
{
System.out.println("请你选择一个问题,以用于找回密码:");
System.out.println("1.您的父亲姓名")以上是关于移动部第一次作业 2021-05-31的主要内容,如果未能解决你的问题,请参考以下文章