Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need Help With Error. Can Someone Please Correct The Error Because I Have Been H

ID: 3673462 • Letter: N

Question

Need Help With Error. Can Someone Please Correct The Error Because I Have Been Having Trouble For Couple Of Days

Exception in thread "main" java.util.InputMismatchException
ÏÏ§Ï at java.util.Scanner.throwFor(Scanner.java:864)
ÏÏ§Ï at java.util.Scanner.next(Scanner.java:1485)
ÏÏ§Ï at java.util.Scanner.nextDouble(Scanner.java:2413)
ÏÏ§Ï at Driver.main(Driver.java:112)
ÏϧÏ

===================================

import java.io.*;
import java.util.Scanner;

public class Driver
{
   public static void main(String[] args)
   {
   //local constants

   //local variables
   String fileName = "items.txt";
   Scanner scanner = null;
ItemsList itemsList = new ItemsList(5);
   int i = 0;
   boolean repeat = true;
   int choice = menu();
   String itemName;
   double price;
   int qty;
   String tmp;

   scanner=new Scanner(System.in);
  
//****************************************************************************************************//
  
try
   {
   scanner = new Scanner(new File(fileName));

   while(scanner.hasNextLine())
   {
   itemName = scanner.next();
   price = scanner.nextDouble();
   qty=scanner.nextInt();

   //Add the OneItem object to the itemList
   itemsList.addItem(new OneItem(itemName, price, qty));
   i++;
   }

   //close the file objct
   scanner.close();

   //print the list of the items in itemsList
   System.out.println(itemsList.toString());
   }
   catch (FileNotFoundException e)
   {
   System.out.println(e.getMessage());
   }

   //Create an instance of Scanner class
   scanner=new Scanner(System.in);

   while(repeat)
   {
   switch(choice)
   {
   //Add an item to the itemsList
   case 1:
   System.out.println("Enter item name : ");
String name=scanner.nextLine();
  
   System.out.println("Enter price : ");
   price = scanner.nextDouble();
  
   System.out.println("Enter quantity : ");
   qty=Integer.parseInt(scanner.nextLine());

   //Add the OneItem to the itemsList
   itemsList.addItem(new OneItem(name, price, qty));

   break;

   case 2:
   //print the list
   System.out.println(itemsList.toString());
   break;
  
   case 3:
   //Terminate the program
   System.out.println("Terminate the program.");
  
   //set repeat to false
   repeat=false;
   break;
  
   default:
   System.out.println("Incorrect option is selected.");
   break;
   }
   }

   writeToFile(itemsList);

   }


   private static void writeToFile(ItemsList itemsList)
   {

   //Create a file name called items.txt
   String filename="items.txt";
   //Create a variable of Class PrintWriter
   PrintWriter filewriter=null;

   try
   {
   //create an instance of PrintWriter
   filewriter=new PrintWriter(new File(filename));
   filewriter.println(itemsList.toString());
   //close the filewriter
   filewriter.close();
   }
   catch (IOException e)
   {
   System.out.println(e.getMessage());
   }


   }


   /**The method menu that prints the menu and prompst
   * for the menu item to select and return choice.*/
   private static int menu()
   {
   //Create an instance of Scanner class
   Scanner keyboard=new Scanner(System.in);
   System.out.println("Menu");
   System.out.println("1. Add item");
   System.out.println("2. Display items");
   System.out.println("3. Exit");
   System.out.println("Enter your choice");
   int choice=Integer.parseInt(keyboard.nextLine());
   return choice;

   }

}//end Driver class

===========================

public class OneItem
{
   //declare a variables
   private String name;
   private double price;
   private int quantity;

   //default constructor
   public OneItem()
   {
   name = "";
   price = 0;
   quantity = 0;
   }
   //parameter constructor
   public OneItem(String name, double price, int quantity)
   {
   this.name = name;
   this.price = price;
   this.quantity = quantity;
   }

