具体的Java程序代码_用java编写下图的程序,详细程序代码

展开全部

我使用eclipse写的这个练习,首先给你截个图,抹掉的地方不是这个题的范畴,光标挡住的地方是ModelScore

a19445ba205e1d9af29df2e68282b82a.png

然后32313133353236313431303231363533e59b9ee7ad9431333363396436,先是ModelScore代码:package Models;

public class ModelScore {

private double mathScore;

private double englishScore;

private double javaScore;

private static final int type_Math = 0, type_English = 1, type_Java = 2;

public ModelScore(){

}

public int getNumberOfField(){

return 3;

}

public ModelScore(double mathScore, double englishScore, double javaScore){

this.mathScore = mathScore;

this.englishScore = englishScore;

this.javaScore = javaScore;

}

public double getMathScore(){

return this.mathScore;

}

public double getEnglishScore(){

return this.englishScore;

}

public double getJavaScore(){

return this.javaScore;

}

public void setMathScore(double mathScore){

this.mathScore = mathScore;

}

public void setEnglishScore(double englishScore){

this.englishScore = englishScore;

}

public void setJavaScore(double javaScore){

this.javaScore = javaScore;

}

public double getAverageScore(){

return (double)Math.round((this.mathScore + this.englishScore + this.javaScore) / 3 * 100) / 100;

}

public String toString(){

return "Scores:[Math: " + getMathScore() +

", English: " + getEnglishScore() + ", Java: " + getJavaScore() +

", AverageScore: " + getAverageScore() + "]";

}

public ModelScore clone(){

ModelScore score = new ModelScore();

score.setMathScore(this.getMathScore());

score.setEnglishScore(this.getEnglishScore());

score.setJavaScore(this.getJavaScore());

return score;

}

public double getScore(int type){

if(type == type_Math){

return mathScore;

}

if(type == type_English){

return englishScore;

}

if(type == type_Java){

return javaScore;

}

return 0;

}

}

然后是ModelStudent代码:package Models;

public class ModelStudent {

private String studentID;

private String studentName;

private ModelScore score;

public ModelStudent(){

}

public ModelStudent(String studentID, String studentName, ModelScore score){

this.studentID = studentID;

this.studentName = studentName;

this.score = score.clone();

}

public String getStudentID(){

return this.studentID;

}

public String getStudentName(){

return this.studentName;

}

public ModelScore getStudentScore(){

return this.score.clone();

}

public void setStudentID(String studentID){

this.studentID = studentID;

}

public void setStudentName(String studentName){

this.studentName = studentName;

}

public void setStudentScore(ModelScore score){

this.score = score.clone();

}

public double getAverageScore(){

return score.getAverageScore();

}

public ModelStudent clone(){

ModelStudent student = new ModelStudent();

student.setStudentID(studentID);

student.setStudentName(studentName);

student.setStudentScore(score.clone());

return student;

}

public String toString(){

return "Student:[ ID: " + getStudentID() + ", Name: "

+ getStudentName() + ", " + getStudentScore() + "]";

}

public String getNameAndEverayScore(){

return "Name: " + studentName + ", average score: " + getAverageScore();

}

}

最后是主函数所在的类StudentScoreTester代码:import java.util.ArrayList;

import java.util.Scanner;

import Models.ModelScore;

import Models.ModelStudent;

