java小题目

麻烦编写出java程序要求:学生有若干门学科每门学科有若干次考试将考试总分评估等第学科评估标准如下:低于50NN50-59PA60-69CR70-79DI80-100HD... 麻烦编写出java程序

要求:学生有若干门学科 每门学科有若干次考试

将考试总分评估等第

学科评估标准如下:
低于50 NN
50 - 59 PA
60 - 69 CR
70 - 79 DI
80 - 100 HD

执行的时候会先
要求输入有几门学科
然后输入学科1的考试次数
然后依次输入各次考试的分数
相加学科1几次考试的总分
最后总分评估出等级

在输入学科2的考试次数
然后依次输入各次考试的分数
相加学科2几次考试的总分
最后总分评估出等级

最后算出考试1的总分和考试2的总分的平均分

执行入要这样显示
Welcome to the student course admin
How many subjects are there?: 2

Collecting information for subject 0
How many assessments are there for this subject?: 2
Please enter assessment mark: 5
Please enter assessment mark: 60
Subject Mark: 65 - CR

Collecting information for subject 1
How many assessments are there for this subject?: 3
Please enter assessment mark: 10
Please enter assessment mark: 25
Please enter assessment mark: 40
Subject Mark: 75 - DI

Student Average Mark is 70

文件名为course.java
最好使用到evaluate(),getValidNum(),printMarkGrade()
调用函数evaluateSubject()

50分送上~
完成后追加50
展开
 我来答
源念云F
推荐于2016-09-13 · TA获得超过685个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:291万
展开全部
import java.io.PrintStream;
import java.util.Scanner;

//学生成绩评估系统
public class CourseApplication {
private PrintStream out = System.out;
private Scanner reader = new Scanner(System.in);
private CourseEvaluation evaluation;//学生成绩评估类
/**
* 启动运行成绩评估系统
*/
public void play() {
try {
out.println("Welcome to the student course admin !");
int count = readEvaluationCount();
evaluation = new CourseEvaluation();
evaluation.assignCourseCount(count);
evaluate();
} catch (Exception ex) {
out.println("Course Application will exit!");
ex.printStackTrace(out);
} finally {
release();
}
}
/**
* 读取学科考试次数
* @return
*/
private int readExamCount() {
out.print("How many assessments are there for this subject?:");
return getValidNum();
}
/**
* 读取学生的一次考试成绩
* @return
*/
private int readMarkResult() {
out.print("Please enter assessment mark:");
return getValidNum();
}
/**
* 评估
* @throws Exception
*/
private void evaluate() throws Exception {
int count = evaluation.getAssignedCourseCount();
for (int k = 0; k < count; k++) {
out.println("\nCollecting information for subject "+k);
int times = readExamCount();
Course course = evaluation.getAssignedCourseAt(k);
course.assignExamTimes(times);
for (int i = 0; i < times; i++) {
int markResult = readMarkResult();
course.addMarkResult(markResult);
}
out.println("Subject Mark:"+course.evaluateSubject());
out.println();

}
out.println();
out.println();
out
.println("Student Average Mark is "
+ evaluation.getMarkingAverage());
}

private void release() {
if (reader != null) {
reader.close();
reader = null;
}
if (out != null) {
out.close();
out = null;
}
}
/**
*
* @return 获取评估课程数目
*/
private int readEvaluationCount() {
out.print("How many subjects are there?: ");
return getValidNum();
}
/**
* 从输入流中读取一个数值
* @return
*/
private int getValidNum() {
return reader.nextInt();
}

public static void main(String[] args) {
CourseApplication courseApplication = new CourseApplication();
courseApplication.play();

}
}
/**
*
* @author yaho
* 课程类
*/
class Course {

private int[] exams;
private int pos;
/**
* 返回考试总成绩
* @return
*/
public int getMarkingTotal() {
int total = 0;
for (int i = exams.length; --i >= 0;) {
total += exams[i];
}
return total;
}
/**
* 分配考试次数
* @param times
*/
public void assignExamTimes(int times) {
if (times < 0)
throw new IllegalArgumentException(
"Times of exam is negative number:" + times);
exams = new int[times];
}
/**
* 添加考试成绩
* @param res
*/
public void addMarkResult(int res) {
if(res<0||res>100)
throw new IllegalArgumentException("Mark value of exam out of bounds:"+res);
if (pos >= exams.length)
throw new IllegalStateException();
exams[pos++] = res;
}
/**
*
* @return 对该课程考试进行评估
*/
public String evaluateSubject() {
int total = getMarkingTotal();
StringBuilder ret = new StringBuilder();
ret.append(total);
ret.append(" - ");
if(total<50){
ret.append("NN");
}else if(total<=59){
ret.append("PA");
}else if(total<=69){
ret.append("CR");
}else if(total<=79){
ret.append("DI");
}else
ret.append("HD");

return ret.toString();
}

}
/**
*
* @author yaho
* 学生成绩评估类
*/
class CourseEvaluation {
/**
* 评估课程
*/
private Course[] courses = null;
/**
*
* @return
* 获取所有科目的平均成绩
*/
public int getMarkingAverage() {
int total = 0;
for (int i = courses.length; --i >= 0;) {
Course course = courses[i];
total += course == null ? 0 : course.getMarkingTotal();
}
return (int)(total/2f+0.5f);
}
/**
* 分配评估课程数目
* @param count
*/
public void assignCourseCount(int count) {
if (count < 0)
throw new IllegalArgumentException("Count is negative number:"
+ count);
if (count == 0)
throw new IllegalArgumentException(
"The count of evaluation must be a positive number!");
courses = new Course[count];
}
/**
* 获取评估课程数目
* @return
*/
public int getAssignedCourseCount() {
return courses.length;
}
/**
* 根据索引获取课程
* @param index
* @return
*/
public Course getAssignedCourseAt(int index) {
if (courses[index] == null)
courses[index] = new Course();
return courses[index];
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式