package homework;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StudentManagerArrayList extends Student {
private List<Student> list = new ArrayList<>();
private Scanner input = new Scanner(System.in);
public void startMenm() {
while(true) {
System.out.println("=====欢迎来到xxxx的学生管理系统");
System.out.println("1.增加学生");
System.out.println("2.修改学生");
System.out.println("3.删除学生 ");
System.out.println("4.查询所有学生信息");
System.out.println("5.根据学号查询学生信息");
System.out.println("============================");
System.out.println("请输入您的选择");
int choice = input.nextInt();
switch(choice) {
case 1:
addStudent();
break;
case 2:
modifyStudent();
break;
case 3:
deleteStudent();
break;
case 4:
queryAll();
break;
case 5:
queryById() ;
break;
default:
System.out.println("输入错误,请重新输入!");
}
}
}
public void addStudent() {
// int index = judge();//调用数组是否满的对象,并赋值给index
// if(index == -1) {
// System.out.println("对不起,集合已满");//索引值为-1,数组已满
// }else { //索引值不为-1
int index1 = 0;//定义就一个判断
int id = 0;//定义一个学号
while(index1 != -1) {//定义一个循环
System.out.println("请输入学号");
id = input.nextInt();//手动输入id
index1 = existStu(id);//调用有参通过id查找对象的索引值,并赋值给index1,如果为-1则没有这个对象,打破循环,
}
System.out.println("请输出姓名");//输入对象的属性
String name = input.next();
System.out.println("请输出年龄");
int age = input.nextInt();
System.out.println("请输出性别");
String sex = input.next();
Student stu1 = new Student(name,id,age,sex);//创建一个Student对象并把地址给Student类的应用变量stu1
list.add(stu1);//把对象赋值给数组中对应id的索引值的对象中
}
// }
// private int judge() {//方法,返回数组中对象为null值的索引值,如果为-1表示数组已满
// for(int i = 0;i < list.size();i++) {
// if(list.get(i) == null) {
// return i;
// }
// }
// return -1;
// }
public void modifyStudent() {
int index = existStu();//调用无参通过id查对象的索引值
if(index == -1) {//如果索引值为-1,则没有此人
System.out.println("查无此人");
}else {//如果索引值不为-1,通过父类方法修改属性
System.out.println("请输出修改姓名");
String name = input.next();
System.out.println("请输出修改年龄");
int age = input.nextInt();
System.out.println("请输出修改性别");
String sex = input.next();
list.get(index).setName(name);
list.get(index).setAge(age);
list.get(index).setSex(sex);
System.out.println("修改成功");
}
}
public void deleteStudent() {
int index = existStu();//调用无参通过学号查对象的索引值的方法
if(index == -1) {//如果索引值为-1,表明没有这个对象
System.out.println("查无此人");
}else {
list.remove(index);//如果不为-1,则将此索引值的对象赋值为null
}
}
public void queryAll() {
boolean flag = false;//定义一个判断
for(Student st :list) {//遍历集合中的学生对象
if(st != null) {
System.out.println(st);//学生对象不为null,打印学生对象并把判断改为真
flag = true;
}
}
if(flag == false) {//遍历结束后,判断如果为假,说明数组里全部为null值,无任何对象
System.out.println("暂无学生");
}
}
public void queryById() {//用id查询集合中的对象
// System.out.println(student[a-1]);
int index = existStu();//调用无参返回索引值的方法
if(index == -1) {
System.out.println("查无此人");//如果索引值为-1,就没有此人
}else {
System.out.println(list.get(index));//打印该索引值的学生对象
}
}
private int existStu() {//查询学生学号,如果有返回学生对象的索引值,没有返回-1
System.out.println("请输入需要查询学生的学号学号");
int id = input.nextInt();
int index = -1;
for(int i = 0; i<list.size();i++) {
if( list.get(i).getId() == id) {
index = i;
}
}
return index;
}
private int existStu(int id) {//传入id查找索引值,如果有这个id返回的是这个对象的索引值,如果没有返回-1
// System.out.println("请输入需要查询学生的学号学号");
// int id = input.nextInt();
int index = -1;
for(int i = 0; i<list.size();i++) {
if(list.get(i).getId() == id) {
index = i;
}
}
return index;
}
}
ArrayList方式写学生管理系统
最新推荐文章于 2022-07-18 14:00:00 发布