output in Command promt. Below is my program for converting grades but not sure
ID: 3656641 • Letter: O
Question
output in Command promt.
Below is my program for converting grades but not sure how change this code to do this with an input file and output file.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class gradeconverter1 {
public static void main(String[] args) throws IOException{
System.out.println("Enter numeric grade to convert to a letter grade, and press enter to calculate.");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String userInput = br.readLine();
ArrayList<Integer> allGrades = new ArrayList<Integer>();
Scanner scan = new Scanner(userInput);
while(scan.hasNext()){
try{
int grade = Integer.parseInt(scan.next().trim());
if(grade < 0) {
System.out.println("You did not enter a valid grade. Grades cannot be less than 0");
} else if(grade>100){
System.out.println("You did not enter a valid grade. Grades cannot be greater than 100");
} else{
allGrades.add(grade);
}
} catch (NumberFormatException x){
System.out.println("You did not enter a valid number as a grade. Sorry, please try again");
System.exit(1);
}
}
if(allGrades.size()!=0){
int[] marks = new int[8];
Arrays.fill(marks, 0);
for (int x = 0; x < allGrades.size(); x++){
int mark = allGrades.get(x);
if(mark < 50){
System.out.println("You got an F");
} else if (mark >= 50 && mark <= 59){
System.out.println("You got a D");
} else if(mark >= 60 && mark <= 69){
System.out.println("You got a C");
} else if(mark >= 70 && mark <= 79){
System.out.println("You got a B");
} else if(mark >= 80 && mark <= 89){
System.out.println("You got a A");
} else if(mark >= 90 && mark <= 100){
System.out.println("You got a A+");
}
}
}
}}
Explanation / Answer
please rate - thanks
sample run with input and output files
import java.io.BufferedReader;
import java.io.IOException;
import java.io.*;
import java.io.InputStreamReader;
import java.util.*;
public class gradeconverter1 {
public static void main(String[] args) throws IOException{
String filename,buffer,parts[];
int grade;
Scanner input=new Scanner (System.in);
System.out.print("Enter name of input file:");
filename=input.nextLine();
Scanner scan=new Scanner(new File(filename));
System.out.print("Enter name of output file: ");
filename=input.next();
PrintStream output=new PrintStream(new File(filename));
output.println("name Grade");
while(scan.hasNext()){
buffer=scan.nextLine();
parts=buffer.split(":");
grade=Integer.parseInt(parts[1]);
output.println(parts[0]+" "+getGrade(grade));
}
}
public static String getGrade(int mark)
{
if(mark < 50){
return "F";
} else if (mark >= 50 && mark <= 59){
return "D";
} else if(mark >= 60 && mark <= 69){
return "C";
} else if(mark >= 70 && mark <= 79){
return "B";
} else if(mark >= 80 && mark <= 89){
return "A";
} else {
return "A+";
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.