向学生班级添加多个考试成绩

时间:2018-10-03 05:36:03

标签: java

修改教科书第7章介绍的Student类,如下所示: 每个学生对象还应包含三个不同测试的分数。在现有构造函数中将所有测试分数初始初始化为零。创建第二个构造函数(或使构造函数重载)以基于参数参数值设置所有实例值。 提供此方法:

def main(): resultsA = int(input("Please enter how many seats you sold is section A:")) if resultsA < 1 or resultsA > 300: int(input("Please enter a valid number from 1 to 300:")) resultsB = int(input("Please enter how many seats you sold is section B:")) if resultsB < 1 or resultsB > 500: int(input("Please enter a valid number from 1 to 500:")) resultsC = int(input("Please enter how many seats you sold is section C:")) if resultsC < 1 or resultsC > 200: int(input("Please enter a valid number from 1 to 200:")) finalResultA = 20*resultsA finalResultsB = 15*resultsB finalResultsC = 10*resultsC trulyFinal = finalResultA + finalResultsB + finalResultsC print ("Congratulations, here is your total revenue from tickets: $",trulyFinal) :接受两个参数,测试编号(1到3)和分数。

setTestScore:接受测试编号并返回适当的分数。

getTestScore:计算并返回学生的平均考试成绩。

average:考试成绩和平均分包含在学生的描述中。

然后修改驱动程序类的main方法,以演示新的Student方法。

我被卡在(提示?)接受测试编号(1-3)的部分,然后根据该编号选择测试分数。但是,如果直接来自类,我认为我不能输入任何整数。

toString

2 个答案:

答案 0 :(得分:0)

我发现您已经使用分数和考试编号作为变量,即如下所示

private double score1, score2, score3;
private int testnumber;

相反,请尝试以hashMap的身份进行操作。从更改代码

    public void setTestScore(double score1_1, double score2_1, double score3_1, int testnumber1_1)
{
    score1 = score1_1;
    score2 = score2_1;
    score3 = score3_1;
    testnumber = testnumber1_1;
}

到下面的代码:

private HashMap<Integer, Integer> score;
    public void setTestScore( int testnumber,double score)
{
    score.put(testnumber,score);
}

此外,在初始构造方法中,将hashMap值设置为零。

    testMarks.put(1, 0);
    testMarks.put(2, 0);
    testMarks.put(3, 0);//1,2,3 are the test numbers

此外,这里不需要2个构造函数,因为重载的构造函数和setTestScore看起来相同。因此,请使用初始构造函数,并从代码中删除重载的构造函数。

答案 1 :(得分:-1)

我认为您的实现方式不正确,与您在问题的第一部分的描述相对应。我修改了您的代码以了解操作方法:
已更新为不使用数组

strings <binary_filename>

对不起,代码太多。我希望这就是你想要的。