java 学生课程成绩_用java编写程序,一个学生几门课程及成绩的最高分

展开全部

package com.sun.test;

import java.util.List;

public class Student {

private String name; //学生姓名

private List subs;// 学生成绩

public Student(String name,List subs){

this.name = name;

this.subs = subs;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public List getSubs() {

return subs;

}

public void setSubs(List subs) {

this.subs = subs;

}

}

(2)学科636f70793231313335323631343130323136353331333332633065类

package com.sun.test;

public class Subject {

private String subName; //学科名称

private int chenji;//学科成绩 整数型

public String getSubName() {

return subName;

}

public void setSubName(String subName) {

this.subName = subName;

}

public int getChenji() {

return chenji;

}

public void setChenji(int chenji) {

this.chenji = chenji;

}

public Subject(String subName,int chenji){

this.subName = subName;

this.chenji = chenji;

}

}

(3)比较实现类

package com.sun.test;

import java.util.Comparator;

public class SubJectCom implements Comparator {

@Override

public int compare(Object o1, Object o2) {

Subject s1 = null, s2 = null;

if (o1 instanceof Subject) {

s1 = (Subject) o1;

}

if (o2 instanceof Subject) {

s2 = (Subject) o2;

}

if (s1.getChenji() < s2.getChenji())

return 1;

if (s1.getChenji() > s2.getChenji())

return -1;

return 0;

}

}

(4)最后的处理类,包含学生成绩初始化,学生初始化,以及最后的对应处理逻辑

package com.sun.test;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

Subject yuwenA = new Subject("语文", 90);

Subject yuwenB = new Subject("语文", 75);

Subject yuwenC = new Subject("语文", 80);

Subject yuwenD = new Subject("语文", 95);

Subject shuxueA = new Subject("数学", 99);

Subject shuxueB = new Subject("数学", 66);

Subject shuxueC = new Subject("数学", 88);

Subject shuxueD = new Subject("数学", 44);

Subject yingyuA = new Subject("英语", 88);

Subject yingyuB = new Subject("英语", 96);

Subject yingyuC = new Subject("英语", 77);

Subject yingyuD = new Subject("英语", 93);

//上面是数据虚拟化过程,按道理应该从数据库中获取

List subsA = new ArrayList();

subsA.add(yuwenA);

subsA.add(shuxueA);

subsA.add(yingyuA);

List subsB = new ArrayList();

subsB.add(yuwenB);

subsB.add(shuxueB);

subsB.add(yingyuB);

List subsC = new ArrayList();

subsC.add(yuwenC);

subsC.add(shuxueC);

subsC.add(yingyuC);

List subsD = new ArrayList();

subsD.add(yuwenD);

subsD.add(shuxueD);

subsD.add(yingyuD);

Student sutA = new Student("A", subsA);

Student sutB = new Student("B", subsB);

Student sutC = new Student("C", subsC);

Student sutD = new Student("D", subsD);

//下面是具体的算法;

List stus = new ArrayList();

stus.add(sutA);

stus.add(sutB);

stus.add(sutC);

stus.add(sutD);

for (int i = 0; i < stus.size(); i++) {

Student stu = stus.get(i);

List sub = stu.getSubs();

int sumChenji = 0;

for (int j = 0; j < sub.size(); j++) {

sumChenji += sub.get(j).getChenji();

}

System.out.println("同学" + stu.getName() + "的三科平均成绩为" + sumChenji / sub.size());

}

List yuwenSub = new ArrayList();

List shuxueSub = new ArrayList();

List yingyuSub = new ArrayList();

yuwenSub.add(yuwenA);

yuwenSub.add(yuwenB);

yuwenSub.add(yuwenC);

yuwenSub.add(yuwenD);

shuxueSub.add(shuxueA);

shuxueSub.add(shuxueB);

shuxueSub.add(shuxueC);

shuxueSub.add(shuxueD);

yingyuSub.add(yingyuA);

yingyuSub.add(yingyuB);

yingyuSub.add(yingyuC);

yingyuSub.add(yingyuD);

aveSub(yuwenSub);

aveSub(shuxueSub);

aveSub(yingyuSub);

Collections.sort(yuwenSub, new SubJectCom());// 这里进行排序

System.out.println("语文学科最高分为:" + yuwenSub.get(0).getChenji());

Collections.sort(shuxueSub, new SubJectCom());// 这里进行排序

System.out.println("数学学科最高分为:" + shuxueSub.get(0).getChenji());

Collections.sort(yingyuSub, new SubJectCom());// 这里进行排序

System.out.println("英语学科最高分为:" + yingyuSub.get(0).getChenji());

}

public static void aveSub(List sub) {

if (sub.size() > 0) {

String subName = "";

int sumChenji = 0;

for (int i = 0; i < sub.size(); i++) {

sumChenji += sub.get(i).getChenji();

subName = sub.get(i).getSubName();

}

System.out.println(subName + "学科的平均成绩为" + sumChenji / sub.size());

}

}

}

希望对你有帮助。

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起


版权声明:本文为weixin_35555014原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。