-3

我在从列表中检索学生信息或删除它时遇到问题...帮助...下面的代码:

import java.util.*;
public class Directory
{
    private TreeMap<String, Student> studentList;
    private int numberOfEntries;

    public Directory()
    {
        studentList = new TreeMap<String, Student>();
        numberOfEntries = 0;
    }

    public void addStudent(Student newStudent)
    {
        studentList.put(newStudent.StudentInfo(), newStudent);
        //numberOfEntries++;
    }

    public void StudentInfo(String StudentInfo)
    {
        Object obj = studentList.get(StudentInfo);
        System.out.println(obj);
    }

    public void removeStudent(String StudentInfo)
    {
        Object obj = studentList.remove(StudentInfo);
        System.out.println(obj + "Removed");
    }


    public void printStudentList()
    {
        System.out.println("List of Students: " + studentList.keySet());
    }
}

======= 学生班 ======== (人员包含第一个、最后一个和电子邮件)

public class Student extends Persons
{
    private String Sclass;

    public Student(String Lname, String Fname, String Email, String Sclass)
    {
        super(Lname, Fname, Email);
        this.Sclass = Sclass;
    }

    public String StudentInfo()
    {
        return " Full Name " + Lastname + " " + Firstname + "\n" + 
               "E-Mail: " + Email + "\n" +
               "Class Attending: " + Sclass;
    }

    public String getName()
    {
        return Lastname;
    }
}
4

1 回答 1

2

我可以尝试为您调试它,但这会破坏目的。(这是你的作业……目的是让自己学习如何做。)

我的建议如下:

  1. 首先修复样式错误:

    • 变量的名称应始终以小写字母开头 ... 除非它们是static final常量。

    • 方法的名称应始终以小写字母开头

    • 方法和变量名称也应该有意义且一致。例如:

      public void  removeStudent(String StudentInfo)
      

      这里StudentInfo实际上需要一个学生姓名,而不是StrudentInfo方法创建的“学生信息”字符串......

      另一个例子:lname并且fname没有意义。(我可以猜到他们的意思,但这还不够好。)

  2. 为自己创建一个测试程序,创建这些类的实例并对它们执行一系列测试。从简单的事情开始,然后再做更复杂的事情。

    (在现实世界中,我们会设置一组更正式的“单元测试”……但您可能还没有准备好。


事实上,如果你选择了更有意义的名字,然后仔细看看这些名字是如何使用的,你的错误应该“跳出来打你的鼻子”。

但是,如果您自己完成该过程,您将获得最大的收益。

于 2013-08-01T02:10:29.350 回答