1.创建student的实体类
package Student1;
import java.util.ArrayList;
/**
* 学生类
* @author MECHREVO
*
*/
public class Student implements Comparable{
private int id;//学号
private String name;//姓名
private String denger;//性别
private int age;//年龄
private String className;//班级
public Student() {//无参构造器
}
public Student(int id,String name, String denger, int age, String className) {//全参构造器
if(age<0) {
System.err.println("大兄弟看着点填啊,你家孩子年龄为负啊,给你一个默认年龄20");
this.age = 20;
}else if(age>200) {
System.err.println("你是千年老妖啊!!!,给你一个默认年龄20");
this.age = 20;
}else {
this.age = age;
}
this.id = id;
this.name = name;
this.denger = denger;
this.className = className;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDenger() {
return denger;
}
public void setDenger(String denger) {
this.denger = denger;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
@Override
public String toString() {
return "{"+getId()+" , "+getName()+" , "+getDenger()+" , "+getAge()+" , "+getClassName()+"}";
}
@Override
public int compareTo(Object o) {
if(this == o) {
return 0;
}
if(o instanceof Student) {
Student student = (Student) o;
return this.getId()-(student.getId());
}else {
return 0;
}
}
}
2.创建一个StudentMain类用来,写涉及到的方法
package Student1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
import com.sun.xml.internal.ws.wsdl.ActionBasedOperationSignature;
import jdk.internal.org.objectweb.asm.tree.IntInsnNode;
@SuppressWarnings("all")
public class StudentMain {
static Scanner sc = new Scanner(System.in);
static ArrayList<Student> stu = new ArrayList<>();
static int id;
public static void addStudent() {//添加学生
stu.add(add1());
}
public static void romeStudent() {//根据ID删除学生
System.out.println("请输入要删除学生的ID");
id = sc.nextInt();
if(judge(id)==-1) {
return;
}
System.out.println("已经删除学生"+stu.get(judge(id)));
stu.remove(judge(id));
}
public static void queryStudent() {//根据ID查询学生
System.out.println("请输入要查询学生的ID");
id = sc.nextInt();
if(judge(id)==-1) {
return;
}
System.out.println(stu.get(judge(id)));
}
public static void amendStudent() {//根据ID修改指定的学生数据
System.out.println("请输入要修改学生的ID");
id = sc.nextInt();
if(judge(id)==-1) {
return;
}
int i = judge(id);
stu.remove(i);
Student s1 = add1();
stu.add(s1);
System.out.println("已成功修改学生信息:"+s1);
}
public static void showStudent() {//遍历输出全部的学生信息
if(stu.size()!=0) {
for(Student s:stu) {
System.out.println(s);
}
}else {
System.out.println("目前还没有学生信息");
}
}
public static int judge(int id) {//根据ID返回下标
boolean b = true;
int j = -1;
for(Student s:stu) {
j++;
if(s.getId()==id) {
b=false;
break;
}
}
if(b) {
System.err.println("输入的学生ID不存在");
j=-1;
}
return j;
}
public static Student add1() {//添加学生的方法
System.out.println("请输入学生ID");
id = sc.nextInt();
for(Student s:stu) {
if(s.getId()==id) {
System.err.println("输入错误,该学号已经存在,请重新输入学号");
id = sc.nextInt();
break;
}
}
System.out.println("请输入学生姓名");
sc.nextLine();//相当于清空之前所有输入遗留的数据
String name = sc.nextLine();
System.out.println("请输入学生性别");
String denger = sc.nextLine();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生班级");
sc.nextLine();//相当于清空之前所有输入遗留的数据
String className = sc.nextLine();
return new Student(id,name,denger,age,className);
}
public static void showMenu(){//展示菜单
System.out.println("===================================================");
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(" 6.退出系统");
System.out.println("===================================================");
}
}
3.创建一个Test类用来执行方法和显示菜单
package Student1;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println();
System.out.println("********************************************欢迎来到学生管理系统********************************************");
System.out.println();
while(true) {
System.out.println("请输入管理员账号");
String name = sc.nextLine();
System.out.println("请输入管理员密码");
String password = sc.nextLine();
if(!name.equals("system")||!password.equals("123456")) {
System.out.println("账号或者密码不正确-------------");
}else {
break;
}
}
while (true) {
StudentMain.showMenu();
int a = sc.nextInt();
switch (a) {
case 1:
StudentMain.addStudent();
break;
case 2:
StudentMain.romeStudent();
break;
case 3:
StudentMain.amendStudent();
break;
case 4:
StudentMain.queryStudent();
break;
case 5:
StudentMain.showStudent();
break;
case 6:
System.out.println("是否确定退出(y/n)");
sc.nextLine();
String str = sc.nextLine();
if(str.equals("Y")||str.equals("y")) {
System.out.println("退出成功!!!");
return;
}else if(str.equals("N")||str.equals("n")) {
System.out.println("已取消退出!!!");
break;
}else {
System.err.println("输入错误");
break;
}
default:
System.err.println("输入编号错误自动退出");
return;
}
}
}
}