[英]how can i change one of these classes to enable me to allow the student to take multiple tests with multiple marks?
正如我之前所说,我想知道如何更改其中一个课程,以便让我允许学生多次进行多项考试?
这是第一堂课
public class Student {
private String name;
private int noOfExams;
private double totalMark;
public Student (String name, int noOfExams, double totalMark) {
this.name = name;
this.noOfExams = noOfExams;
this.totalMark = totalMark;
}
public void setName (String Name) {
this.name = name;
}
public void setnoOfExams (int noOfExams) {
this.noOfExams = noOfExams;
}
public void settotalMark (double totalMark) {
this.totalMark = totalMark;
}
public String getName (){
return name;
}
public int getnoOfExams (){
return noOfExams;
}
public double gettotalMark() {
return totalMark;
}
public double getAverageMark () {
return (totalMark/noOfExams);
}
}
这是测试人员类
public class studentTester {
public static void main(String[] args) {
Student Padraig = new Student ("Padraig" , 1 , 40);
System.out.println("The Student's name is : " + Padraig.getName());
System.out.println("The Student has took " + Padraig.getnoOfExams() + " exams");
System.out.println("The Student's Mark is " + Padraig.gettotalMark());
}
}
我不会为你做功课,但这里有一些想法让你开始。
首先,您必须了解数组或列表 。 您只需要这样的数据结构,以便在“多次测试”中“存储”复数带来的多个值。
然后你会添加一个像这样的方法
public void addTest(String testName, int mark)
到你的班级。 然后,该方法将获取传入的信息并将其添加到之前创建的阵列/列表中。 然后你的“测试人员”代码只是重复调用add方法,添加多个测试。
最后,您将添加一个方法,如
public List<String> getTestNames()
要么
public List<Integer> getTestMarks()
这将允许检索该附加信息。
“阵列”是更基本/基本/内置的概念; 所以它们更容易理解(需要更少的上下文知识); 但是列表更有活力。 所以,你选择你想花多少精力(如果你真的有兴趣学习,你只需要尝试两种方法)。
最后一步是使用更好的抽象。 上面的例子将测试视为“非正式”对“测试名称”和“标记”。 这意味着:两个具有不同值的列表。 Insted,你可以创建一个类
public class Test {
... fields for name, mark, ...
包装这些信息。 然后你可以做更多的事情,比如查看这些对象的equals方法......
因此:你可以在这里做许多很多事情 - 你只需要开始。
要让它们采用多个标记,只需将它包围在一个while循环中,如果你想让它随机问题,每次只需要在哈希映射之类的地方放置多个问题。
例:
HashMap questions<Integer, String> = new HashMap<Integer, String>();
Random questionNumber = new Random();
questions.put(1, "What is 1+1");
While(takingTest == true) {
// don't put 10 if you have less than 10 questions; 0-9
System.out.println(question.get(questionNumber.nextInt(10)));
// make sure to be able to close the loop as this is an example
}
如果你经常多次得到所有问题,因为你从来没有能力结束你的while循环
注意:如果代码有问题,因为我不在我的工作站进行测试。 这是一般性答案
您需要java中的数据结构来在“多个测试”中存储多个值。
您可以联系oracle帮助中心获取更多信息。
https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.