   //toString
   public String toString() {
   return String.format("%-10s%-10.2f%-10d ", name,price,quantity);
   }
}//end of the OneItem class

====================================

public class ItemsList
{
   //declare variables
   private OneItem items[];
   private int size;
   private int count;

   //constructor to set items, size and count to zero
   public ItemsList()
   {
   items = null;
   size = 0;
   count = 0;
   }
   //Parameter constructor
   public ItemsList(int size)
   {
   items = new OneItem[size];

   for (int i = 0; i < items.length; i++)
   {
   items[i] = new OneItem();
   }

   this.size = size;
   count = 0;
   }
   //Add OneItem to the itemlist
   public void addItem(OneItem item)
   {
   if(items.length == count)
   {
   resize();
   items[count] = item;
   count++;
   }
   else
   {
   items[count] = item;
   count++;
   }
   }
  
   //Resize
   private void resize()
   {
   int oldsize = size;
   count = oldsize;
   int newsize = 2 * this.size;
   size = newsize;
  
   OneItem[] tempList = new OneItem[size];

   for (int i = 0; i < oldsize; i++)
tempList[i] = items[i];


   items = new OneItem[size];
   items = tempList;
   }

   //getSize
   public int getSize()
   {
   return count;
   }

   //toString
   public String toString()
   {
   String description = "";

   description += String.format("%-10s%-10s%-10s ", "Item","Price","Quantity");

   for (int i = 0; i <count; i++)
   {
   description += items[i].toString();
   }

   return description;
   }
}

Explanation / Answer


//OneItem.java
public class OneItem
{
   //declare a variables
   private String name;
   private double price;
   private int quantity;

   //default constructor
   public OneItem()
   {
       name = "";
       price = 0;
       quantity = 0;
   }
   //parameter constructor
   public OneItem(String name, double price, int quantity)
   {
       this.name = name;
       this.price = price;
       this.quantity = quantity;
   }

   //toString
   public String toString() {
       return String.format("%-10s%-10.2f%-10d ", name,price,quantity);
   }
}//end of the OneItem class

--------------------------------------- --------------------------------------- ---------------------------------------

//ItemsList.java
public class ItemsList
{
   //declare variables
   private OneItem items[];
   private int size;
   private int count;

   //constructor to set items, size and count to zero
   public ItemsList()
   {
       items = null;
       size = 0;
       count = 0;
   }
   //Parameter constructor
   public ItemsList(int size)
   {
       items = new OneItem[size];

       for (int i = 0; i < items.length; i++)
       {
           items[i] = new OneItem();
       }

       this.size = size;
       count = 0;
   }
   //Add OneItem to the item list
   public void addItem(OneItem item)
   {
       if(items.length == count)
       {
           resize();
           items[count] = item;
           count++;
       }
       else
       {
           items[count] = item;
           count++;
       }
   }

   //Resize
   private void resize()
   {
       int oldsize = size;
       count = oldsize;
       int newsize = 2 * this.size;
       size = newsize;

       OneItem[] tempList = new OneItem[size];

       for (int i = 0; i < oldsize; i++)
           tempList[i] = items[i];

       items = new OneItem[size];
       items = tempList;
   }

   //getSize
   public int getSize()
   {
       return count;
   }

   //toString
   public String toString()
   {
       /*assign description of string only without header since reading file back will create problem

       while reading so write only item name, price and quantty calling toString */
       String description = "";
       for (int i = 0; i <count; i++)
       {
           description += items[i].toString();
       }

        return description;
   }
}

------------------------------------------------------------------------------------------------------------------------------------------------


