目录
管理系统类
管理员类
用户类
管理系统类
public class Management {
public static void main(String[] args) {
Admin admin = new Admin();
Scanner sc = new Scanner(System.in);
int i;
do {
System.out.println("---------欢迎进入2105用户管理系统---------\n" +
"1.根据id查询用户信息\n" +
"2.根据姓名查询用户信息\n" +
"3.展示所有用户信息\n" +
"4.添加用户信息\n" +
"5.修改用户信息\n" +
"6.删除用户信息\n" +
"7.退出");
System.out.println("请输入需要的操作:");
i = sc.nextInt();
switch (i){
case 1:
//1.根据id查询用户信息
System.out.println("请输入id:");
int id = sc.nextInt();
System.out.println(admin.getUserById(id));//通过创建的admin对象调用Admin类里通过id查询信息的方法,传入id
break;
case 2:
//2.根据姓名查询用户信息
System.out.println("请输入姓名:");
String name = sc.next();
//通过创建的admin对象调用Admin类里通过姓名查询信息的方法,传入姓名
System.out.println(admin.getUserByName(name));
break;
case 3:
//3.展示所有用户信息
admin.findAll();//调用遍历数组方法打印对象数组
break;
case 4:
System.out.println("请输入要添加的姓名:");
String name1 = sc.next();
while (admin.getUserByName(name1) != null) {//判断添加的姓名是否不为空,不为空说明已存在
System.out.println("姓名已存在,请重新输入");
name1 = sc.next();//已存在,重写输入
}
System.out.println("请输入密码");
String password = sc.next();//将输入的东西赋值给password
System.out.println("请输入年龄");
int age = sc.nextInt();//将输入的东西赋值给age
System.out.println("请输入性别");
char sex = sc.next().charAt(0);//将输入的东西赋值给sex
User user = new User(name1,password,age,sex);//将上面的输入的变量存入对象
admin.addUser(user);//调用添加方法将对象存入数组
break;
//5.修改用户信息
case 5:
String name2;
System.out.println("请输入要修改的用户id");
int id1 = sc.nextInt();
//传入用户输入的id,调用id查询对象信息的方法判断找到的返回的对象是否为空
while (admin.getUserById(id1) == null) {
//通过admin对象调用Admin类的方法,如果调用回来的对象为空,说明id不存在,不可以修改
System.out.println("id不存在,请重新输入");
id1 = sc.nextInt();
}
System.out.println("请输入要添加的姓名:");
String name3 = sc.next();
//通过姓名去对象数组里查找,判断添加的姓名是否不为空,不为空说明已存在,为空则可以添加
while (admin.getUserByName(name3) != null) {
System.out.println("姓名已存在,请重新输入");
name3 = sc.next();
}
System.out.println("请输入要修改的密码:");
String password1 = sc.next();//将输入的东西赋值给password
System.out.println("请输入要修改的年龄:");
int age1 = sc.nextInt();//将输入的东西赋值给age
System.out.println("请输入要修改的性别:");
char sex1 = sc.next().charAt(0);//将输入的东西赋值给sex
admin.updateUser(id1,name3,password1,age1,sex1);//将上面的输入的变量赋值给对象
break;
//删除用户信息
case 6:
System.out.println("请输入要删除的用户id");
int id2 = sc.nextInt();
//传入用户输入的id,调用id查询对象信息的方法判断找到的返回的对象是否为空
while (admin.getUserById(id2) == null) {
//通过admin对象调用Admin类的方法,如果调用回来的对象为空,说明id不存在,不可以删除
System.out.println("id不存在,请重新输入");
id2 = sc.nextInt();
}
admin.deleteUserById(id2);//将用户输入的id传入删除方法执行删除用户方法
break;
case 7:
System.out.println("谢谢使用,欢迎下次使用");
break;
default:
System.out.println("您输入的操作有误,请重新输入");
break;
}
}while (i != 7);//输入不为7重新输入
}
}
管理员类
public class Admin {
User[] users = new User[10];//创建存储对象的数组
User user1 = new User("张三","1231",12,'男');//新建一个对象user1
User user2 = new User("李四","123",18,'女');//新建一个对象user2
User user3 = new User("王五","111",20,'男');//新建一个对象user3
//Admin无参构造方法
public Admin(){
users[0] = user1;//将对象User1赋值给数组的第一个元素
users[1] = user2;//将对象User2赋值给数组的第一个元素
users[2] = user3;//将对象User3赋值给数组的第一个元素
}
//通过id查询用户数组
public User getUserById(int id){//返回值为一个对象User传入一个id
User user = null;//创建一个空对象user接收对象信息
for (int i = 0; i < users.length; i++) {
if(users[i] != null && users[i].getId() == id){//判断找到的对象不为空并对象的id跟用户输入的id一样
user = users[i];//找到信息,将对象的信息赋值给本方法内新建的对象user
break;//找到对象,赋值给空对象,结束操作
}
}
return user;//返回一个对象,装有与用户输入的id相匹配的对象信息
}
//添加用户
public void addUser(User user){
for (int i = 0; i < users.length; i++) {
if(users[i] == null){
users[i] = user;
System.out.println(users[i]);
break;
}
}
}
//通过id删除用户
public void deleteUserById(int id){//传入需要删除的id
for (int i = 0; i < users.length; i++) {
if(users[i] != null && users[i].getId() == id){//与之id匹配的用户是否为空
users[i] = null;//将对象的属性赋值为空
break;
}
}
System.out.println("用户删除已成功");
}
//通过名字查询用户信息
public User getUserByName(String name){//返回值为一个对象,传入一个姓名
User user = null;//新建一个空对象用于接收找到的对象信息
for (int i = 0; i < users.length; i++) {
//判断,找到对象,相匹配的对象是否为空
if(users[i] != null && users[i].getUserName().equals(name)){
user = users[i];//将找到的对象的信息赋值给空对象存储
break;//找到并赋值给新对象后即跳出循环
}
}
return user;//返回一个对象
}
//打印所有用户
public void findAll(){
for (int i = 0; i < users.length; i++) {//循环对象数组
if(users[i] != null){//判断对象是否为空,输出不为空的对象
System.out.println(users[i]);//打印不为空的对象
}
}
}
//修改用户信息
//传入id,name,password,age,sex属性
public void updateUser(int id,String name,String password,int age,char sex){
//将传入的id传入getUserById方法判断用户是否存在且不为空
User user = getUserById(id);//将新建的对象指向getUserById方法返回的对象
user.setUserName(name);//将传入的name属性赋值给对象的name
user.setPassword(password);//将传入的password属性赋值给对象的password
user.setAge(age);//将传入的age属性赋值给对象的age
user.setSex(sex);//将传入的sex属性赋值给对象的sex
System.out.println(user);//对象赋值成功,打印对象
System.out.println("修改成功");
}
}
用户类
public class User {
private String userName;//定义姓名
private String password;//密码
private int id;//用户id
static int uid = 0;//定义一个用户id,用来统计用户被创建的次数
private int age;//年龄
private char sex;//性别
{
++uid;//构造代码块每次创建对象会执行一次,用来统计创建了几个对象
}
//User有参构造方法,需要传入name,password,age,sex
public User(String userName, String password, int age, char sex) {
this.id = uid;
this.userName = userName;
this.password = password;
this.age = age;
this.sex = sex;
}
//get\set方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", password='" + password + '\'' +
", id=" + id +
", age=" + age +
", sex=" + sex +
'}';
}
}