编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、期中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能: (1)列出某个学生的所有成绩 <2)列出某门课程每个学生的息评成绩,及所有学生总评成绩的更来众 (3)分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生 用java代码进行实现
时间: 2024-02-22 19:00:30 浏览: 134
以下是一个简单的学生成绩管理系统的Java实现,包括学生类和成绩类:
```java
import java.util.ArrayList;
// 成绩类
class Score {
// 成员变量
private double dailyScore; // 平时成绩
private double midtermScore; // 期中考试成绩
private double internshipScore; // 实习成绩
private double finalScore; // 期末考试成绩
private double totalScore; // 总评成绩
// 构造函数
public Score(double dailyScore, double midtermScore, double internshipScore, double finalScore) {
this.dailyScore = dailyScore;
this.midtermScore = midtermScore;
this.internshipScore = internshipScore;
this.finalScore = finalScore;
// 计算总评成绩
this.totalScore = (dailyScore + midtermScore + internshipScore + finalScore) / 4;
}
// 成绩的getter方法
public double getDailyScore() {
return dailyScore;
}
public double getMidtermScore() {
return midtermScore;
}
public double getInternshipScore() {
return internshipScore;
}
public double getFinalScore() {
return finalScore;
}
public double getTotalScore() {
return totalScore;
}
}
// 学生类
class Student {
// 成员变量
private String id; // 学号
private String name; // 姓名
private int age; // 年龄
private ArrayList<Score> scores; // 成绩列表
// 构造函数
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
this.scores = new ArrayList<>();
}
// 添加成绩
public void addScore(Score score) {
this.scores.add(score);
}
// 获取成绩列表
public ArrayList<Score> getScores() {
return scores;
}
// 获取总评成绩列表
public ArrayList<Double> getTotalScores() {
ArrayList<Double> totalScores = new ArrayList<>();
for (Score score : scores) {
totalScores.add(score.getTotalScore());
}
return totalScores;
}
}
// 主程序
public class Main {
public static void main(String[] args) {
// 创建学生对象
Student student1 = new Student("001", "张三", 20);
Student student2 = new Student("002", "李四", 21);
// 添加成绩
student1.addScore(new Score(80, 75, 90, 85));
student1.addScore(new Score(70, 85, 80, 90));
student2.addScore(new Score(85, 90, 75, 80));
student2.addScore(new Score(90, 80, 85, 75));
// 列出某个学生的所有成绩
System.out.println("张三的所有成绩:");
for (Score score : student1.getScores()) {
System.out.println("平时成绩:" + score.getDailyScore() + ",期中考试成绩:" + score.getMidtermScore()
+ ",实习成绩:" + score.getInternshipScore() + ",期末考试成绩:" + score.getFinalScore() + ",总评成绩:"
+ score.getTotalScore());
}
// 列出某门课程每个学生的总评成绩,及所有学生总评成绩的平均值
ArrayList<Double> totalScores = new ArrayList<>();
for (Student student : new Student[] { student1, student2 }) {
System.out.println(student.getName() + "的总评成绩列表:" + student.getTotalScores());
totalScores.addAll(student.getTotalScores());
}
double sum = 0;
for (double score : totalScores) {
sum += score;
}
double average = sum / totalScores.size();
System.out.println("所有学生总评成绩的平均值:" + average);
// 分区段统计某门课程的学生总评成绩
int count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0;
for (double score : totalScores) {
if (score < 60) {
count1++;
} else if (score < 70) {
count2++;
} else if (score < 80) {
count3++;
} else if (score < 90) {
count4++;
} else {
count5++;
}
}
System.out.println("60分以下的学生人数:" + count1);
System.out.println("60至70分的学生人数:" + count2);
System.out.println("70至80分的学生人数:" + count3);
System.out.println("80至90分的学生人数:" + count4);
System.out.println("90分以上的学生人数:" + count5);
}
}
```
此程序可以实现以下功能:
1. 列出某个学生的所有成绩。
2. 列出某门课程每个学生的总评成绩,及所有学生总评成绩的平均值。
3. 分区段统计某门课程的学生总评成绩。
阅读全文