This is my code: /* Author: Jacob Mendes School: Lincoln High School */ import j
ID: 3656209 • Letter: T
Question
This is my code:
/*
Author: Jacob Mendes
School: Lincoln High School
*/
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.lang.*;
import java.awt.*;
class Project{
private static String line, firstName, middleInitial, lastName;
private static double wage, regHoursMonday, overtimeMonday,regHoursTuesday, overtimeTuesday;
private static double regHoursWednesday, overtimeWednesday, regHoursThursday;
private static double overtimeThursday, regHoursFriday, overtimeFriday;
private static double totalRegHours, totalOvertime, totalPay;
private static FileInputStream inFile;
private static InputStreamReader inReader;
private static BufferedReader reader;
private static StringTokenizer strTkn;
public static void main (String args[]) throws IOException
{
initFile();
getData();
calcTotal();
printResults();
inFile.close();
}
public static void initFile() throws IOException
{
inFile = new FileInputStream ("c:\VHSAPCSData\test2.txt");
inReader = new InputStreamReader(inFile);
reader = new BufferedReader(inReader);
}
public static void getData() throws IOException
{
line = reader.readLine();
System.out.println ("data line = " + line );
System.out.println();
while(line != null)
{
strTkn = new StringTokenizer(line);
firstName = strTkn.nextToken();
middleInitial = strTkn.nextToken();
lastName = strTkn.nextToken();
wage = Double.parseDouble(strTkn.nextToken());
regHoursMonday = Double.parseDouble(strTkn.nextToken());
overtimeMonday = Double.parseDouble(strTkn.nextToken());
regHoursTuesday = Double.parseDouble(strTkn.nextToken());
overtimeTuesday = Double.parseDouble(strTkn.nextToken());
regHoursWednesday = Double.parseDouble(strTkn.nextToken());
overtimeWednesday = Double.parseDouble(strTkn.nextToken());
regHoursThursday = Double.parseDouble(strTkn.nextToken());
overtimeThursday = Double.parseDouble(strTkn.nextToken());
regHoursFriday = Double.parseDouble(strTkn.nextToken());
overtimeFriday = Double.parseDouble(strTkn.nextToken());
}
}
public static void calcTotal()
{
totalRegHours = (regHoursMonday + regHoursTuesday + regHoursWednesday + regHoursThursday + regHoursFriday);
totalOvertime = (overtimeMonday + overtimeTuesday + overtimeWednesday + overtimeThursday + overtimeFriday);
totalPay = ((totalRegHours * wage) + (totalOvertime * 1.5 * wage));
}
public static void printResults()
{
System.out.println(firstName + " " + middleInitial + ". " + lastName + " makes " + wage + "$ an hour.");
System.out.println("On Monday, " + firstName + " worked " + regHoursMonday + " regular hours, and " + overtimeMonday + "overtime hours.");
System.out.println("On Tuesday, Mr. " + lastName + " worked " + regHoursTuesday + " regular hours, and " + overtimeTuesday + "overtime hours.");
System.out.println("On Wednesday, he worked " + regHoursWednesday + " regular hours, and " + overtimeWednesday + "overtime hours.");
System.out.println("On Thursday, he worked " + regHoursThursday + " regular hours, and " + overtimeThursday + "overtime hours.");
System.out.println("On Friday, he worked " + regHoursFriday + " regular hours, and " + overtimeFriday + "overtime hours.");
System.out.println("In total, this is " + totalRegHours + " regular hours, and " + totalOvertime + " overtime hours.");
System.out.println("With his wage of " + wage + "$/Hr, " + firstName + " " + lastName + " made " + totalPay + "$ this week");
}
}
And then I get an exception error that looks like this:
--------------------Configuration: Project - JavaDownload <Default> - <Default>--------------------
data line = Woodrow 10 6 7 6
Exception in thread "main" java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
at Project.getData(Project.java:61)
at Project.main(Project.java:28)
Process completed.
The Data file loooks like this:
Woodrow 10 6 7 6
Clyde 12 1 2 4
Harry 11 4 5 7
HOW DO I FIX THIS PLEASE HELP ME!!!???
Explanation / Answer
YOUR PROGRAM IS MOSTLY CORRECT BUT YOU INPUT FILE IS NOT IN CORRECT FORMAT. I HAVE MADE SOME MINOR CHANGES TO YOUR PROGRAM> YOUR INPUT FILE SHOULD BE :- INPUT FILE:- james Woodrow potter 10 6 1 7 1 6 1 5 1 6 1 lily Clyde potter 12 1 0.5 2 1 4 1 6 1 7 1 Harry james potter 11 4 1 5 1 7 1 5 1 6 1 In a line there should be three strings which are (first names, middle name and last Name). Next it should have wage. After that there should be each day regular hors and overtime hours. PROGRAM:- import java.io.*; import java.util.*; public class Project{ private static String line, firstName, middleInitial, lastName; private static double wage, regHoursMonday, overtimeMonday,regHoursTuesday, overtimeTuesday; private static double regHoursWednesday, overtimeWednesday, regHoursThursday; private static double overtimeThursday, regHoursFriday, overtimeFriday; private static double totalRegHours, totalOvertime, totalPay; private static FileInputStream inFile; private static InputStreamReader inReader; private static BufferedReader reader; private static StringTokenizer strTkn; public static void main (String args[]) throws IOException { initFile(); getData(); inFile.close(); } public static void initFile() throws IOException { inFile = new FileInputStream ("test2.txt"); inReader = new InputStreamReader(inFile); reader = new BufferedReader(inReader); } public static void getData() throws IOException { line = reader.readLine(); while(!line.isEmpty()) { strTkn = new StringTokenizer(line); firstName = strTkn.nextToken(); middleInitial = strTkn.nextToken(); lastName = strTkn.nextToken(); wage = Double.parseDouble(strTkn.nextToken()); regHoursMonday = Double.parseDouble(strTkn.nextToken()); overtimeMonday = Double.parseDouble(strTkn.nextToken()); regHoursTuesday = Double.parseDouble(strTkn.nextToken()); overtimeTuesday = Double.parseDouble(strTkn.nextToken()); regHoursWednesday = Double.parseDouble(strTkn.nextToken()); overtimeWednesday = Double.parseDouble(strTkn.nextToken()); regHoursThursday = Double.parseDouble(strTkn.nextToken()); overtimeThursday = Double.parseDouble(strTkn.nextToken()); regHoursFriday = Double.parseDouble(strTkn.nextToken()); overtimeFriday = Double.parseDouble(strTkn.nextToken()); calcTotal(); printResults(); line = reader.readLine(); } } public static void calcTotal() { totalRegHours = (regHoursMonday + regHoursTuesday + regHoursWednesday + regHoursThursday + regHoursFriday); totalOvertime = (overtimeMonday + overtimeTuesday + overtimeWednesday + overtimeThursday + overtimeFriday); totalPay = ((totalRegHours * wage) + (totalOvertime * 1.5 * wage)); } public static void printResults() { System.out.println(" " + firstName + " " + middleInitial + ". " + lastName + " makes " + wage + "$ an hour."); System.out.println("On Monday, " + firstName + " worked " + regHoursMonday + " regular hours, and " + overtimeMonday + "overtime hours."); System.out.println("On Tuesday, Mr. " + lastName + " worked " + regHoursTuesday + " regular hours, and " + overtimeTuesday + "overtime hours."); System.out.println("On Wednesday, he worked " + regHoursWednesday + " regular hours, and " + overtimeWednesday + "overtime hours."); System.out.println("On Thursday, he worked " + regHoursThursday + " regular hours, and " + overtimeThursday + "overtime hours."); System.out.println("On Friday, he worked " + regHoursFriday + " regular hours, and " + overtimeFriday + "overtime hours."); System.out.println("In total, this is " + totalRegHours + " regular hours, and " + totalOvertime + " overtime hours."); System.out.println("With his wage of " + wage + "$/Hr, " + firstName + " " + lastName + " made " + totalPay + "$ this week "); } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.