1.创建一个对象类
public class User {
//用户的账号
private String Id ;
//用户的密码
private String pwd;
public User(){};
public User(String id, String pwd) {
super();
Id = id;
this.pwd = pwd;
}
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "当前账号有[Id=" + Id + "]";
}
}
2.创建一个对象数组
public class DBUtil {
//用户的数组
public static User [] us =new User[10];
//用户账号密码输入错误次数的数组
public static Slip[] sl=new Slip[10];
}
3.创建用户输入错误次数的类,当次数达到一定上限,就锁定账号
public class Slip {
//用户的id
private String ID;
//输入错误的次数
private int number;
public Slip(){
}
public Slip(String iD, int number) {
super();
ID = iD;
this.number = number;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
4.创建增删改查的方法
package 对象;
import java.util.*;
import 对象.DBUtil;
import 对象.User;
import 对象.Slip;
public class UserSeries {
Scanner sc = new Scanner(System.in);
int index=0;
int index1=0;
User []us=DBUtil.us;
public void register(){
System.out.println("请输入要注册的账号");
String Id = sc.next();
boolean a = false;
for(int i=0;i<index;i++){
//判断账号有没有注册
if(us[i].getId().equals(Id)){
a =true;
break;
}
}
//如果注册的用户数量接近数组长度时,进行数组扩容
if(index==us.length-2){
User[]x=new User[us.length*2];
//将扩容后的数组进行赋值
for(int i=0;i<index;i++){
x[i]=us[i];
}us=x;
}
if(!a){
System.out.println("请输入密码");
String pwd = sc.next();
User p=new User(Id,pwd);
us[index]=p;
index++;
System.out.println("注册成功");
}else{
System.out.println("账号已存在,请重新注册");
}
}
public void login(){
Slip[] sl=DBUtil.sl;
System.out.println("请输入要登录的账号");
String ID = sc.next();
int c=-1;
for(int i=0;i<index1;i++){
if(sl[i].getID().equals(ID)){
c=i;
}
}
if(index1==sl.length-2){
Slip[]p=new Slip[sl.length*2];
for(int i=0;i<index1;i++){
p[i]=sl[i];
}sl=p;
}
//判断账号密码是否输入错误3次
if(c!=-1&&sl[c].getNumber()==3){
System.out.println("密码错误3次,请明天再来");
return;
}
for(int i=0;i<index;i++){
if(us[i].getId().equals(ID)){
System.out.println("请输入密码");
String pwd = sc.next();
if(us[i].getId().equals(ID)&&us[i].getPwd().equals(pwd)){
System.out.println("登录成功");
}else{
if(c==-1){
int number=1;
Slip po= new Slip(ID,number);
sl[index1]=po;
index1++;
}else{
sl[c].setNumber(sl[c].getNumber()+1);
}
System.out.println("密码或账号错误");
}
}else{
System.out.println("账号不存在,请重新输入");
}
}
}
public void amend(){
System.out.println("请输入要修改的账号");
String ID = sc.next();
for(int i=0;i<index;i++){
if(us[i].getId().equals(ID)){
System.out.println("请输入初始密码");
String pwd = sc.next();
if(us[i].getPwd().equals(pwd)){
System.out.println("请输入新密码");
String pwd1= sc.next();
if(!pwd.equals(pwd1)){
System.out.println("请再次输入新密码");
String pwd2=sc.next();
if(pwd2.equals(pwd1)){
us[i].setPwd(pwd1);
System.out.println("密码修改成功");
}else{
System.out.println("两次密码不一致,请重新输入");
}
}else{
System.out.println("与原密码一致,请重新输入");
}
}else{
System.out.println("密码或账号错误,请重新输入");
}
}else{
System.out.println("账号不存在,请重新输入");
}
}
}
public void check(){
for(int i=0;i<index;i++){
System.out.println("当前注册的账号有:\t"+us[i].getId());
}
}
}
5.测试类
package 对象;
import java.util.*;
public class Test {
public static void main(String[] args) {
UserSeries u = new UserSeries();
boolean one = true;
Scanner sc = new Scanner(System.in);
while(one){
System.out.println("1 注册 2登录 3修改 4查看 5退出");
int ta = sc.nextInt();
switch(ta){
case 1:
u.register();
break;
case 2:
u.login();
break;
case 3:
u.amend();
break;
case 4:
u.check();
break;
case 5:
one=false;
}
}
}
}