当前位置: 代码迷 >> J2SE >> 帮忙解决一上有关问题,用java编写此程序
  详细解决方案

帮忙解决一上有关问题,用java编写此程序

热度:2341   发布时间:2013-02-25 00:00:00.0
帮忙解决一下问题,用java编写此程序
编写一个学生成绩管理程序。
  学生的属性包括学号、姓名、年龄等。
  每个学生要学习若干课程,
  每门课程有平时成绩、期中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,
  其中平时成绩的数目不定(因为不同课程的教师布置的平时作业数不同),
  而总评成绩是其它成绩的平均值。 
  请先设计合理的对象容器类存放这些信息,然后设计程序完成以下功能:
(1)列出某个学生的所有成绩;
(2)列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分;
(3)分区段统计某门课程的学生总评成绩,例如60 分以下的学生人数、60 至70 分的学生人数等。
根据兴趣,你还可实现其它一些功能。请仔细设计和组织你的类和使用的集合类对象。


------解决方案--------------------------------------------------------
Java code
Student.javapackage info;import java.util.ArrayList;import java.util.List;public class Student {    private int sno;    private String name;    private int age;    private List<Score> scores = new ArrayList<Score>();    public Student() {    }    public Student(int sno, String name, int age) {        this.sno = sno;        this.name = name;        this.age = age;    }    public int getSno() {        return sno;    }    public void setSno(int sno) {        this.sno = sno;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    /**     * 指定课程成绩是否已经存在     *      * @param cno     * @return     * @author sunstar     * @date 2012-7-26 下午3:03:27     */    public boolean isExists(int cno) {        for (int i = scores.size() - 1; i > -1; i--) {            if (this.scores.get(i).getCno() == cno) {                return true;            }        }        return false;    }    public void addScore(Score score) {        //如果课程还没有成绩则增加,否则不添加,防止添加多次相同课程的成绩        if (!isExists(score.getCno())) {            this.scores.add(score);        }    }    public void delScore(int cno) {        for (int i = scores.size() - 1; i > -1; i--) {            if (this.scores.get(i).getCno() == cno) {                scores.remove(i);                break;            }        }    }    @Override    public String toString() {        return "Student [sno=" + sno + ", name=" + name + ", age=" + age                + ", scores=" + scores + "]";    }    /**     * 显示学生 的所有学习的课程成绩     *      * @author sunstar     * @date 2012-7-26 下午2:58:20     */    public void showScore() {        System.out.println("Student [sno=" + sno + ", name=" + name + ", age="                + age + "]  的详细成绩如下:");        for (int i = 0; i < scores.size(); i++) {            System.out.println(scores.get(i).toString());        }    }    /**     * 根据课程ID cno获取成绩     *      * @param cno     * @return     * @author sunstar     * @date 2012-7-26 下午2:57:58     */    public Score getScore(int cno) {        Score score = null;        for (int i = 0; i < scores.size(); i++) {            if (scores.get(i).getCno() == cno) {                score = scores.get(i);                break;            }        }        return score;    }    /**     * 显示指定 课程ID的成绩     *      * @param cno     * @author sunstar     * @date 2012-7-26 下午2:57:33     */    public void showScore(int cno) {        Score score = getScore(cno);        if (score == null) {            System.out.println("Student [sno=" + sno + ", name=" + name                    + ", age=" + age + "]  没有学习 ID 为" + cno + "的课程.");        } else {            System.out.println("Student [sno=" + sno + ", name=" + name                    + ", age=" + age + "]  的 【" + score.getCourseName()                    + "】  成绩如下:");            System.out.println(score.toString());        }    }}Score.javapackage info;import java.util.ArrayList;import java.util.List;public class Score {    private List<Double> daily = new ArrayList<Double>() ;//日常成绩    private double mid ;//期中    private double practice ;//实习    private double end ; //期末    private int cno ;//课程号    private String courseName ; //课程名             public String getCourseName() {        return courseName;    }    public void setCourseName(String courseName) {        this.courseName = courseName;    }    public Score(){}            public Score(double mid, double practice, double end, int cno,String courseName) {        this.mid = mid;        this.practice = practice;        this.end = end;        this.cno = cno;        this.courseName = courseName ;    }        public Score(List<Double> daily, double mid, double practice, double end,            int cno, String courseName ) {        this.daily = daily;        this.mid = mid;        this.practice = practice;        this.end = end;        this.cno = cno;        this.courseName = courseName ;    }            public List<Double> getDaily() {        return daily;    }    public void setDaily(List<Double> daily) {        this.daily = daily;    }    public double getMid() {        return mid;    }    public void setMid(double mid) {        this.mid = mid;    }    public double getPractice() {        return practice;    }    public void setPractice(double practice) {        this.practice = practice;    }    public double getEnd() {        return end;    }    public void setEnd(double end) {        this.end = end;    }    public int getCno() {        return cno;    }    public void setCno(int cno) {        this.cno = cno;    }    /**     * 得到日常成绩的平均值     * @return     * @author sunstar     * @date 2012-7-26 下午2:11:07     */    public double getSumDaily(){        double sum = 0.0 ;        for (int i = 0; i < daily.size(); i++){            sum += daily.get(i) ;        }        return sum ;    }    //某个课程的总评成绩    public double getZhongPing(){                double sum = this.getSumDaily() + this.mid + this.practice + this.end ;                return sum /  4 ;    }    @Override    public String toString() {        return "Score [cno=" + cno + ", courseName="                + courseName +" , daily=" + this.getSumDaily() + ", mid=" + mid + ", practice="                + practice + ", end=" + end + "]";    }                }School.javapackage info;import java.util.ArrayList;import java.util.List;public class School {    public  static List<Student> stuList = new ArrayList<Student>() ;  //学生            public static void showZhongPing(int cno){        Score score = null ;        Student stu = null ;        for (int i = 0; i < stuList.size(); i++) {            stu = stuList.get(i) ;            score = stu.getScore(cno) ;            if (score == null){                System.out.println(stu.getName() + " 没有学习 ID 为  " + cno + "的课程.");            }else{                                System.out.println(stu.getName() + " 的 【 " + score.getCourseName() + " 】课程总评成绩为:"+  score.getZhongPing());            }        }    }    /**     * 0-60 , 61-80, 81 -100;     * @return     * @author sunstar     * @date 2012-7-26 下午2:55:47     */    public static int[] total(){        int iArrs[] = new int[3] ;                //.iArrs......iArrs.                return iArrs ;            }        /**     * @param args     * @author sunstar     * @date 2012-7-26 下午2:20:05     */    public static void main(String[] args) {        List<Double> daily  = null ;        Student stu = new Student(1, "张三", 22) ;        daily = new ArrayList<Double>() ;        daily.add(90.5) ;        daily.add(88.5) ;        daily.add(85.0) ;        daily.add(50.0) ;        Score score = new Score(daily, 80.0, 60.0, 70.0,1, "A课程" ) ;        stu.addScore(score) ;                daily = new ArrayList<Double>() ;        daily.add(50.5) ;        daily.add(38.5) ;        score = new Score(daily, 40.0, 50.0, 30.0,2, "B课程" ) ;        stu.addScore(score) ;        stuList.add( stu ) ;                stu = new Student(2, "李斯", 22) ;        daily = new ArrayList<Double>() ;        daily.add(10.5) ;        daily.add(18.5) ;        daily.add(15.0) ;        daily.add(10.0) ;        score = new Score(daily, 10.0, 10.0, 10.0,1, "A课程" ) ;        stu.addScore(score) ;                daily = new ArrayList<Double>() ;        daily.add(50.5) ;        daily.add(38.5) ;        score = new Score(daily, 40.0, 50.0, 30.0,2, "B课程" ) ;        stu.addScore(score) ;        stuList.add( stu ) ;        stu = new Student(3, "Jone", 19) ;        stuList.add( stu ) ;        stu = new Student(4, "王五", 24) ;        stuList.add( stu ) ;        stu = new Student(5, "X六", 23) ;        stuList.add( stu ) ;                stuList.get(0).showScore() ;        stuList.get(0).showScore(1) ;        stuList.get(0).showScore(2) ;                showZhongPing(1) ;                            }}
  相关解决方案