public class StudentScoreTester {

static final int type_Math = 0, type_English = 1, type_Java = 2 ;

public static void main(String[] args) throws NumberFormatException{

Scanner input = new Scanner(System.in);

String studentID = " ", studentName, searchedStudentName;

double studentMathScore, studentEnglishScore, studentJavaScore;

ModelScore studentScore;

ModelStudent student;

ArrayList students = new ArrayList();

ArrayList studentsWithMaxMath, studentsWithMinMath;

ArrayList studentsWithMaxEnglish, studentsWithMinEnglish;

ArrayList studentsWithMaxJava, studentsWithMinJava;

ArrayList searchedStudents;

double[] averageScores;

double averageScoreForMath, averageScoreForEnglish, averageScoreForJava;

double maxScoreForMath, maxScoreForEnglish, maxScoreForJava;

double minScoreForMath, minScoreForEnglish, minScoreForJava;

while(!studentID.equalsIgnoreCase("end")){

System.out.print("输入若干学生的学号,姓名,以及三科成绩(数学,英语,Java), 以输入end作为结束输入:");

studentID = input.next();

if(studentID.equalsIgnoreCase("end")){

break;

}

studentName = input.next();

studentMathScore = Double.valueOf(input.next());

studentEnglishScore = Double.valueOf(input.next());

studentJavaScore = Double.valueOf(input.next());

studentScore = new ModelScore(studentMathScore, studentEnglishScore, studentJavaScore);

student = new ModelStudent(studentID, studentName, studentScore);

students.add(student);

}

System.out.println("*******************************");

System.out.println("计算出所有学生平均成绩,并以降序显示......");

sortByAverageScore(students);

for(ModelStudent everyStudent: students){

System.out.println(everyStudent.getNameAndEverayScore());

}

System.out.println("*******************************");

System.out.println("全组每科平均成绩......");

averageScores = calculateAverageScore(students);

averageScoreForMath = averageScores[type_Math];

averageScoreForEnglish = averageScores[type_English];

averageScoreForJava = averageScores[type_Java];

System.out.println("数学: " + averageScoreForMath);

System.out.println("英语: " + averageScoreForEnglish);

System.out.println("Java: " + averageScoreForJava);

System.out.println("*******************************");

System.out.println("每科最好以及最差成绩的学生......");

studentsWithMaxMath = findStudentWithMaxScore(students, type_Math);

studentsWithMinMath = findStudentWithMinScore(students, type_Math);

studentsWithMaxEnglish = findStudentWithMaxScore(students, type_English);

studentsWithMinEnglish = findStudentWithMinScore(students, type_English);

studentsWithMaxJava = findStudentWithMaxScore(students, type_Java);

studentsWithMinJava = findStudentWithMinScore(students, type_Java);

System.out.println("      #########################");

System.out.println("数学最高成绩......");

for(ModelStudent studentWithMaxMath: studentsWithMaxMath){

System.out.println(studentWithMaxMath.getStudentName() + ", " + studentWithMaxMath.getStudentScore().getScore(type_Math));

}

System.out.println("\n数学最低成绩......");

for(ModelStudent studentWithMinMath: studentsWithMinMath){

System.out.println(studentWithMinMath.getStudentName() + ", " + studentWithMinMath.getStudentScore().getScore(type_Math));

}

System.out.println("      #########################");

System.out.println("英语最高成绩......");

for(ModelStudent studentWithMaxEnglish: studentsWithMaxEnglish){

System.out.println(studentWithMaxEnglish.getStudentName() + ", " + studentWithMaxEnglish.getStudentScore().getScore(type_English));

}

System.out.println("\n英语最低成绩......");

for(ModelStudent studentWithMinEnglish: studentsWithMinEnglish){

System.out.println(studentWithMinEnglish.getStudentName() + ", " + studentWithMinEnglish.getStudentScore().getScore(type_English));

}

System.out.println("      #########################");

System.out.println("Java最高成绩......");

for(ModelStudent studentWithMaxJava: studentsWithMaxJava){

System.out.println(studentWithMaxJava.getStudentName() + ", " + studentWithMaxJava.getStudentScore().getScore(type_Java));

}

System.out.println("\nJava最低成绩......");

for(ModelStudent studentWithMinJava: studentsWithMinJava){

System.out.println(studentWithMinJava.getStudentName() + ", " + studentWithMinJava.getStudentScore().getScore(type_Java));

}

System.out.println("*******************************");

System.out.print("输入要查找的学生姓名: ");

input.nextLine();

searchedStudentName = input.nextLine();

searchedStudents = searchStudentsByName(students, searchedStudentName);

System.out.println("查找结果是......");

if(searchedStudents.size() != 0){

for(ModelStudent everyStudent: searchedStudents){

System.out.println(everyStudent);

}

}

else{

System.out.println("查无此学生");

}

}

public static void sortByAverageScore(ArrayList students){

for(int i = 0; i 

for(int j = i; j 

if(students.get(i).getAverageScore() 

ModelStudent tempStudent = students.get(i);

students.set(i, students.get(j));

students.set(j, tempStudent);

}

}

}

}

public static double[] calculateAverageScore(ArrayList students){

double[] averageScore = new double[students.get(0).getStudentScore().getNumberOfField()];

for(int i = 0; i 

ModelStudent currentStudent = students.get(i);

averageScore[type_Math] += currentStudent.getStudentScore().getMathScore();

averageScore[type_English] += currentStudent.getStudentScore().getEnglishScore();

averageScore[type_Java] += currentStudent.getStudentScore().getJavaScore();

}

averageScore[type_Math] = (double)Math.round(averageScore[type_Math]/ students.size() * 100) / 100;

averageScore[type_English] = (double)Math.round(averageScore[type_English]/ students.size() * 100) / 100;

averageScore[type_Java] = (double)Math.round(averageScore[type_Java]/ students.size() * 100) / 100;

return averageScore;

}

public static ArrayList findStudentWithMaxScore(ArrayList students, int type){

ArrayList studentsWithMaxScore = new ArrayList();

ModelStudent studentWithMaxScore = students.get(0);

for(ModelStudent everyStudent: students){

if(studentWithMaxScore.getStudentScore().getScore(type) 

studentWithMaxScore = everyStudent.clone();

}

}

for(ModelStudent everyStudent: students){

if(studentWithMaxScore.getStudentScore().getScore(type) == everyStudent.getStudentScore().getScore(type)){

studentsWithMaxScore.add(everyStudent);

}

}

return studentsWithMaxScore;

}

public static ArrayList findStudentWithMinScore(ArrayList students, int type){

ArrayList studentsWithMaxScore = new ArrayList();

ModelStudent studentWithMaxScore = students.get(0);

for(ModelStudent everyStudent: students){

if(studentWithMaxScore.getStudentScore().getScore(type) > everyStudent.getStudentScore().getScore(type)){

studentWithMaxScore = everyStudent.clone();

}

}

for(ModelStudent everyStudent: students){

if(studentWithMaxScore.getStudentScore().getScore(type) == everyStudent.getStudentScore().getScore(type)){

studentsWithMaxScore.add(everyStudent);

}

}

return studentsWithMaxScore;

}

public static ArrayList searchStudentsByName(ArrayList students, String studentName){

ArrayList resultStudents = new ArrayList();

for(ModelStudent everyStudent: students){

if(everyStudent.getStudentName().equals(studentName)){

resultStudents.add(everyStudent);

}

}

return resultStudents;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值