Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a java program that • creates three text files: grade1.txt, grade2.txt, gr

ID: 3761450 • Letter: W

Question


Write a java program that

• creates three text files: grade1.txt, grade2.txt, grade3.txt
            -Each contains 5 students’ names (first name, last name) and grades (integers) that are obtained from the keyboard input.

• combine all three files into one text file: allgrades.txt
           - It contains all 15 students' names and grades from the 3 text file.
o It also contains letter grades for each student
                    :If grade < 60, it adds letter grade "F"
                     :If 60 <= grade <70, it adds letter grade "D".
                     :If 70 <= grade < 80, it adds letter grade "C".
                     :If 80 <= grade < 90, it adds letter grade "B".
                     :If 90 <= grade, it adds letter grade "A".

• displays the contents of text file allgrade.txt on the console

Explanation / Answer

Please find the required solution:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

//test class
public class StudentTest {

   public static void main(String[] args) throws IOException {
       // array of input file names
       String[] fileNames = { "grade1.txt", "grade2.txt", "grade3.txt" };
       // output file name
       String outputFile = "allgrades.txt";
       // if the out file does not exist create it
       File file = new File(outputFile);
       if (!file.exists())
           file.createNewFile();

       // read data of all three files
       FileWriter writer = new FileWriter(file);
       BufferedWriter bwriter = new BufferedWriter(writer);
       for (String fileName : fileNames) {
           Scanner input = new Scanner(new File(fileName));
           while (input.hasNext()) {

               String line = input.nextLine();
               // split the line using space
               String word[] = line.split("\s+");

               // create student object
               Student student = new Student(word[0], word[1],
                       Integer.parseInt(word[2]));
               System.out.println(student);

               // write to file
               bwriter.write(student.toString());
               bwriter.newLine();
           }
           input.close();
       }
       bwriter.close();
   }// end of main method
}// end of class StudentTest

class Student {

   // properties of student
   String firstName;
   String lastName;
   int grade;

   // 2- argument constructor that initializes the state of student
   public Student(String firstName, String lastName, int grade) {
       super();
       this.firstName = firstName;
       this.lastName = lastName;
       this.grade = grade;
   }// end of constructor

   // Overriding toString method
   @Override
   public String toString() {
       String letterGrade = "";
       if (grade < 60) {
           letterGrade = "F";
       } else if (grade >= 60 && grade < 70) {
           letterGrade = "D";
       } else if (grade >= 70 && grade < 80) {
           letterGrade = "C";
       } else if (grade >= 80 && grade < 90) {
           letterGrade = "B";
       } else {
           letterGrade = "A";
       }
       return firstName + " " + lastName + " " + grade + " " + letterGrade;
   }// end of toString method

}// end of class

Input files:(first name,last name, grade)

grade1.txt

fname11 lname11 50
fname21 lname21 60
fname31 lname31 70
fname41 lname41 80
fname51 lname51 90

grade2.txt

fname12 lname12 50
fname22 lname22 60
fname32 lname32 70
fname42 lname42 80
fname52 lname52 90

grade3.txt

fname13 lname13 50
fname23 lname23 60
fname33 lname33 70
fname43 lname43 80
fname53 lname53 90

sample output file:allgrades.txt

fname11 lname11 50 F
fname21 lname21 60 D
fname31 lname31 70 C
fname41 lname41 80 B
fname51 lname51 90 A
fname12 lname12 50 F
fname22 lname22 60 D
fname32 lname32 70 C
fname42 lname42 80 B
fname52 lname52 90 A
fname13 lname13 50 F
fname23 lname23 60 D
fname33 lname33 70 C
fname43 lname43 80 B
fname53 lname53 90 A

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote