0

好的,这将是一个列出学生姓名和考试成绩的程序。我已经弄清楚了,但只有一件小事。我必须列出学生姓名的行...然后允许我将另一个学生添加到列表中,而不会重复完全相同的姓名。(见标有 1 和 2 的行)

第一行从 firstNameField 和 lastNameField 中收集教师将输入的姓名……第二行将“上升一个”作为数组,以确保在添加另一个学生时名称不会重复。

不幸的是......每次添加另一个学生时,它看起来有点像这样......

例子:

简·杜努尔 65 76 45 89 简·杜努尔 65 87 45 76 约翰·史密斯努尔 65 76 45 89

你可以清楚地看到问题......“null”在那里,加上重复第二个名字(Jane Doe)

那么我应该怎么做才能防止这种情况发生呢?

公共类 StudentGradesView 扩展 FrameView {

int [][] aryStudent = new int [15][4]; //number of student (15) test scores (4 scores)
String[][] aryNames = new String[15][2]; //lists the names of students
int numOfStudents = 0; //starts off students from zero...
int marks = 0; 

int test1;
int test2;
int test3;
int test4;

public StudentGradesView(SingleFrameApplication app) {

//图形界面的东西...

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          

    String currentList = studentListField.getText();

    //Collects integers from test1Field though test4Field
    aryStudent[numOfStudents][0] = Integer.parseInt(test1Field.getText());
    aryStudent[numOfStudents][1] = Integer.parseInt(test2Field.getText());
    aryStudent[numOfStudents][2] = Integer.parseInt(test3Field.getText());
    aryStudent[numOfStudents][3] = Integer.parseInt(test4Field.getText());

    StringBuilder sb = new StringBuilder();


    for (int x=0; x <= numOfStudents && x<15; x++) {
        sb.append(firstNameField.getText()).append(" ").append(lastNameField.getText()); //(1)
        sb.append(aryNames[x][0]); //(2)
        for (int y=0; y < 4; y++) {
            sb.append(" ").append(aryStudent[x][y]);
            studentListField.setText(sb.toString() + "\n" + currentList);
        }
        sb.append("\n");

    }
    numOfStudents ++;
}                                         
4

0 回答 0