我正在尝试通过GUI创建一个程序,该程序接受学生的姓名和四个测试标记。它应该能够输出学生的姓名和他们的分数,以及计算个人和班级平均值。
我创建了一个类Student和方法updateStudentInfo
public class Student {
public String firstName;
public String lastName;
public ArrayList<Integer> courseMarks;
public void updateStudentInfo(String first, String last, int test1, int test2, int test3, int test4) {
firstName = first;
lastName = last;
courseMarks = new ArrayList<Integer>();
courseMarks.add(test1);
courseMarks.add(test2);
courseMarks.add(test3);
courseMarks.add(test4);
}
然后是GUI:
public class StudentRecords extends javax.swing.JFrame {
public ArrayList<Student> studentList = new ArrayList<Student>();
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
Student s = new Student();
s.updateStudentInfo(txtInputFirstName.getText(), txtInputLastName.getText(), new Integer(txtTest1.getText()),
new Integer(txtTest2.getText()), new Integer(txtTest3.getText()), new Integer(txtTest4.getText()));
studentList.add(s);
}
我不完全理解使用类作为数据类型的概念。但我的主要问题是,如何打印ArrayList,并计算平均值?
提前致谢!
答案 0 :(得分:0)
您可以从覆盖“Student”类中的toString()方法开始。一旦你这样做,每当你打印Student类的对象时,它将以toString()中定义的有用方式打印出来。如果你使用像eclipse或intelliJ这样的IDE,它可以为你生成一个toString()。 这是一个示例:
@Override
public String toString() {
return "Student [firstName=" + firstName + ", lastName=" + lastName
+ ", courseMarks=" + courseMarks + "]";
}
要计算平均值,您可以添加如下方法:
float getAverage(){
float sum = 0;
for (int i: courseMarks){
sum +=i;
}
return sum/courseMarks.size();
}
并通过GUI将其作为s.getAverage()来调用,以获得学生“s”的平均分数。