学生管理系统StudentManager类中修改方法与降序排序方法
修改方法
需求:
根据用户指定ID真实修改数组中保存的学生对象数据
流程分析:
1、找到对应的学生对象
2、修改其中的指定数据
方法分析:
权限修饰符:public 类外调用该方法
是否需要static关键字:不需要,方法操作非静态成员变量Student类数组
返回值类型:boolean 修改成功返回true,未找到对应学生对象返回false
方法名:modify
形式参数列表:int id
方法声明:public boolean modify(int id)
public boolean modify(int id) {
Student student = get(id);
if (null == student) {
System.out.println("Not Found!!");
return false;
}
Scanner sc = new Scanner(System.in);
int choose = 0;
while (choose != 5) {
System.out.println("ID: " + student.getId());
System.out.println("Name: " + student.getName());
System.out.println("Age: " + student.getAge());
System.out.println("Gender: " + student.getGender());
System.out.println("Score: " + student.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 (choose) {
case 1:
System.out.println("请输入学生姓名");
String name = sc.next();
student.setName(name);
break;
case 2:
System.out.println("请输入学生年龄");
int age = sc.nextInt();
student.setAge(age);
break;
case 3:
System.out.println("请输入学生性别");
char gender = sc.nextLine().charAt(0);
student.setGender(gender);
break;
case 4:
System.out.println("请输入学生成绩");
float score = sc.nextInt();
student.setScore(score);
break;
case 5:
System.out.println("保存退出");
break;
default:
System.out.println("选择错误,请重新选择");
break;
}
}
return true;
}
降序排序方法(选择排序法)
需求:
根据学生成绩降序排序
思想:
排序算法操作,不能在原数组中操作,需要另外准备一个排序用的临时数组,将原数组中的数据拷贝到临时数组中,然后在临时数组中进行排序操作。
流程分析:
1、创建临时数组
2、数据拷贝
3、降序排序
方法分析:
权限修饰符:public 类外调用该方法
是否需要static关键字:不需要,方法操作非静态成员变量Student类数组
返回值类型:void 该方法不需要返回值
方法名:scoreSortDesc
形式参数列表:该方法不需要参数
方法声明:public void scoreSortDesc()
public void scoreSortDesc() {
Student[] sortTemp = new Student[size];
for (int i = 0; i < size; i++) {
sortTemp[i] = allStus[i];
}
for (int i = 0; i < size - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < size; j++) {
if (sortTemp[maxIndex].getScore() < sortTemp[j].getScore()) {
maxIndex = j;
}
}
if (maxIndex != i) {
Student temp = sortTemp[i];
sortTemp[i] = sortTemp[maxIndex];
sortTemp[maxIndex] = temp;
}
}
for (int i = 0; i < size; i++) {
System.out.println(sortTemp[i]);
}
}