用Java创建一个成绩数组,对他进行增删改查的操作,并使用冒泡排序。具体操作是使用循环输入操作数字,switch进入不同分支,跳转不同自定义方法
时间: 2024-09-22 19:06:06 浏览: 34
在Java中,你可以使用ArrayList来动态管理学生的成绩数组,因为ArrayList支持增删改查操作。首先,你需要创建一个Student对象,包含姓名和成绩属性。然后,你可以定义一个ScoreList类,包含一个ArrayList<Student>类型的成员变量,以及相应的增删改查方法。接下来,我们可以实现冒泡排序算法对成绩列表进行排序。
以下是简单的示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
class Student {
String name;
double score;
// 构造函数、getter和setter省略
@Override
public String toString() {
return "Name: " + name + ", Score: " + score;
}
}
class ScoreList {
private ArrayList<Student> scores;
public ScoreList() {
scores = new ArrayList<>();
}
// 添加学生分数
public void addScore(String name, double score) {
Student student = new Student();
student.name = name;
student.score = score;
scores.add(student);
}
// 删除指定名字的学生分数
public boolean removeScoreByName(String name) {
for (int i = 0; i < scores.size(); i++) {
if (scores.get(i).name.equals(name)) {
scores.remove(i);
return true;
}
}
return false;
}
// 修改指定名字的学生分数
public void updateScore(String name, double newScore) {
for (int i = 0; i < scores.size(); i++) {
if (scores.get(i).name.equals(name)) {
scores.set(i, new Student(name, newScore));
break;
}
}
}
// 查询所有学生并排序
public void sortScores() {
Collections.sort(scores, (a, b) -> a.score - b.score); // 冒泡排序替换为Collections.sort
}
// 打印当前列表
public void printScores() {
for (Student student : scores) {
System.out.println(student);
}
}
}
public class Main {
public static void main(String[] args) {
ScoreList list = new ScoreList();
while (true) {
System.out.println("1. 添加分数");
System.out.println("2. 删除分数");
System.out.println("3. 更新分数");
System.out.println("4. 查看并排序分数");
System.out.println("5. 退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入姓名和分数:");
String name = scanner.next();
double score = scanner.nextDouble();
list.addScore(name, score);
break;
case 2:
System.out.println("请输入要删除的学生姓名:");
name = scanner.next();
list.removeScoreByName(name);
break;
case 3:
System.out.println("请输入要更新的学生姓名和新分数:");
name = scanner.next();
double newScore = scanner.nextDouble();
list.updateScore(name, newScore);
break;
case 4:
list.sortScores();
list.printScores();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("无效选择,请重试!");
}
}
}
}
```
阅读全文