2016-04-12 13 views
-4

Javaに完全に新しく、私はこのBookListプログラムを作成するための少しの助けが必要です:)私は私の本を読んで、私は完全に混乱しています。 BookListというarraylistを作成する必要があります。ブックを追加したり、ブックを編集したり、ブックを削除したり、ブックを表示したりするケーススイッチを備えたメニューを表示する必要があります。プログラムを起動しましたが、完全には動作しません。ユーザーが選択できるメニューを表示することになっており、次の機能を実行しますが、すべてのブックコンストラクタでエラーメッセージが表示されます。私はあなたのJavaマスターが初心者を助けてくれることを期待していました!これは私が私のブックリストのクラス次のコードは、mainメソッド内でコンストラクタを定義しようとしているように見えるJava ArrayListとケース/スイッチ?

import java.util.Scanner; 
import java.util.ArrayList; 

public class BookList { 

public static void main (String[] args){ 





System.out.println(" ======================================="); 
    System.out.println("|  1. Add a book     |"); 
    System.out.println("|  2. Edit a book     |"); 
    System.out.println("|  3. Delete a book    |"); 
    System.out.println("|  4. Display all books   |"); 
    System.out.println("|  5. Exit the program    |"); 
    System.out.println("| *Type a number to make a selection* |"); 
    System.out.println(" ======================================="); 
    System.out.println(""); 
    System.out.print("Selection: "); 

    public static Book() 

    { 
    int title; 
    } 
    Book a = new Book(); 

    a.setTitle("Stranger"); 


    Book b = new Book(); 

    b.setTitle("SQL"); 


    Book c = new Book(); 

    c.setTitle("HTML"); 


    ArrayList<Book> BookList = new ArrayList<Book>(); 
    BookList.add(a); 
    BookList.add(b); 
    BookList.add(c); 





Scanner SC = new Scanner(System.in); 

int Choice1; 

    Choice1 = SC.nextInt(); 

    SC.close(); 


    switch (Choice1) { 

    case 1: 

     Scanner JK = new Scanner(System.in); 

     System.out.println("'Add a book' selected"); 
     System.out.println(" "); 


     break; 

    case 2: 
     System.out.println("'Edit a book's details' selected"); 
     System.out.println("Which Book would you like to edit?"); 
     System.out.println(""); 
     break; 

    case 3: 
     System.out.println("'Delete a book' selected"); 
     break; 

    case 4: 
      System.out.println("Display all books"); 
      break; 



    case 5: 
      System.out.println("Goodbye!"); 
      System.exit(0); 

      break; 


    default: 
     System.out.println("Invalid selection. Try again"); 


    } 
    } 
    } 
+1

'しかし、完全には動作しません。これは問題ではありません!あなたはそれが何をすると思いますか?それは実際に何をしていますか?そして、あなたのコードを少し良くフォーマットしてください。 – John3136

+0

@ John3136私はそれを追加しました!その唯一のユーザーが1-5を選択するためのメニューを表示すると仮定し、それぞれの番号(大文字小文字)は、あまりにも本を追加、編集、削除、または表示するかどうか機能を行います。完全なコンストラクタのブックは、それを修正する方法がわからないエラーが発生しています。 –

+0

'コンストラクタブックにエラーが発生しました.'そして、エラーメッセージの共有は関係がないと思いますか? – John3136

答えて

0

あなたの質問に答えて、私ができることを作りました。

import java.util.Scanner; 
import java.util.ArrayList; 

public class BookList { 

    public static void main (String[] args){ 
     Scanner SC = new Scanner(System.in); 
     Book a = new Book(); 

     a.setTitle("Stranger"); 

     Book b = new Book(); 
     b.setTitle("SQL"); 

     Book c = new Book(); 

     c.setTitle("HTML"); 

     ArrayList<Book> BookList = new ArrayList<Book>(); 
     BookList.add(a); 
     BookList.add(b); 
     BookList.add(c); 

     int Choice1=1; 

     while(Choice1!=5) 
     { 
      System.out.println(" ======================================="); 
      System.out.println("|  1. Add a book     |"); 
      System.out.println("|  2. Edit a book     |"); 
      System.out.println("|  3. Delete a book    |"); 
      System.out.println("|  4. Display all books   |"); 
      System.out.println("|  5. Exit the program    |"); 
      System.out.println("| *Type a number to make a selection* |"); 
      System.out.println(" ======================================="); 
      System.out.println(""); 
      System.out.print("Selection: "); 

      Choice1 = SC.nextInt(); 

      switch (Choice1) { 

       case 1: 

       System.out.println("'Add a book' "); 
       System.out.println("Enter the name "); 
       Book holder = new Book(SC.next()); 

       break; 
       case 2: 
       System.out.println("'Edit a book's details' selected"); 
       System.out.println("Which Book would you like to edit?"); 
       System.out.println(""); 

       // I do not understand what you want me to do here 

       break; 

       case 3: 
       for(int i=0;i<BookList.size();i++){ 
        System.out.println(i+1+") "+BookList.get(i)); 
       } 
       System.out.println("Choose a book to delete: "); 
       BookList.remove(SC.nextInt()-1); 
       break; 

       case 4: 
       System.out.println("Display all books"); 
       for(Book x:BookList) 
        System.out.println(x); 
       break; 


       case 5: 
       System.out.println("Goodbye!"); 
       System.exit(0); 

       break; 

       default: 
       System.out.println("Invalid selection. Try again"); 

      } 
     } 
    } 
} 











public class Book{ 

    String Title; 


    public Book() 
    { 
     Title=""; 
    } 

    public Book(String bookTitle) 
    { 
     Title=bookTitle; 
    } 

    public void setTitle(String bookTitle) 
    { 
     Title=bookTitle; 
    } 

    public String toString(){ 
     return "Book Name "+Title; 
    } 
} 
1

で、これまで持っているものです。

public static void main (String[] args){ 

    [...] 

    public static Book() 

    { 
    int title; 
    } 
    Book a = new Book(); 

コンストラクタはクラス内に直接存在する必要があります。また、修飾子はstaticであってはなりません。 titleローカルは、タイプStringのフィールド(任意のメソッドの外)である必要があります。

private String title; 

public Book() { 
} 

public static void main(String[] args) { 
    [...] 

    Book a = new Book(); 
+0

このクイックフィックスをありがとうございました! –

0

Bookクラスが正しく宣言されていません。宣言をBookListクラスブロックの外に置いてみてください。

Bookのデフォルトコンストラクタが暗示されているため、後で使用する場合はtitleのゲッターを追加する必要があることに注意してください。