编写一个学生成绩管理程序。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、期中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业数不同),而总评成绩是其它成绩的平均值。 请先设计合理的对象容器类存放这些信息,然后设计程序完成以下功能:
1)列出某个学生的所有成绩;
2)列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分;
3)分区段统计某门课程的学生总评成绩,例如60 分以下的学生人数、60 至70 分的学生人数等。
根据兴趣,你还可实现其它一些功能。请仔细设计和组织你的类和使用的集合类对象。
------解决方案--------------------
- Java code
package com.day11.practise2.pojo;import java.util.ArrayList;public class Student { int stuNo;//学号 String name;//姓名 int age;//年龄 ArrayList<Score> score;//学生成绩 public Student() { super(); } public Student(int stuNo, String name, int age, ArrayList<Score> score) { super(); this.stuNo = stuNo; this.name = name; this.age = age; this.score = score; } @Override public String toString() { return "学号:"+stuNo+",姓名:"+name+",年龄: "+age+",成绩: "+score; } public String showPinshi(ArrayList<Score> list){ String message=null; for(int i =0 ;i<list.size();i++){ message= "第"+(i+1)+"门成绩为"+list.get(i); } return message; } }package com.day11.practise2.pojo;import java.util.ArrayList;public class Score { ArrayList<?> pinScore;// 平时成绩 double midScore;// 期中考试成绩 double shixiScore;// 实习成绩 double lastScore;// 期末考试成绩 double finalScore;// 总评成绩 public Score() { super(); } public Score(ArrayList<?> pinScore, double midScore, double shixiScore, double lastScore, double finalScore) { super(); this.pinScore = pinScore; this.midScore = midScore; this.shixiScore = shixiScore; this.lastScore = lastScore; this.finalScore = finalScore; } @Override public String toString() { // TODO Auto-generated method stub return "期中考试成绩:"+midScore+",实习成绩:"+shixiScore+",期末考试成绩: "+lastScore+"总评成绩 "+finalScore+",平时成绩:"+pinScore; } }package com.day11.practise2;import java.util.ArrayList;import com.day11.practise2.pojo.Score;import com.day11.practise2.pojo.Student;public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList list=new ArrayList(); list.add(1); list.add(2); ArrayList list1=new ArrayList(); list1.add(3); list1.add(4); list1.add(4); list1.add(4); Score score1=new Score(list, 5, 6, 7, 8); Score score2=new Score(list1, 9, 10, 11, 12); ArrayList<Score> listScore= new ArrayList<Score>(); listScore.add(score1); listScore.add(score2); Student s =new Student(); s.showPinshi(listScore); Student stu=new Student(001, "韩东旭", 25, listScore); System.out.println(stu); }}