Please help with this program!
I wrote & modified this code many time but not quite find a good solution for it. Below are some error after complied.
Program problem:
Input: student names, student IDs, their courses and letter grades
Output to a file in table layout format with: College name, student names, student IDs, grade point, their gpa, number of total A's, B's, C's ect.
Any idea on how I should do the format layout out side of the loop for total students? Thanks
import java.text.*; // format output
import java.util.*; // Scanner class
import java.io.*; //Needed for File classes
public class gpa
{
public static void main(String[] args)throws Exception
{
DecimalFormat num=new DecimalFormat("#######.00"); // Create format for name num (courseName)
DecimalFormat numgpa=new DecimalFormat("##.00"); // Create format for name numgpa (gpa)
// variable names
double gp=0.0; // grade point
double totalgp=0.0; // total grade point
double n=0.0; //number of courses
double gpa=0.0; //greade point average
String str; // to hold answer input to the prompt
String name; // student name in file
String firstName; // student first name
String lastName; // student last name
String inGrade; //input grade
String courseName; //course name
int courseSection; //section number of the course
char repeat; //to hold yes 'Y' or no 'N' answer
char letGrade; //input letter grade
int idNumber=0; //student ID number
int i=0; //number of courses input
int h=0; //number of student name in the file
// declare scan & associate with actual data file
File scan = new File ("inputgpa.txt");
// Initialize scanner to read from file
Scanner input = new scanner(scan);
// Open file and continue if there is more data in file
while (input.hasNext())
{
for(h=0; h<name.length; h++)
{
//Read name from file
name = input.nextLine();
// Initialize Scanner to read from DOS window.
Scanner input = new Scanner(System.in);
//Dispay the student name to DOS window
System.out.print(" Student name is: "+ name);
//Input the student ID number
System.out.print("Enter"+name+"'s"+" student ID Number: ");
idNumber = input.nextInt();
//Output name & id to DOS window
System.out.println("\tBCCC "+"Grade Report For ");//1st row
System.out.println("\t\t\t"+name); //2nd row
System.out.println("\t\t\t"+idNumber); //3rd row
//Input number of courses
System.out.print("Enter the number of courses: ");
n = input.nextInt();
//Start count loop to read all courses & their letter grades
for(i=0; i<=n; i++)
{
//write prompt for user input course name
System.out.print("Enter the number of courses: ");
courseName = input.next();
//input section number of the course
System.out.print("Enter the section number of this course: ");
courseSection = input.nextInt();
//input section number of the course
System.out.print("Enter the letter grade of this course: ");
letGrade = input.next().charAt(0);
//compute gp
switch(letGrade)
{
case 'A': gp=4; break;
case 'B': gp=3; break;
case 'C': gp=2; break;
case 'D': gp=1; break;
case 'F': gp=0; break;
default: System.out.println("Invalid course grade");
} //end Switch loop
// Compute to find the total grade points.
totalgp+= gp;
//Output layout on the DOS window
System.out.println(courseName+"."+courseSection+" "+letGrade+" "+gp);
}//End of 2nd For loop
//compute gpa
gpa = totalgp / n;
//output layout & gpa to DOS window
System.out.println("--------------------------------------");
System.out.println("\tGPA: "+ gpa);
System.out.println(); //Prints a blank line
}//End of 1st For loop
}//End of While loop
}//closemain method
}//close class gpa
----jGRASP exec: javac -g gpa.java
gpa.java:53: cannot find symbol
symbol : class scanner
location: class gpa
Scanner input = new scanner(scan);
^
gpa.java:59: cannot find symbol
symbol : variable length
location: class java.lang.String
for(h=0; h<name.length; h++)
^
gpa.java:65: input is already defined in main(java.lang.String[])
Scanner input = new Scanner(System.in);
^
3 errors