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

SpreadsheetWriter Let\'s write a program that will produce a file that can be op

ID: 3913886 • Letter: S

Question

SpreadsheetWriter

Let's write a program that will produce a file that can be opened by Excel or LibreOffice Calc. Go to Course Resources and look up the grading weights used for this course. As an example, we'll use the following table, but you should use the values you find in Course Resources.

Write a class SSRow. Objects of this class should keep track of String name, int score, int weight, String calc. SSRow also has a toString method that returns this data in order, separated by commas.

name + "," + score + "," + weight + "," + calc

Further design of the SSRow class is left to you. Add what you need, but don't get carried away.

Write a class SSWriter that has a main method. For each of the grading categories (Lab, Reading Quizzes, Group Work, Midterm, Project, Final, Instructor Discretion),

query the user for a score, and create the following SSRow objects:

The grading weights to be used is provided ^

Thank you.

The weights for calculating an average based on our graded activities follow: Activity REVEL Assignments Black Board Lab Assignments 20 Micliermin Proji Final weighting % 20 20 20 20

Explanation / Answer

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Scanner;

class SSRow{

String name;

int score;

int weight;

String cal;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getScore() {

return score;

}

public void setScore(int score) {

this.score = score;

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.weight = weight;

}

public String getCal() {

return cal;

}

public void setCal(String cal) {

this.cal = cal;

}

@Override

public String toString() {

return """ + name + "", "" + score + "", "" + weight + "", "" +

cal + """;

}

}

public class SSWriter {

// Maintain a static map b/w workType and weights

private static final Map<String, Integer>

WORK_TYPE_TO_WEIGHT_MAP = new LinkedHashMap<>();

static {

WORK_TYPE_TO_WEIGHT_MAP.put("REVEL Assignments", 20);

WORK_TYPE_TO_WEIGHT_MAP.put("Black Board Lab Assignments",

20);

WORK_TYPE_TO_WEIGHT_MAP.put("Midterm", 20);

WORK_TYPE_TO_WEIGHT_MAP.put("Project", 20);

WORK_TYPE_TO_WEIGHT_MAP.put("Final", 20);

}

public static void main(String[] args) throws IOException {

Scanner scanner = new Scanner(System.in);

ArrayList<SSRow> list = new ArrayList<>(); // List to maintain the

rows

int index = 1;

String avgString = "";

for(String workType : WORK_TYPE_TO_WEIGHT_MAP.keySet()){

System.out.println("Please enter the score for "+workType+": ");

int score = scanner.nextInt();

// Create a SSRow and set the parameters

SSRow ssRow = new SSRow();

ssRow.setName(workType);

ssRow.setScore(score);

ssRow.setWeight(WORK_TYPE_TO_WEIGHT_MAP.get(workType));

ssRow.setCal("=B"+index +"*C"+index+"/100");

list.add(ssRow);

if(index == 1) avgString +="=D"+index;

else avgString+= "+D"+index;

index++;

}

avgString = """+avgString+""";

PrintWriter printer = new PrintWriter(new FileWriter("mygrades.csv"),

true);

for(SSRow ssRow : list){

printer.println(ssRow); // Write one row at a time

}

printer.println(""average", "+avgString); // Append average row

scanner.close(); // close the resources after using

printer.close();

System.out.println("Program execution completed.");

}

}

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