修改教科书第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
答案 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>
对不起,代码太多。我希望这就是你想要的。