import java.util.*;
import java.util.Random;
public class test11 {
public static void main(String[] args) {
ArrayList<Student1> studentsList = new ArrayList<>();
Student1 s1 = new Student1("0001", "wangwu", 17, "xianggang");
studentsList.add(s1);
Student1 s2 = new Student1("0002", "xiaogan", 18, "hunan");
studentsList.add(s2);
Student1 s3 = new Student1("0003", "zhangsan", 20, "hubei");
studentsList.add(s3);
Student1 s4 = new Student1("0004", "lisi", 21, "shanghai");
studentsList.add(s4);
xuanzhe(studentsList);
}
public static void xuanzhe(ArrayList<Student1> studentsList) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("输入1,查找学生");
System.out.println("输入2,插入学生");
System.out.println("输入3,删除学生");
System.out.println("输入4,修改学生信息");
System.out.println("输入5,结束运行");
System.out.println("请输入数字,选择进行的操作");
int number = sc.nextInt();
if (number == 1) {
getStudent(studentsList);
} else if (number == 2) {
insert(studentsList);
} else if (number == 3) {
delete(studentsList);
} else if (number == 4) {
xiugai(studentsList);
} else if (number == 5) {
System.exit(0); // 当选择5时,退出程序
}
}
}
public static void getStudent(ArrayList<Student1> studentsList) {
System.out.println("输入1,用学生姓名查找学生信息");
System.out.println("输入2,用学生学号查找学生信息");
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int choice = sc.nextInt();
if (choice == 1) {
String name = sc.next();
int index = check1(name, studentsList);
if (index != -1) {
Student1 std1 = studentsList.get(index);
System.out.println("学号为:" + std1.getID());
System.out.println("姓名为:" + std1.getName());
System.out.println("年龄为:" + std1.getAge());
System.out.println("家庭地址为:" + std1.getAddress());
xuanzhe(studentsList);
} else {
System.out.println("没有找到该学生,该学生不存在或者查找的信息错误");
System.out.println("请再一次操作");
getStudent(studentsList);
}
} else if (choice == 2) {
String ID = sc.next();
int index = check(ID, studentsList);
if (index != -1) {
Student1 std1 = studentsList.get(index);
System.out.println("学号为:" + std1.getID());
System.out.println("姓名为:" + std1.getName());
System.out.println("年龄为:" + std1.getAge());
System.out.println("家庭地址为:" + std1.getAddress());
xuanzhe(studentsList);
} else {
System.out.println("没有找到该学生,该学生不存在或者查找的信息错误");
System.out.println("请再一次操作");
getStudent(studentsList);
}
}
}
public static int check(String ID, ArrayList<Student1> studentsList) { // 比对系统中是否存在该学生
for (int i = 0; i < studentsList.size(); i++) {
Student1 std = studentsList.get(i);
if (std.getID().equals(ID)) {
return i;
}
}
return -1;
}
public static int check1(String name, ArrayList<Student1> studentsList) { // 比对系统中是否存在该学生
for (int i = 0; i < studentsList.size(); i++) {
Student1 std = studentsList.get(i);
if (std.getName().equals(name)) {
return i;
}
}
return -1;
}
public static void insert(ArrayList<Student1> studentsList) {
Scanner sc = new Scanner(System.in);
Student1 std = new Student1();
System.out.println("请输入学生姓名");
String name = sc.next();
std.setName(name);
System.out.println("请输入学年龄");
int age = sc.nextInt();
std.setAge(age);
System.out.println("请输入学生家庭住址");
String address = sc.next();
std.setAddress(address);
String ID = xuehao(studentsList); // 调用函数,自动生成学生学号;
std.setID(ID);
studentsList.add(std);
xuanzhe(studentsList);
}
public static String xuehao(ArrayList<Student1> studentsList) {
int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
String result = "";
Random r = new Random();
while (true) {
result = "";
for (int i = 0; i < 4; i++) {
int index = r.nextInt(10);
result += arr[index]; // 直接将整数添加到字符串中
}
int t = check(result, studentsList);
if (t == -1) {
return result;
} else {
xuehao(studentsList);
}
}
}
public static void delete(ArrayList<Student1> studentsList) { // 删除学生的方法
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除学生的姓名");
String name = sc.next();
System.out.println("请输入要删除学生的学号");
String ID = sc.next();
int index1 = check(ID, studentsList);
int index2 = check1(name, studentsList);
if (index1 == index2) { // 验证要删除的学生信息是否正确,比对姓名与学号信息是否一致;
studentsList.remove(index1);
} else {
System.out.println("请重新输入要删除的学生信息");
delete(studentsList);
}
xuanzhe(studentsList);
}
public static void xiugai(ArrayList<Student1> studentsList) { // 修改学生信息的方法;
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生的学号");
String ID = sc.next();
int index = check(ID, studentsList);
if (index != -1) {
Student1 std = studentsList.get(index);
System.out.println("请输入要修改学生的年龄");
int age = sc.nextInt();
std.setAge(age);
System.out.println("请输入要修改学生的家庭地址");
String address = sc.next();
std.setAddress(address);
xuanzhe(studentsList);
} else {
System.out.println("要修改的学生不存在,请重新输入要修改的学生的学号");
xiugai(studentsList);
}
}
}
import java.util.Objects;
public class Student1 {//创建学生信息的类;
private String ID;//学生的学号;
private String name;//学生姓名;
private int age;//学生年龄;
private String address;//学生的家庭住址;
public Student1() {
}
public Student1(String ID, String name, int age, String address) {
this.ID = ID;
this.name = name;
this.age = age;
this.address = address;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student1 student1 = (Student1) o;
return age == student1.age && Objects.equals(ID, student1.ID) && Objects.equals(name, student1.name) && Objects.equals(address, student1.address);
}
@Override
public int hashCode() {
return Objects.hash(ID, name, age, address);
}
}
1.通过这些小的程序,让我了解了Java的基本语法;
2.了解了一些Java类创建和封装
3.了解了一些编程的思想,对复杂问题进行拆分,让问题由复杂化变成简单的小问题