//Driver.java
import java.io.*;
import java.util.Scanner;
public class Driver
{
   public static void main(String[] args)
   {
       //local constants

       //local variables
       String fileName = "items.txt";
       Scanner scanner = null;
       ItemsList itemsList = new ItemsList(5);
       int i = 0;
       int choice;
       boolean repeat = true;      
       String itemName;
       double price;
       int qty;
       String tmp;

       //Create an instance of Scanner class to read input
       //from keyboard
       scanner=new Scanner(System.in);
       
       //open the file and catch the exception if file not found
       try
       {          
          //create an instance of scanner
           scanner = new Scanner(new File(fileName));

           //read file items until end of file
           while(scanner.hasNext())

           {
               itemName = scanner.next();
               price = scanner.nextDouble();
               qty=scanner.nextInt();

               //Add the OneItem object to the itemList
               itemsList.addItem(new OneItem(itemName, price, qty));
               i++;
           }

           //close the file object
           scanner.close();          
       }
       catch (FileNotFoundException e)
       {
           System.out.println(e.getMessage());
       }
       //Create an instance of Scanner class
       scanner=new Scanner(System.in);

       while(repeat)
       {
           //call menu
           choice = menu();

           switch(choice)
           {
           //Add an item to the itemsList
           case 1:
               System.out.println("Enter item name : ");
               //read name
               String name=scanner.nextLine();

              
               System.out.println("Enter price : ");
               //read string value and parse to double value
               price = Double.parseDouble(scanner.nextLine());

               System.out.println("Enter quantity : ");
               qty=Integer.parseInt(scanner.nextLine());

               //Add the OneItem to the itemsList
               itemsList.addItem(new OneItem(name, price, qty));
               break;

           case 2:
               //print the list
               //print heading with specific formatter
               System.out.printf("%-10s%-10s%-10s ", "Item","Price","Quantity");

               System.out.println(itemsList.toString());
               break;

           case 3:
               //Terminate the program
               System.out.println("Terminate the program.");

               //set repeat to false
               repeat=false;
               break;

           default:
               System.out.println("Incorrect option is selected.");
               break;
           }      
       }
       writeToFile(itemsList);
   }


   private static void writeToFile(ItemsList itemsList)
   {

       //Create a file name called items.txt
       String filename="items.txt";
       //Create a variable of Class PrintWriter
       PrintWriter filewriter=null;

       try
       {
           //create an instance of PrintWriter
           filewriter=new PrintWriter(new File(filename));
           filewriter.println(itemsList.toString());
           //close the file writer
           filewriter.close();
       }
       catch (IOException e)
       {
           System.out.println(e.getMessage());
       }
   }


   /**The method menu that prints the menu and prompst
   * for the menu item to select and return choice.*/
   private static int menu()
   {
       //Create an instance of Scanner class
       Scanner keyboard=new Scanner(System.in);
       System.out.println("Menu");
       System.out.println("1. Add item");
       System.out.println("2. Display items");
       System.out.println("3. Exit");
       System.out.println("Enter your choice");
       int choice=Integer.parseInt(keyboard.nextLine());
       return choice;

   }

}//end Driver class

---------------------------------------------------------------------------------------------------------

items.txt

Mango     10.00     10      
Grape     20.00     20      
Orange    30.00     30      
Popapya   40.00     40      
Pinaple   50.00     50      
Melon     60.00     60      


------------------------------------------------------------------------------------------------------------------

Sample output:

Menu
1. Add item
2. Display items
3. Exit
Enter your choice
2
Item      Price     Quantity

Mango     10.00     10      
Grape     20.00     20      
Orange    30.00     30      
Popapya   40.00     40      
Pinaple   50.00     50      
Melon     60.00     60      

Menu
1. Add item
2. Display items
3. Exit
Enter your choice
1
Enter item name :
Pomegranade
Enter price :
70
Enter quantity :
70
Menu
1. Add item
2. Display items
3. Exit
Enter your choice
3
Terminate the program.

--------------------------- ---------------------------   ---------------------------   ---------------------------

items.txt after the execution of program

Mango     10.00     10      
Grape     20.00     20      
Orange    30.00     30      
Popapya   40.00     40      
Pinaple   50.00     50      
Melon     60.00     60      
Pomegranade70.00     70      

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote