/**
* 该方法是修改对应id的学生信息的方法
* @param id 需要修改学生的id
* @return 修改成功返回true,失败返回false
*/
public boolean modify(int id) {
// 调用类内get方法
Student stu = get(id);
// 判断对象的值是否为null
if (null == stu) {
System.out.println("id信息有误");
return false;
}
// 创建一个Scanner对象
Scanner sc = new Scanner(System.in);
int choose = 0;
// 以while循环完成修改信息
while (choose != 5) {
System.out.println("id" + stu.getiD());
System.out.println("名字" + stu.getName());
System.out.println("年龄" + stu.getAge());
System.out.println("性别" + stu.getGender());
System.out.println("成绩" + stu.getScore());
// 功能提示
System.out.println("1 : 修改姓名 ");
System.out.println("2 :修改年龄 ");
System.out.println("3 : 修改性别" );
System.out.println("4 : 修改成绩 ");
System.out.println("5 : 退出程序");
choose = sc.nextInt();
sc.nextLine();
// 以switch选择要操作的内容
switch (choose) {
case 1:
System.out.println("请输入要修改的名字");
String name = sc.nextLine();
stu.setName(name);
break;
case 2:
System.out.println("请输入要修改的年龄");
int age = sc.nextInt();
stu.setAge(age);
break;
case 3:
System.out.println("请输入要修改的性别");
char gender = sc.nextLine().charAt(0);
stu.setGender(gender);
break;
case 4:
System.out.println("请输入要修改的成绩");
int score = sc.nextInt();
stu.setScore(score);
break;
case 5:
System.out.println("保存退出");
break;
default:
System.out.println("输入有误");
break;
}
}
// 修改成功返回true
return true;
}
/**
* 该方法是降序排序学生成绩的方法
* 通过学生成绩降序排序展示学生的信息
*/
public void scoreSortDesc() {
// 该方法不可随意操作对象数组的顺序,所以重新定义一个对象数组
Student[] sortTemp = new Student[size];
// 拷贝数组内容
for (int i = 0; i < sortTemp.length; i++) {
sortTemp[i] = allStus[i];
}
for (int i = 0; i < sortTemp.length; i++) {
// index用来保存下标用于交换
int index = i;
for (int j = i + 1; j < sortTemp.length; j++) {
if (sortTemp[index].getScore() > sortTemp[j].getScore()) {
index = j;
}
}
// 定义一个临时对象来交换
if (index != i) {
Student stu = sortTemp[index];
sortTemp[index] = sortTemp[i];
sortTemp[i] = stu;
}
}
// 展示保存后的效果
for (int i = 0; i < sortTemp.length; i++) {
sortTemp[i].mprint();
}
}
(增删改查)续:改和排序
最新推荐文章于 2023-09-20 22:24:47 发布