Getting errors on this code please help here is an example M
Getting errors on this code please help! here is an example
Meter date = 8/15/16
 kw used = 550
 Baseline charge = 52.50
 Over Baseline charge = 24.75
 excess charge = 9.38
 Total = 86.63
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class project { // problem here - Syntax error, insert \"}\" to complete
// ClassBody
public static void main(String[] args){
{
//Construction
double rate = 0.10;
double overCharge = 1.10;
double excessCharge = 1.25;
double tier1 = 350;
double tier2 = 500;
double over = 0;
double excess = 0;
double total= 0;
// Welcome
System.out.println(\"Southwet Power & Light \ Billing Statement\");
Scanner sc = new Scanner(System.in);
String choice = \"y\" ;
while (choice.equalsIgnoreCase(\"y\"))
{
// get the input from the user
System.out.println(\"Please enter your name (Last,First) > \");
String name = sc.nextLine();
System.out.println(\"Meter reading date >\");
String date = sc.nextLine();
Scanner sc1 = new Scanner(System.in); // Scanner #1 for KW used input
double kwusedEntered = 0;
double base = 0;
boolean isValid = false;
while (isValid == false)
{
try
{
System.out.print(\"Electricity Used (KW) > \");
kwusedEntered = sc1.nextInt();
isValid = true;
// Get current date and time
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(\"MM/dd/yyyy\");
System.out.println(\"Date printed: \" + sdf.format(now));
System.out.println(\"Name:\"+ name);
System.out.println(\"Meter reading date : \" + date);
System.out.println(\"Electricity used (KW) : \" + kwusedEntered);
// Charges
if (kwusedEntered >= 0 && kwusedEntered <= 350)
{
base = kwusedEntered * rate;
over = 0;
excess = 0;
} else if (kwusedEntered > 350 && kwusedEntered <= 500)
{
base = tier1 * rate;
over = (kwusedEntered - tier1) * (rate * overCharge);
excess = 0;
} else if (kwusedEntered > 500)
{
base = tier1 * rate;
over = (tier2 - tier1) * (rate * overCharge);
excess = (kwusedEntered - tier2) * (rate * excessCharge);
}
base = Math.round(base * 100) / 100;
over = Math.round(over * 100) / 100;
excess = Math.round(excess * 100) / 100;
total = base + over + excess;
System.out.println(\"Baseline charge \" + base);
System.out.println(\"Over-baseline charge \" + over);
System.out.println(\"Excess charge\" + excess);
System.out.println(\"total amount due \" + total);
System.out.println(\"Calculate another bill (y/n)\" );
choice = sc.next();
System.out.println(\"\ Thank you for letting us serve you!\")://syntax error, insert \"Finally\" to complete
BlockStatements
}
}
}
}
Solution
Program :
import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Scanner;
 
 public class Project { // problem here - Syntax error, insert \"}\" to complete
 // ClassBody
 
 public static void main(String[] args){
 //Construction
 double rate = 0.10;
 double overCharge = 1.10;
 double excessCharge = 1.25;
 double tier1 = 350;
 double tier2 = 500;
 double over = 0;
 double excess = 0;
 double total= 0;
   
   
 // Welcome
 System.out.println(\"Southwet Power & Light \  Billing Statement\");
 Scanner sc = new Scanner(System.in);
 String choice = \"y\" ;
 while (choice.equalsIgnoreCase(\"y\"))
 {
   
 // get the input from the user
 System.out.println(\"Please enter your name (Last,First) > \");
 String name = sc.nextLine();
 System.out.println(\"Meter reading date >\");
 String date = sc.nextLine();
 Scanner sc1 = new Scanner(System.in); // Scanner #1 for KW used input
 double kwusedEntered = 0;
 double base = 0;
 boolean isValid = false;
 while (isValid == false)
 {
 System.out.print(\"Electricity Used (KW) > \");
 kwusedEntered = sc1.nextInt();
 isValid = true;
 
 // Get current date and time
 Date now = new Date();
 SimpleDateFormat sdf = new SimpleDateFormat(\"MM/dd/yyyy\");
 System.out.println(\"Date printed: \" + sdf.format(now));
 System.out.println(\"Name:\"+ name);
 System.out.println(\"Meter reading date : \" + date);
 System.out.println(\"Electricity used (KW) : \" + kwusedEntered);
   
 // Charges
 if (kwusedEntered >= 0 && kwusedEntered <= 350)
 {
 base = kwusedEntered * rate;
 over = 0;
 excess = 0;
 } else if (kwusedEntered > 350 && kwusedEntered <= 500)
 {
 base = tier1 * rate;
 over = (kwusedEntered - tier1) * (rate * overCharge);
 excess = 0;
 } else if (kwusedEntered > 500)
 {
 base = tier1 * rate;
 over = (tier2 - tier1) * (rate * overCharge);
 excess = (kwusedEntered - tier2) * (rate * excessCharge);
   
 }
 base = Math.round(base * 100) / 100;
 over = Math.round(over * 100) / 100;
 excess = Math.round(excess * 100) / 100;
 total = base + over + excess;
   
 System.out.println(\"Baseline charge \" + base);
 System.out.println(\"Over-baseline charge \" + over);
 System.out.println(\"Excess charge\" + excess);
 System.out.println(\"total amount due \" + total);
 System.out.println(\"Calculate another bill (y/n)\" );
 choice = sc.next();
 System.out.println(\"\ Thank you for letting us serve you!\");
 }
 }
 }
 }
Output :
Southwet Power & Light
 Billing Statement
 Please enter your name (Last,First) >
 Ram
 Meter reading date >
 8/15/16
 Electricity Used (KW) > 550
 Date printed: 10/12/2016
 Name:Ram
 Meter reading date : 8/15/16
 Electricity Used (KW) : 550.0
 Baseline charges 35.0
 Over-basseline charges 16.0
 Excess charges 6.0
 total amount due 57.0
 Calculate another bill (y/n)
 n
 Thank you for letting us serve you!





