In: Computer Science
Using files, Write a Java program to read 2 tutorials group of
student id,
assignment mark (30), lab test mark(20) from 2 input files namely
group1.txt
and group 2.txt. Your program will calculate the total course work
marks and
write in to 3 output files with the following conditions:
if the total course work marks are more than 40 out 50 write in to
LIST1.TXT
if the total course work marks are between 30 to 40 then write in
to LIST2.TXT
if the total course work marks are less than 30 then write in to
LIST2.TXT
Program: In this program, we read in two text files and store the marks in two array lists, then we calculate the total marks and write into three files based on the ranges of the marks.
Below is the implementation:
Code:
import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; class Solution { // Main public static void main(String[] args) { // Create two array lists to store assignment marks and lab test marks ArrayList<Integer> assignmentMarks = new ArrayList(); ArrayList<Integer> labTestMarks = new ArrayList(); // Read operation // Create a try catch block to throw exceptions try { // Create File class object and pass input file name File file1 = new File("group1.txt"); // Create Scanner class instance and pass file object as input Scanner read = new Scanner(file1); // Read till the end of file while (read.hasNext()) { // Store current marks int currMarks = read.nextInt(); // Add to file assignmentMarks.add(currMarks); } // Create File class object and pass input file name File file2 = new File("group2.txt"); // Create Scanner class instance and pass file object as input read = new Scanner(file2); // Read till the end of file while (read.hasNext()) { // Store current marks int currMarks = read.nextInt(); // Add to file labTestMarks.add(currMarks); } // Close scanner instance read.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } // Write operation try { // Create three FileWriter class objects to write in three files FileWriter fileWriter1 = new FileWriter("LIST1.txt"); FileWriter fileWriter2 = new FileWriter("LIST2.txt"); FileWriter fileWriter3 = new FileWriter("LIST3.txt"); // Traverse the marks list for (int i = 0; i < assignmentMarks.size(); i++) { int assignmentMark = assignmentMarks.get(i); int labTestMark = labTestMarks.get(i); // Sum up total marks int total = assignmentMark + labTestMark; // Check range of marks and write in corresponding file if (total > 40) { fileWriter1.write("Student: " + (i + 1) + " -> Marks: " + total + "\n"); } else if (total > 30) { fileWriter2.write("Student: " + (i + 1) + " -> Marks: " + total + "\n"); } else { fileWriter3.write("Student: " + (i + 1) + " -> Marks: " + total + "\n"); } } // Close file writer fileWriter1.close(); fileWriter2.close(); fileWriter3.close(); } catch (IOException e) { e.printStackTrace(); } } }
group1.txt:
group2.txt:
LIST1.txt:
LIST2.txt:
LIST3.txt: