Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在Java中显示查询的搜索结果_Java_Bluej - Fatal编程技术网

Can';t在Java中显示查询的搜索结果

Can';t在Java中显示查询的搜索结果,java,bluej,Java,Bluej,我还是一个编程新手,需要一些帮助来完成一个程序 这是一个用Bluej编写的足够简单的程序,它接收用户的输入,然后显示或搜索 我一直在努力使用这两种方法(显示和搜索),因为我一直在显示我实现的消息,以显示没有要显示的记录 public class Collection extends Dvd { //private ArrayList<Dvd> dvds; //private int[] array; private Dvd dvd1; private Dvd dvd2; privat

我还是一个编程新手,需要一些帮助来完成一个程序

这是一个用Bluej编写的足够简单的程序,它接收用户的输入,然后显示或搜索

我一直在努力使用这两种方法(显示和搜索),因为我一直在显示我实现的消息,以显示没有要显示的记录

public class Collection extends Dvd
{
//private ArrayList<Dvd> dvds;
//private int[] array;
private Dvd dvd1;
private Dvd dvd2;
private Dvd dvd3;

/**
 * Constructor for objects of class Collection
 */
public Collection()
{
    //array = new int[2];
    //dvd1 = dvd1;
    //dvd2 = dvd2;
    //dvd3 = dvd3;
    dvd1 = new Dvd();
    dvd2 = new Dvd();
    dvd3 = new Dvd(); 
}
public static void main(String args[])
{    
     //creates an instance of the collection class 
    Collection collection = new Collection();
    collection.menu();
}
public void displayDvds()
{
    float totalPrice = 0;
    totalPrice = dvd1.getDvdPrice() + dvd2.getDvdPrice() + dvd3.getDvdPrice();
    double totalRunTime = 0;
    totalRunTime = dvd1.getRunTime() + dvd2.getRunTime() + dvd3.getRunTime();

    if (dvd1.getTitle() == "" || dvd1.getDirector() == "" || dvd1.getLead() == "" || dvd1.getRunTime() == 0 || dvd1.getDvdPrice() == 0 || dvd2.getTitle() == "" || 
        dvd2.getDirector() == "" || dvd2.getLead() == "" || dvd2.getRunTime() == 0 || dvd2.getDvdPrice() == 0 || dvd3.getTitle() == ""|| dvd3.getDirector() == ""
        ||dvd3.getLead() == "" ||dvd3.getRunTime() == 0 ||dvd3.getDvdPrice() == 0)
        {
           System.out.println("Sorry, there were no search results to display.");
        }
         else  
         {
    System.out.println(" \nDvd Collection:\n DVD1:\n Title: " + dvd1.getTitle() + " \nDirector: "
                        + dvd1.getDirector() + " \nLead Act: " + dvd1.getLead() + " \nRun Time: " + dvd1.getRunTime() + " \nPrice: "
                        + dvd1.getDvdPrice());

    System.out.println(" \nDvd Collection:\n DVD1:\n Title: " + dvd2.getTitle() + " \nDirector: "
                        + dvd2.getDirector() + " \nLead Act: " + dvd2.getLead() + " \nRun Time: " + dvd2.getRunTime() + " \nPrice: "
                        + dvd2.getDvdPrice());

    System.out.println(" \nDvd Collection:\n DVD1:\n Title: " + dvd3.getTitle() + " \nDirector: "
                        + dvd3.getDirector() + " \nLead Act: " + dvd3.getLead() + " \nRun Time: " + dvd3.getRunTime() + " \nPrice: "
                        + dvd3.getDvdPrice());

    System.out.println(" \nCombined cost of combined Dvd's: " + totalPrice);

    System.out.println(" \nCombined Run Time of combined Dvd's: " + totalRunTime);
}
}

public void searchDvd()
 {
    String temp = ""; // Temporary variable to hold title
    // Assign dvd 3's title to temp

    System.out.println ("\nPlease enter Title to search for: ");
    temp= Genio.getString();

    if(temp.equals(dvd1.getTitle()))
    {
        System.out.println("\nDvd is present in collection at location 1 (Dvd 1 in collection): " + dvd1.getTitle());
    }
     if(temp.equals(dvd2.getTitle()))
    {
        System.out.println("\nDvd is present in collection at location 2 (Dvd 2 in collection): " + dvd2.getTitle());
    }
     if(temp.equals(dvd3.getTitle()))
    {
        System.out.println("\nDvd is present in collection at location 3 (Dvd 3 in collection): " + dvd3.getTitle());
    }
    else 
     System.out.println("\nSorry, there were no search results to display.\n ");
}
public void menu()
      {
          //declare the option field
          int option;

               //start do while loop for the menu
               do
               {
                    //display the menu
                    System.out.println("1: Add (up to 3) Dvd's to Collection");
                    System.out.println("2: Display Dvd Collection");
                    System.out.println("3: Search Dvd Collection by collection");
                    System.out.println("4: Quit program");

                    //prompt user to enter a selection
                    System.out.println("Please select an option (1 - 4): ");
                    //use genio to get the user input
                    option=Genio.getInteger();

                    // Option 1 allows user to add up to 3 Dvd's
                    if (option == 1) 
                    { 
                        dvd1.getInputs();
                        dvd2.getInputs();
                        dvd3.getInputs();
                    }
                    // Option 2 allows user to display Dvd collection
                    if (option == 2)
                        displayDvds();
                    //i Option 3 allows the user to search the Dvd collection by title
                    if (option == 3)
                        searchDvd();
               }

               // Option 4 will print a message that tells that the program may be exited
                    while (option != 4);
                    System.out.println("You may now close the program");
}
}

Genio类:

public class Genio
{


/**
 * Constructor for objects of class genio, but nothing needing constructed!
 */
public Genio()
{
}


/** 
 * getStr()  is a private method which safely returns a string for use
 * by the public methods getString() and getCharacter() in the class.
 * 
 * @return String for further processing withing the class
 */

private static String getStr() 
{
    String inputLine = "";
    BufferedReader reader = 
        new BufferedReader(new InputStreamReader(System.in));
    try 
    {
        inputLine = reader.readLine();
    }

    catch(Exception exc) 
    {
        System.out.println ("There was an error during reading: "
                            + exc.getMessage());
    }
    return inputLine;
}

/** 
 * getInteger() returns an integer value. Exception handling is used to trap
 * invalid data - including floating point numbers, non-numeric characters
 * and no data. In the event of an exception, the user is prompted to enter
 * the correct data in the correct format.
 * 
 * @return validated int value 
 */
public static int getInteger()
{
    int temp=0;
    boolean OK = false;

    BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    do 
    {
        try
        {
            temp = Integer.parseInt(keyboard.readLine());
            OK = true;
        }

        catch (Exception eRef)
        {
            if (eRef instanceof NumberFormatException) 
            {
                System.out.print("Integer value needed: ");
            }
            else
            {
                System.out.println("Please report this error: "+eRef.toString());
            }
        }

    } while(OK == false);
    return(temp);
 }

/** 
 * getFloat() returns a floating point value. Exception handling is used to trap
 * invalid data - including non-numeric characters and no data.
 * In the event of an exception (normally no data or alpha), the user is prompted to enter
 * data in the correct format
 * 
 * @return validated float value
 */        
public static float getFloat()
{
    float temp=0;
    boolean OK = false;

    BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    do 
    {
        try
        {
            temp = Float.parseFloat(keyboard.readLine());
            OK = true;
        }


        catch (Exception eRef)
        {
            if (eRef instanceof NumberFormatException) 
            {
                System.out.print("Number needed: ");
            } 
            else
            {
                System.out.println("Please report this error: "+eRef.toString());
            }
        }

    } while(OK == false);

    return(temp);
 }

/** 
 * getDouble() returns a double precision floating point value. 
 * Exception handling is used to trap invalid data - including non-numeric
 * characters and no data.
 * In the event of an exception, the user is prompted to enter
 * data in the correct format
 * 
 * @return validated double precision value
 */        
public static double getDouble()
{
    double temp=0;
    boolean OK = false;
    BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
    do 
    {
        try
        {
            temp = Double.parseDouble(keyboard.readLine());
            OK = true;
        }

        catch (Exception eRef)
        {
            if (eRef instanceof NumberFormatException) 
            {
                System.out.print("Number needed: ");
            }
            else
            {
                System.out.println("Please report this error: "+eRef.toString());
            }
        }

    } while(OK == false);

    return(temp);
 }

/** 
 * getCharacter() returns a character from the keyboard. It does this by 
 * reading a string then taking the first character read. Subsequent characters
 * are discarded without raising an exception.
 * The method checks to ensure a character has been entered, and prompts 
 * if it has not.
 * 
 * @return validated character value
 */

 public static char getCharacter()
 {
     String tempStr="";
     char temp=' ';
     boolean OK = false;
     do 
     {
         try
         {
             tempStr = getStr();
             temp = tempStr.charAt(0);
             OK = true;
         }

         catch (Exception eRef)
         {
             if (eRef instanceof StringIndexOutOfBoundsException)
             {
                 // means nothing was entered so prompt ...
                 System.out.print("Enter a character: ");
             }            
             else 
             {
                 System.out.println("Please report this error: "+eRef.toString());
             }
         }

     } while(OK == false);

     return(temp);
 }

 /** 
  * getString() returns a String entered at the keyboard.
  * @return String value
  */

 public static String getString()
 {
    String temp="";
    try
    {
        temp = getStr();
    }
    catch (Exception eRef)
    {
        System.out.println("Please report this error: "+eRef.toString());
    }
    return(temp);
 }     
} 如果我的代码写得很糟糕,我深表歉意,但当我单独调用它们时,我的方法确实有效


如前所述,问题是当我选择“显示”或“搜索”(添加记录后),我只会收到消息“抱歉,没有要显示的搜索结果。”

问题是DVD的价格从未设置为DVD的价格,它保持在0。在getInputs()方法中放置dvdRunTime两次

另外,如果语句应如下所示:

if (dvd1.getTitle().equalsIgnoreCase("")) {
比较字符串时,请使用equals或equalsIgnoreCase方法not==。 我将其更改为仅dvd1.getTitle().equalsIgnoreCase,因为您同时输入了所有3张dvd,因此如果第一张dvd的标题尚未输入,则它们都没有

下面是两个类的完整工作代码,但仍有一些内容需要更改:

收藏:

public class Collection {
    // private ArrayList<Dvd> dvds;
    // private int[] array;
    private Dvd dvd1 = null;
    private Dvd dvd2 = null;
    private Dvd dvd3 = null;

    /**
     * Constructor for objects of class Collection
     */
    public Collection() {
        // array = new int[2];
        // dvd1 = dvd1;
        // dvd2 = dvd2;
        // dvd3 = dvd3;
        dvd1 = new Dvd();
        dvd2 = new Dvd();
        dvd3 = new Dvd();
    }

    public static void main(String args[]) {
        // creates an instance of the collection class
        Collection collection = new Collection();
        collection.menu();
    }

    public void displayDvds() {
        float totalPrice = 0;
        totalPrice = dvd1.getDvdPrice() + dvd2.getDvdPrice()
                + dvd3.getDvdPrice();
        double totalRunTime = 0;
        totalRunTime = dvd1.getRunTime() + dvd2.getRunTime()
                + dvd3.getRunTime();

        if (dvd1.getTitle().equalsIgnoreCase("")) {
            System.out
                    .println("Sorry, there were no search results to display.");
        } else {
            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd1.getTitle() + " \nDirector: " + dvd1.getDirector()
                    + " \nLead Act: " + dvd1.getLead() + " \nRun Time: "
                    + dvd1.getRunTime() + " \nPrice: " + dvd1.getDvdPrice());

            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd2.getTitle() + " \nDirector: " + dvd2.getDirector()
                    + " \nLead Act: " + dvd2.getLead() + " \nRun Time: "
                    + dvd2.getRunTime() + " \nPrice: " + dvd2.getDvdPrice());

            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd3.getTitle() + " \nDirector: " + dvd3.getDirector()
                    + " \nLead Act: " + dvd3.getLead() + " \nRun Time: "
                    + dvd3.getRunTime() + " \nPrice: " + dvd3.getDvdPrice());

            System.out.println(" \nCombined cost of combined Dvd's: "
                    + totalPrice);

            System.out.println(" \nCombined Run Time of combined Dvd's: "
                    + totalRunTime);
        }
    }

    public void searchDvd() {
        String temp = ""; // Temporary variable to hold title
        // Assign dvd 3's title to temp

        System.out.println("\nPlease enter Title to search for: ");
        temp = Genio.getString();

        if (temp.equals(dvd1.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 1 (Dvd 1 in collection): "
                            + dvd1.getTitle());
        }
        if (temp.equals(dvd2.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 2 (Dvd 2 in collection): "
                            + dvd2.getTitle());
        }
        if (temp.equals(dvd3.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 3 (Dvd 3 in collection): "
                            + dvd3.getTitle());
        } else
            System.out
                    .println("\nSorry, there were no search results to display.\n ");
    }

    public void menu() {
        // declare the option field
        int option;

        // start do while loop for the menu
        do {
            // display the menu
            System.out.println("1: Add (up to 3) Dvd's to Collection");
            System.out.println("2: Display Dvd Collection");
            System.out.println("3: Search Dvd Collection by collection");
            System.out.println("4: Quit program");

            // prompt user to enter a selection
            System.out.println("Please select an option (1 - 4): ");
            // use genio to get the user input
            option = Genio.getInteger();

            // Option 1 allows user to add up to 3 Dvd's
            if (option == 1) {
                dvd1.getInputs();
                dvd2.getInputs();
                dvd3.getInputs();
            }
            // Option 2 allows user to display Dvd collection
            if (option == 2)
                displayDvds();
            // i Option 3 allows the user to search the Dvd collection by title
            if (option == 3)
                searchDvd();
        }

        // Option 4 will print a message that tells that the program may be
        // exited
        while (option != 4);
        System.out.println("You may now close the program");
    }
}

你没有把你所有的代码都发布在这里,没有其他的代码很难帮助你。讽刺还是真正的回应?真正的回应什么是DVD 1 2和3我帮不上忙,除非我知道发生了什么,还有什么是getInputs()没有代码。哈哈,我很抱歉。我以为我发了很多代码,而你在挖苦我。我现在已经编辑了我的帖子。我遇到问题的类是“collection”,另一个类是“Dvd”。你能发布getInputs()方法吗?啊,新手错误。非常非常感谢你的帮助。我也会记住今后的贴士。再次感谢,非常感谢!!
if (dvd1.getTitle().equalsIgnoreCase("")) {
public class Collection {
    // private ArrayList<Dvd> dvds;
    // private int[] array;
    private Dvd dvd1 = null;
    private Dvd dvd2 = null;
    private Dvd dvd3 = null;

    /**
     * Constructor for objects of class Collection
     */
    public Collection() {
        // array = new int[2];
        // dvd1 = dvd1;
        // dvd2 = dvd2;
        // dvd3 = dvd3;
        dvd1 = new Dvd();
        dvd2 = new Dvd();
        dvd3 = new Dvd();
    }

    public static void main(String args[]) {
        // creates an instance of the collection class
        Collection collection = new Collection();
        collection.menu();
    }

    public void displayDvds() {
        float totalPrice = 0;
        totalPrice = dvd1.getDvdPrice() + dvd2.getDvdPrice()
                + dvd3.getDvdPrice();
        double totalRunTime = 0;
        totalRunTime = dvd1.getRunTime() + dvd2.getRunTime()
                + dvd3.getRunTime();

        if (dvd1.getTitle().equalsIgnoreCase("")) {
            System.out
                    .println("Sorry, there were no search results to display.");
        } else {
            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd1.getTitle() + " \nDirector: " + dvd1.getDirector()
                    + " \nLead Act: " + dvd1.getLead() + " \nRun Time: "
                    + dvd1.getRunTime() + " \nPrice: " + dvd1.getDvdPrice());

            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd2.getTitle() + " \nDirector: " + dvd2.getDirector()
                    + " \nLead Act: " + dvd2.getLead() + " \nRun Time: "
                    + dvd2.getRunTime() + " \nPrice: " + dvd2.getDvdPrice());

            System.out.println(" \nDvd Collection:\n DVD1:\n Title: "
                    + dvd3.getTitle() + " \nDirector: " + dvd3.getDirector()
                    + " \nLead Act: " + dvd3.getLead() + " \nRun Time: "
                    + dvd3.getRunTime() + " \nPrice: " + dvd3.getDvdPrice());

            System.out.println(" \nCombined cost of combined Dvd's: "
                    + totalPrice);

            System.out.println(" \nCombined Run Time of combined Dvd's: "
                    + totalRunTime);
        }
    }

    public void searchDvd() {
        String temp = ""; // Temporary variable to hold title
        // Assign dvd 3's title to temp

        System.out.println("\nPlease enter Title to search for: ");
        temp = Genio.getString();

        if (temp.equals(dvd1.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 1 (Dvd 1 in collection): "
                            + dvd1.getTitle());
        }
        if (temp.equals(dvd2.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 2 (Dvd 2 in collection): "
                            + dvd2.getTitle());
        }
        if (temp.equals(dvd3.getTitle())) {
            System.out
                    .println("\nDvd is present in collection at location 3 (Dvd 3 in collection): "
                            + dvd3.getTitle());
        } else
            System.out
                    .println("\nSorry, there were no search results to display.\n ");
    }

    public void menu() {
        // declare the option field
        int option;

        // start do while loop for the menu
        do {
            // display the menu
            System.out.println("1: Add (up to 3) Dvd's to Collection");
            System.out.println("2: Display Dvd Collection");
            System.out.println("3: Search Dvd Collection by collection");
            System.out.println("4: Quit program");

            // prompt user to enter a selection
            System.out.println("Please select an option (1 - 4): ");
            // use genio to get the user input
            option = Genio.getInteger();

            // Option 1 allows user to add up to 3 Dvd's
            if (option == 1) {
                dvd1.getInputs();
                dvd2.getInputs();
                dvd3.getInputs();
            }
            // Option 2 allows user to display Dvd collection
            if (option == 2)
                displayDvds();
            // i Option 3 allows the user to search the Dvd collection by title
            if (option == 3)
                searchDvd();
        }

        // Option 4 will print a message that tells that the program may be
        // exited
        while (option != 4);
        System.out.println("You may now close the program");
    }
}
public class Dvd {
    private String dvdTitle;
    private String dvdDirector;
    private String dvdLead;
    private double dvdRunTime;
    private float dvdPrice;

    public Dvd() {
        dvdTitle = "";
        dvdDirector = "";
        dvdLead = "";
        dvdRunTime = 0;
        dvdPrice = 0;
    }

    public void getInputs() {
        System.out.println("Please enter the Dvd Title: ");
        dvdTitle = Genio.getString();

        System.out.println("Please enter the Dvd Director: ");
        dvdDirector = Genio.getString();

        System.out.println("Please enter the Dvd Lead Actor/Actress: ");
        dvdLead = Genio.getString();

        System.out.println("Please enter the Dvd Run Time: ");
        dvdRunTime = Genio.getDouble();

        System.out.println("Please enter the Dvd Cost: ");
        dvdPrice = Genio.getFloat();
    }

    public String getTitle() {
        return dvdTitle;
    }

    public String getDirector() {
        return dvdDirector;
    }

    public String getLead() {
        return dvdLead;
    }

    public double getRunTime() {
        return dvdRunTime;
    }

    public float getDvdPrice() {
        return dvdPrice;
    }
}