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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.