-1

我正在编写一个应该允许用户进入学校课程的程序。但是,有几个问题。

  • 首先,出于某种原因,我不能让它为课程标题占用一个以上的单词。如果输入两个单词,则会引发错误。
  • 其次,这不是“永久”将这些类添加到数组列表中吗?

这是它应该如何工作的:

请从以下选项中选择:

  1. 添加课程
  2. 将学生添加到课程
  3. 查看可用课程
  4. 退出系统

这没有存储到文件中,所以我不确定如何将课程保存在内存中。无论如何,这就是我所拥有的。

    if(userChoice==1)
    {
        System.out.println("Enter the Course Number: ");
        int courseNum=scan.nextInt();
        System.out.println("Enter the Course Title: ");
        String courseTitle=scan.next();
        System.out.println("Enter the Max Number Allowed Students: ");
        int courseMaxSize = scan.nextInt();
        System.out.println("Course Number is "+courseNum);
        System.out.println("Course Title is "+courseTitle);
        System.out.println("Max Number of Students is "+courseMaxSize);
        SchoolClass nc = new SchoolClass(courseNum,courseTitle,courseMaxSize);
        ArrayList<SchoolClass> courseArr=new ArrayList<SchoolClass>();
        courseArr.add(nc);
        System.out.println(courseArr.get(0).getCourseTitle()+" "+courseArr.get(0).getCourseNumber()+" "+courseArr.get(0).getMaxStudents());
        System.out.println(courseArr.size());

我的SchoolClass课看起来像这样:

int courseNumber,maxPeers;
String course="";
public SchoolClass(int courseNum, String courseTitle, int maxStudents)
{
    courseNumber=courseNum;
    course=courseTitle;
    maxPeers=maxStudents;
}
public int getCourseNumber()
{
    return courseNumber;
}
public int getMaxStudents()
{
    return maxPeers;
}
public String getCourseTitle()
{
    return course;
}

显然,我还没有为选项 2、3、4 编写代码。只是寻求一点帮助来让我继续前进。

4

3 回答 3

5

首先,出于某种原因,我不能让它为课程标题占用一个以上的单词。

这是因为您的代码可以:

    System.out.println("Enter the Course Title: ");
    String courseTitle = scan.next();

应该是scan.nextLine()。的文档Scanner说:

Scanner 使用分隔符模式将其输入分解为标记,默认情况下匹配空格。

.next()抓住一个令牌。

其次,这不是“永久”将这些类添加到数组列表中吗?

这是因为您的列表是在您的if分支中创建的:

if (userChoice == 1) {
    // ....
    ArrayList<SchoolClass> courseArr = new ArrayList<SchoolClass>();
    courseArr.add(nc);
    // ...
}
// "courseArr" does not exist anymore here

你必须在这个if分支之外创建你的列表(也可能在封闭循环之外,这会抓住用户的选择)。

于 2013-07-11T05:35:38.470 回答
0
ArrayList<SchoolClass> courseArr=new ArrayList<SchoolClass>();
if(userChoice==1)
    {
        System.out.println("Enter the Course Number: ");
        int courseNum=scan.nextInt();
        System.out.println("Enter the Course Title: ");
        String courseTitle=scan.nextLine();
        System.out.println("Enter the Max Number Allowed Students: ");
        int courseMaxSize = scan.nextInt();
        System.out.println("Course Number is "+courseNum);
        System.out.println("Course Title is "+courseTitle);
        System.out.println("Max Number of Students is "+courseMaxSize);
        SchoolClass nc = new SchoolClass(courseNum,courseTitle,courseMaxSize);

        courseArr.add(nc);
        System.out.println(courseArr.get(0).getCourseTitle()+" "+courseArr.get(0).getCourseNumber()+" "+courseArr.get(0).getMaxStudents());
        System.out.println(courseArr.size());
于 2013-07-11T05:34:47.723 回答
0

创建SchoolClass对象

 SchoolClass sc=new SchoolClass ();

根据您的输入设置值。

 sc.setcourseNumber(2);
 sc.setCourseTitle("Maths");
 sc.setMaxStudents(3);

然后创建你的ArrayList

 ArrayList<SchoolClass> list=new ArrayList<>();

现在设置列表值

 list.add(sc);
于 2013-07-11T05:37:00.160 回答