From 1fdbcd7fb8f8fe7377509089783e4d4c51da3fdf Mon Sep 17 00:00:00 2001 From: Eclypsed Date: Wed, 10 Sep 2025 14:25:37 -0400 Subject: [PATCH] First commit --- GUI_Lab/src/CashMachine.java | 29 + GUI_Lab/src/NumberPad.java | 26 + GUI_Lab/src/PINPadWindow.java | 31 + Homework 1/src/app/Gradient.java | 143 + Homework 1/src/grading/DropFilter.java | 79 + Homework 1/src/grading/Filter.java | 17 + Homework 1/src/grading/Grade.java | 106 + Homework 1/src/grading/GradingStrategy.java | 19 + Homework 1/src/grading/Missing.java | 35 + Homework 1/src/grading/SizeException.java | 19 + Homework 1/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedTotalStrategy.java | 61 + Homework 1/src/testing/DropFilterTest.java | 38 + Homework 1/src/testing/GradeTest.java | 79 + Homework 1/src/testing/MissingTest.java | 23 + Homework 1/src/testing/TotalStrategyTest.java | 34 + .../testing/WeightedTotalStrategyTest.java | 50 + Homework 2/CS345-Homework 2.vpp | Bin 0 -> 643072 bytes Homework 2/CS345-Homework 2.vpp.bak_000f | Bin 0 -> 643072 bytes Homework 2/Calculate Average Temperatures.pdf | Bin 0 -> 8276 bytes Homework 2/Charlottesville.tem | 3653 +++++++++++++++++ Homework 2/DaleEnterprise.tem | 2239 ++++++++++ Homework 3/Homework 3.pdf | Bin 0 -> 41884 bytes Homework 4/complete_01.grd | 18 + Homework 4/complete_02.grd | 18 + Homework 4/complete_03.grd | 18 + Homework 4/five-categories_01.grd | 21 + Homework 4/missing_all.grd | 18 + Homework 4/missing_multiple-in-each.grd | 18 + Homework 4/missing_one-in-each.grd | 18 + Homework 4/missing_one-in-one.grd | 18 + Homework 4/six-categories_01.grd | 36 + Homework 4/src/app/Gradient.java | 72 + Homework 4/src/grading/DropFilter.java | 79 + Homework 4/src/grading/Filter.java | 17 + Homework 4/src/grading/Grade.java | 106 + Homework 4/src/grading/GradingStrategy.java | 19 + Homework 4/src/grading/Missing.java | 35 + Homework 4/src/grading/SizeException.java | 19 + Homework 4/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedTotalStrategy.java | 61 + Homework 4/src/grading/io/Category.java | 70 + Homework 4/src/grading/io/Course.java | 41 + Homework 4/src/grading/io/CourseReader.java | 95 + Homework 4/src/testing/CategoryTest.java | 51 + Homework 4/src/testing/CourseReaderTest.java | 67 + Homework 4/src/testing/CourseTest.java | 37 + Homework 4/src/testing/DropFilterTest.java | 38 + Homework 4/src/testing/GradeTest.java | 79 + Homework 4/src/testing/MissingTest.java | 23 + Homework 4/src/testing/TotalStrategyTest.java | 34 + .../testing/WeightedTotalStrategyTest.java | 50 + Homework 5/complete_01.grd | 18 + Homework 5/complete_02.grd | 18 + Homework 5/complete_03.grd | 18 + Homework 5/five-categories_01.grd | 21 + Homework 5/missing_all.grd | 18 + Homework 5/missing_multiple-in-each.grd | 18 + Homework 5/missing_one-in-each.grd | 18 + Homework 5/missing_one-in-one.grd | 18 + Homework 5/six-categories_01.grd | 36 + Homework 5/src/app/Gradient.java | 60 + Homework 5/src/grading/AbstractGrade.java | 72 + Homework 5/src/grading/CompositeGrade.java | 111 + Homework 5/src/grading/DropFilter.java | 79 + Homework 5/src/grading/Filter.java | 17 + Homework 5/src/grading/Grade.java | 17 + Homework 5/src/grading/GradingStrategy.java | 19 + Homework 5/src/grading/LeafGrade.java | 74 + Homework 5/src/grading/Missing.java | 35 + Homework 5/src/grading/SizeException.java | 19 + Homework 5/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedTotalStrategy.java | 61 + Homework 5/src/grading/io/Category.java | 70 + Homework 5/src/grading/io/Course.java | 41 + Homework 5/src/grading/io/CourseReader.java | 103 + Homework 5/src/testing/CategoryTest.java | 51 + .../src/testing/CompositeGradeTest.java | 126 + Homework 5/src/testing/CourseReaderTest.java | 54 + Homework 5/src/testing/CourseTest.java | 37 + Homework 5/src/testing/DropFilterTest.java | 39 + Homework 5/src/testing/GradeTest.java | 99 + Homework 5/src/testing/MissingTest.java | 23 + Homework 5/src/testing/TotalStrategyTest.java | 35 + .../testing/WeightedTotalStrategyTest.java | 51 + Homework 6/complete_01.grd | 18 + Homework 6/complete_02.grd | 18 + Homework 6/complete_03.grd | 18 + Homework 6/cs111-screenshot.png | Bin 0 -> 29459 bytes Homework 6/cs111.grd | 18 + Homework 6/five-categories_01.grd | 21 + Homework 6/missing_all.grd | 18 + Homework 6/missing_multiple-in-each.grd | 18 + Homework 6/missing_one-in-each.grd | 18 + Homework 6/missing_one-in-one.grd | 18 + Homework 6/potterhj-cs111-screenshot.png | Bin 0 -> 32892 bytes Homework 6/potterhj-cs111.grd | 18 + Homework 6/six-categories_01.grd | 36 + Homework 6/src/app/Gradient.java | 76 + Homework 6/src/grading/AbstractGrade.java | 72 + Homework 6/src/grading/CompositeGrade.java | 111 + Homework 6/src/grading/DropFilter.java | 79 + Homework 6/src/grading/Filter.java | 17 + Homework 6/src/grading/Grade.java | 17 + Homework 6/src/grading/GradingStrategy.java | 19 + Homework 6/src/grading/LeafGrade.java | 74 + Homework 6/src/grading/Missing.java | 35 + Homework 6/src/grading/SizeException.java | 19 + Homework 6/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedTotalStrategy.java | 61 + Homework 6/src/grading/io/Category.java | 70 + Homework 6/src/grading/io/Course.java | 41 + Homework 6/src/grading/io/CourseReader.java | 103 + Homework 6/src/gui/CategoryField.java | 72 + Homework 6/src/gui/GradientWindow.java | 105 + Homework 6/src/gui/LeafGradeField.java | 92 + Homework 7/src/grading/AbstractGrade.java | 72 + Homework 7/src/grading/CompositeGrade.java | 111 + Homework 7/src/grading/DropFilter.java | 79 + Homework 7/src/grading/Filter.java | 17 + Homework 7/src/grading/Grade.java | 17 + Homework 7/src/grading/GradingStrategy.java | 19 + Homework 7/src/grading/LeafGrade.java | 74 + Homework 7/src/grading/Missing.java | 35 + Homework 7/src/grading/SizeException.java | 19 + Homework 7/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedAverageStrategy.java | 122 + .../src/grading/WeightedTotalStrategy.java | 61 + .../testing/WeightedAverageStrategyTest.java | 169 + Homework 8/Homework 8.docx | Bin 0 -> 24398 bytes Homework 8/src/grading/AbstractGrade.java | 72 + Homework 8/src/grading/CompositeGrade.java | 111 + Homework 8/src/grading/DropFilter.java | 79 + Homework 8/src/grading/Filter.java | 17 + Homework 8/src/grading/Grade.java | 17 + Homework 8/src/grading/GradingStrategy.java | 19 + Homework 8/src/grading/LeafGrade.java | 74 + Homework 8/src/grading/Missing.java | 35 + Homework 8/src/grading/SizeException.java | 19 + Homework 8/src/grading/TotalStrategy.java | 40 + .../src/grading/WeightedAverageStrategy.java | 122 + .../src/grading/WeightedTotalStrategy.java | 61 + Homework 8/src/grading/io/Category.java | 70 + Homework 8/src/grading/io/Course.java | 41 + Homework 8/src/grading/io/CourseReader.java | 103 + Homework 8/src/gui/CategoryField.java | 72 + Homework 8/src/gui/GradientWindow.java | 105 + Homework 8/src/gui/LeafGradeField.java | 92 + Homework 8/src/testing/CategoryTest.java | 51 + .../src/testing/CompositeGradeTest.java | 126 + Homework 8/src/testing/CourseReaderTest.java | 54 + Homework 8/src/testing/CourseTest.java | 37 + Homework 8/src/testing/DropFilterTest.java | 39 + Homework 8/src/testing/GradeTest.java | 99 + Homework 8/src/testing/MissingTest.java | 23 + Homework 8/src/testing/TotalStrategyTest.java | 35 + .../testing/WeightedAverageStrategyTest.java | 169 + .../testing/WeightedTotalStrategyTest.java | 51 + README.md | 2 - bernstdh_checkstyle.xml | 82 + bernstdh_formatter.xml | 295 ++ 161 files changed, 13820 insertions(+), 2 deletions(-) create mode 100755 GUI_Lab/src/CashMachine.java create mode 100755 GUI_Lab/src/NumberPad.java create mode 100755 GUI_Lab/src/PINPadWindow.java create mode 100755 Homework 1/src/app/Gradient.java create mode 100755 Homework 1/src/grading/DropFilter.java create mode 100755 Homework 1/src/grading/Filter.java create mode 100755 Homework 1/src/grading/Grade.java create mode 100755 Homework 1/src/grading/GradingStrategy.java create mode 100755 Homework 1/src/grading/Missing.java create mode 100755 Homework 1/src/grading/SizeException.java create mode 100755 Homework 1/src/grading/TotalStrategy.java create mode 100755 Homework 1/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 1/src/testing/DropFilterTest.java create mode 100755 Homework 1/src/testing/GradeTest.java create mode 100755 Homework 1/src/testing/MissingTest.java create mode 100755 Homework 1/src/testing/TotalStrategyTest.java create mode 100755 Homework 1/src/testing/WeightedTotalStrategyTest.java create mode 100755 Homework 2/CS345-Homework 2.vpp create mode 100755 Homework 2/CS345-Homework 2.vpp.bak_000f create mode 100755 Homework 2/Calculate Average Temperatures.pdf create mode 100755 Homework 2/Charlottesville.tem create mode 100755 Homework 2/DaleEnterprise.tem create mode 100755 Homework 3/Homework 3.pdf create mode 100755 Homework 4/complete_01.grd create mode 100755 Homework 4/complete_02.grd create mode 100755 Homework 4/complete_03.grd create mode 100755 Homework 4/five-categories_01.grd create mode 100755 Homework 4/missing_all.grd create mode 100755 Homework 4/missing_multiple-in-each.grd create mode 100755 Homework 4/missing_one-in-each.grd create mode 100755 Homework 4/missing_one-in-one.grd create mode 100755 Homework 4/six-categories_01.grd create mode 100755 Homework 4/src/app/Gradient.java create mode 100755 Homework 4/src/grading/DropFilter.java create mode 100755 Homework 4/src/grading/Filter.java create mode 100755 Homework 4/src/grading/Grade.java create mode 100755 Homework 4/src/grading/GradingStrategy.java create mode 100755 Homework 4/src/grading/Missing.java create mode 100755 Homework 4/src/grading/SizeException.java create mode 100755 Homework 4/src/grading/TotalStrategy.java create mode 100755 Homework 4/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 4/src/grading/io/Category.java create mode 100755 Homework 4/src/grading/io/Course.java create mode 100755 Homework 4/src/grading/io/CourseReader.java create mode 100755 Homework 4/src/testing/CategoryTest.java create mode 100755 Homework 4/src/testing/CourseReaderTest.java create mode 100755 Homework 4/src/testing/CourseTest.java create mode 100755 Homework 4/src/testing/DropFilterTest.java create mode 100755 Homework 4/src/testing/GradeTest.java create mode 100755 Homework 4/src/testing/MissingTest.java create mode 100755 Homework 4/src/testing/TotalStrategyTest.java create mode 100755 Homework 4/src/testing/WeightedTotalStrategyTest.java create mode 100755 Homework 5/complete_01.grd create mode 100755 Homework 5/complete_02.grd create mode 100755 Homework 5/complete_03.grd create mode 100755 Homework 5/five-categories_01.grd create mode 100755 Homework 5/missing_all.grd create mode 100755 Homework 5/missing_multiple-in-each.grd create mode 100755 Homework 5/missing_one-in-each.grd create mode 100755 Homework 5/missing_one-in-one.grd create mode 100755 Homework 5/six-categories_01.grd create mode 100755 Homework 5/src/app/Gradient.java create mode 100755 Homework 5/src/grading/AbstractGrade.java create mode 100755 Homework 5/src/grading/CompositeGrade.java create mode 100755 Homework 5/src/grading/DropFilter.java create mode 100755 Homework 5/src/grading/Filter.java create mode 100755 Homework 5/src/grading/Grade.java create mode 100755 Homework 5/src/grading/GradingStrategy.java create mode 100755 Homework 5/src/grading/LeafGrade.java create mode 100755 Homework 5/src/grading/Missing.java create mode 100755 Homework 5/src/grading/SizeException.java create mode 100755 Homework 5/src/grading/TotalStrategy.java create mode 100755 Homework 5/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 5/src/grading/io/Category.java create mode 100755 Homework 5/src/grading/io/Course.java create mode 100755 Homework 5/src/grading/io/CourseReader.java create mode 100755 Homework 5/src/testing/CategoryTest.java create mode 100755 Homework 5/src/testing/CompositeGradeTest.java create mode 100755 Homework 5/src/testing/CourseReaderTest.java create mode 100755 Homework 5/src/testing/CourseTest.java create mode 100755 Homework 5/src/testing/DropFilterTest.java create mode 100755 Homework 5/src/testing/GradeTest.java create mode 100755 Homework 5/src/testing/MissingTest.java create mode 100755 Homework 5/src/testing/TotalStrategyTest.java create mode 100755 Homework 5/src/testing/WeightedTotalStrategyTest.java create mode 100755 Homework 6/complete_01.grd create mode 100755 Homework 6/complete_02.grd create mode 100755 Homework 6/complete_03.grd create mode 100755 Homework 6/cs111-screenshot.png create mode 100755 Homework 6/cs111.grd create mode 100755 Homework 6/five-categories_01.grd create mode 100755 Homework 6/missing_all.grd create mode 100755 Homework 6/missing_multiple-in-each.grd create mode 100755 Homework 6/missing_one-in-each.grd create mode 100755 Homework 6/missing_one-in-one.grd create mode 100755 Homework 6/potterhj-cs111-screenshot.png create mode 100755 Homework 6/potterhj-cs111.grd create mode 100755 Homework 6/six-categories_01.grd create mode 100755 Homework 6/src/app/Gradient.java create mode 100755 Homework 6/src/grading/AbstractGrade.java create mode 100755 Homework 6/src/grading/CompositeGrade.java create mode 100755 Homework 6/src/grading/DropFilter.java create mode 100755 Homework 6/src/grading/Filter.java create mode 100755 Homework 6/src/grading/Grade.java create mode 100755 Homework 6/src/grading/GradingStrategy.java create mode 100755 Homework 6/src/grading/LeafGrade.java create mode 100755 Homework 6/src/grading/Missing.java create mode 100755 Homework 6/src/grading/SizeException.java create mode 100755 Homework 6/src/grading/TotalStrategy.java create mode 100755 Homework 6/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 6/src/grading/io/Category.java create mode 100755 Homework 6/src/grading/io/Course.java create mode 100755 Homework 6/src/grading/io/CourseReader.java create mode 100755 Homework 6/src/gui/CategoryField.java create mode 100755 Homework 6/src/gui/GradientWindow.java create mode 100755 Homework 6/src/gui/LeafGradeField.java create mode 100755 Homework 7/src/grading/AbstractGrade.java create mode 100755 Homework 7/src/grading/CompositeGrade.java create mode 100755 Homework 7/src/grading/DropFilter.java create mode 100755 Homework 7/src/grading/Filter.java create mode 100755 Homework 7/src/grading/Grade.java create mode 100755 Homework 7/src/grading/GradingStrategy.java create mode 100755 Homework 7/src/grading/LeafGrade.java create mode 100755 Homework 7/src/grading/Missing.java create mode 100755 Homework 7/src/grading/SizeException.java create mode 100755 Homework 7/src/grading/TotalStrategy.java create mode 100755 Homework 7/src/grading/WeightedAverageStrategy.java create mode 100755 Homework 7/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 7/src/testing/WeightedAverageStrategyTest.java create mode 100755 Homework 8/Homework 8.docx create mode 100755 Homework 8/src/grading/AbstractGrade.java create mode 100755 Homework 8/src/grading/CompositeGrade.java create mode 100755 Homework 8/src/grading/DropFilter.java create mode 100755 Homework 8/src/grading/Filter.java create mode 100755 Homework 8/src/grading/Grade.java create mode 100755 Homework 8/src/grading/GradingStrategy.java create mode 100755 Homework 8/src/grading/LeafGrade.java create mode 100755 Homework 8/src/grading/Missing.java create mode 100755 Homework 8/src/grading/SizeException.java create mode 100755 Homework 8/src/grading/TotalStrategy.java create mode 100755 Homework 8/src/grading/WeightedAverageStrategy.java create mode 100755 Homework 8/src/grading/WeightedTotalStrategy.java create mode 100755 Homework 8/src/grading/io/Category.java create mode 100755 Homework 8/src/grading/io/Course.java create mode 100755 Homework 8/src/grading/io/CourseReader.java create mode 100755 Homework 8/src/gui/CategoryField.java create mode 100755 Homework 8/src/gui/GradientWindow.java create mode 100755 Homework 8/src/gui/LeafGradeField.java create mode 100755 Homework 8/src/testing/CategoryTest.java create mode 100755 Homework 8/src/testing/CompositeGradeTest.java create mode 100755 Homework 8/src/testing/CourseReaderTest.java create mode 100755 Homework 8/src/testing/CourseTest.java create mode 100755 Homework 8/src/testing/DropFilterTest.java create mode 100755 Homework 8/src/testing/GradeTest.java create mode 100755 Homework 8/src/testing/MissingTest.java create mode 100755 Homework 8/src/testing/TotalStrategyTest.java create mode 100755 Homework 8/src/testing/WeightedAverageStrategyTest.java create mode 100755 Homework 8/src/testing/WeightedTotalStrategyTest.java delete mode 100644 README.md create mode 100755 bernstdh_checkstyle.xml create mode 100755 bernstdh_formatter.xml diff --git a/GUI_Lab/src/CashMachine.java b/GUI_Lab/src/CashMachine.java new file mode 100755 index 0000000..51b3f09 --- /dev/null +++ b/GUI_Lab/src/CashMachine.java @@ -0,0 +1,29 @@ +import java.lang.reflect.*; +import javax.swing.*; + +/** + * The main class for the CashMachine application. + */ +public class CashMachine implements Runnable +{ + /** + * The entry point of the application (which is executed in the + * main thread of execution). + * + * @param args The command-line arguments + */ + public static void main(String[] args) throws InterruptedException, InvocationTargetException + { + SwingUtilities.invokeAndWait(new CashMachine()); + } + + /** + * The code that is executed in the event dispatch thread. + */ + public void run() + { + PINPadWindow window = new PINPadWindow(); + window.setTitle("ATM"); + window.setVisible(true); + } +} diff --git a/GUI_Lab/src/NumberPad.java b/GUI_Lab/src/NumberPad.java new file mode 100755 index 0000000..a53335a --- /dev/null +++ b/GUI_Lab/src/NumberPad.java @@ -0,0 +1,26 @@ +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; + +/** + * A numeric keypad + */ +public class NumberPad extends JPanel +{ + /** + * Default Constructor + */ + public NumberPad() + { + super(); + setupLayout(); + } + + /** + * Setup and layout this NumberPad + */ + private void setupLayout() + { + // Setup and layout this NumberPad + } +} diff --git a/GUI_Lab/src/PINPadWindow.java b/GUI_Lab/src/PINPadWindow.java new file mode 100755 index 0000000..a5122ca --- /dev/null +++ b/GUI_Lab/src/PINPadWindow.java @@ -0,0 +1,31 @@ +import java.awt.*; +import javax.swing.*; + +/** + * A window containing a PIN entry pad. + */ +public class PINPadWindow extends JFrame +{ + /** + * Default Constructor. + */ + public PINPadWindow() + { + super(); + setupLayout(); + } + + /** + * Setup and layout this PINPadWindow + */ + private void setupLayout() + { + Container contentPane; + + setSize(300, 300); + + contentPane = getContentPane(); + + // Layout this PINPadWindow + } +} diff --git a/Homework 1/src/app/Gradient.java b/Homework 1/src/app/Gradient.java new file mode 100755 index 0000000..07a3ffe --- /dev/null +++ b/Homework 1/src/app/Gradient.java @@ -0,0 +1,143 @@ +package app; + +import grading.*; +import java.util.*; + +/** + * An application for calculating the numeric grade for a course from the grades on individual + * assignments. + * + * This version assumes that the course is structured as follows: + * + * 6 programming assignments (PAs) accounting for 40% of the course grade after the lowest grade is + * dropped. + * + * 5 homework assignments (HWs) accounting for 10% of the course grade. + * + * 1 mid-term exam (Midterm) accounting for 20% of the course grade. + * + * 1 final exam (Final) accounting for 30% of the course grade. + * + * @version 1.0 + * @author Sagacious Media + * + */ +public class Gradient +{ + /** + * The entry point for the application. + * + * @param args + * The 13 grades (ordered as above). Missing grades can be entered as "NA". + */ + public static void main(final String[] args) + { + Filter paFilter; + Grade courseGrade, hwGrade, paGrade; + GradingStrategy courseStrategy, hwStrategy, paStrategy; + List grades, hws, pas; + Map courseWeights; + + // Early exit + if ((args == null) || (args.length != 13)) + { + System.err.println("You must enter exactly 13 grades. (Use NA for missing.)"); + System.exit(1); + } + + // Create the filter and strategy for PAs + paFilter = new DropFilter(true, false); + paStrategy = new TotalStrategy(); + + // Create the strategy for HWs + hwStrategy = new TotalStrategy(); + + // Create the weights and strategy for the course grade + courseWeights = new HashMap(); + courseWeights.put("PAs", 0.4); + courseWeights.put("HWs", 0.1); + courseWeights.put("Midterm", 0.2); + courseWeights.put("Final", 0.3); + courseStrategy = new WeightedTotalStrategy(courseWeights); + + try + { + // Put the PA grades in a List + pas = new ArrayList(); + for (int i = 0; i < 6; i++) + { + pas.add(parseGrade("PA" + (i + 1), args[i])); + } + + // Calculate the PA grade (after filtering) + paGrade = paStrategy.calculate("PAs", paFilter.apply(pas)); + + // Put the HW grades in a List + hws = new ArrayList(); + for (int i = 0; i < 5; i++) + { + hws.add(parseGrade("HW" + (i + 1), args[i + 6])); + } + + // Calculate the HW grade + hwGrade = hwStrategy.calculate("HWs", hws); + + // Put all of the grades in a List + grades = new ArrayList(); + grades.add(paGrade); + grades.add(hwGrade); + grades.add(parseGrade("Midterm", args[11])); + grades.add(parseGrade("Final", args[12])); + + // Calculate the final grade + courseGrade = courseStrategy.calculate("Course Grade", grades); + + // Display the final grade + System.out.println(courseGrade.toString()); + } + catch (SizeException se) + { + System.out.println("You entered too few valid grades."); + } + catch (IllegalArgumentException iae) + { + // Should never get here since all keys should be valid + } + } + + /** + * Construct a Grade object from a key and a String representation of its value. If the String + * representation of the value is null or not a valid double then the resulting Grade will have a + * missing value. + * + * @param key + * The key for the Grade + * @param value + * The String representation of the value + * @return The corresponding Grade object + * @throws IllegalArgumentException + * if the key is invalid + */ + private static Grade parseGrade(final String key, final String value) + throws IllegalArgumentException + { + Grade result; + + try + { + Double v; + if (value == null) + v = null; + else + v = Double.valueOf(value); + + result = new Grade(key, v); + } + catch (NumberFormatException nfe) + { + result = new Grade(key, null); + } + + return result; + } +} diff --git a/Homework 1/src/grading/DropFilter.java b/Homework 1/src/grading/DropFilter.java new file mode 100755 index 0000000..4c342c3 --- /dev/null +++ b/Homework 1/src/grading/DropFilter.java @@ -0,0 +1,79 @@ +package grading; + +import java.util.*; + +/** + * A filter to apply to a list of grades to optionally drop the lowest or highest grades. + */ +public class DropFilter implements Filter +{ + private boolean shouldDropLowest; + private boolean shouldDropHighest; + + /** + * Default constructor that will drop the lowest and highest grades. + */ + public DropFilter() + { + this.shouldDropLowest = true; + this.shouldDropHighest = true; + } + + /** + * @param shouldDropLowest + * Whether or not to drop the lowest grade + * @param shouldDropHighest + * Whether or not to drop the highest grade + */ + public DropFilter(final boolean shouldDropLowest, final boolean shouldDropHighest) + { + this.shouldDropLowest = shouldDropLowest; + this.shouldDropHighest = shouldDropHighest; + } + + /** + * @param grades + * The list of grades to apply the DropFilter to. + * @return A new list containing the original grades with filter applied + */ + public List apply(final List grades) throws SizeException + { + int minSize = (shouldDropLowest ? 1 : 0) + (shouldDropHighest ? 1 : 0); + + if (grades == null || grades.size() <= minSize) + { + throw new SizeException(); + } + + List droppedGrades = new ArrayList(); + droppedGrades.addAll(grades); + + Grade lowest = null; + Grade highest = null; + + for (Grade grade : grades) + { + if (lowest == null || grade.compareTo(lowest) < 0) + { + lowest = grade; + } + + if (highest == null || grade.compareTo(highest) > 0) + { + highest = grade; + } + } + + if (shouldDropLowest) + { + droppedGrades.remove(lowest); + } + + if (shouldDropHighest) + { + droppedGrades.remove(highest); + } + + return droppedGrades; + } +} diff --git a/Homework 1/src/grading/Filter.java b/Homework 1/src/grading/Filter.java new file mode 100755 index 0000000..0e7437d --- /dev/null +++ b/Homework 1/src/grading/Filter.java @@ -0,0 +1,17 @@ +package grading; + +import java.util.*; + +/** + * An interface for filters that can be applied to a list of grades. + */ +public interface Filter +{ + /** + * @param grades + * The list of grades to provide the filter to + * @return A new list contain the original grades with the filter applied + * @throws SizeException + */ + public List apply(List grades) throws SizeException; +} diff --git a/Homework 1/src/grading/Grade.java b/Homework 1/src/grading/Grade.java new file mode 100755 index 0000000..08b0a5e --- /dev/null +++ b/Homework 1/src/grading/Grade.java @@ -0,0 +1,106 @@ +package grading; + +/** + * A data class for storing a grade with a key and a value to store the score. + */ +public class Grade implements Comparable +{ + private String key; + private Double value; + + /** + * @param key + * The type of grade + */ + public Grade(final String key) + { + if (key == null || key.isEmpty()) + { + throw new IllegalArgumentException(); + } + + this.key = key; + this.value = 0.0; + } + + /** + * @param key + * The type of grade + * @param value + * The score for the grade + */ + public Grade(final String key, final double value) + { + if (key == null || key.isEmpty()) + { + throw new IllegalArgumentException(); + } + + this.key = key; + this.value = value; + } + + /** + * @param key + * The type of grade + * @param value + * The score for the grade + */ + public Grade(final String key, final Double value) + { + if (key == null || key.isEmpty()) + { + throw new IllegalArgumentException(); + } + + this.key = key; + this.value = value; + } + + /** + * @param other + * The grade to compare with + * @return Either -1, 0, or 1 depending on if the grade was smaller/equal to/larger than other + */ + public int compareTo(final Grade other) + { + if (this.value == null) + { + return (other.value == null) ? 0 : -1; + } + if (other.value == null) + { + return 1; + } + return this.value.compareTo(other.value); + } + + /** + * @return A string representation of the grade + */ + public String toString() + { + if (value == null) + { + return String.format("%s: NA", key); + } + + return String.format("%s: %5.1f", key, value); + } + + /** + * @return The key for the grade + */ + public String getKey() + { + return key; + } + + /** + * @return The value of the grade + */ + public Double getValue() + { + return value; + } +} diff --git a/Homework 1/src/grading/GradingStrategy.java b/Homework 1/src/grading/GradingStrategy.java new file mode 100755 index 0000000..93f0b73 --- /dev/null +++ b/Homework 1/src/grading/GradingStrategy.java @@ -0,0 +1,19 @@ +package grading; + +import java.util.*; + +/** + * An interface for strategies of calculating a final grade from a list of grades. + */ +public interface GradingStrategy +{ + /** + * @param key + * The key for the final calculated grade + * @param grades + * The list of grades to from which to calculate the final grade + * @return A new grade representing the final grade calculated from grades + * @throws SizeException + */ + public Grade calculate(String key, List grades) throws SizeException; +} diff --git a/Homework 1/src/grading/Missing.java b/Homework 1/src/grading/Missing.java new file mode 100755 index 0000000..1f32b40 --- /dev/null +++ b/Homework 1/src/grading/Missing.java @@ -0,0 +1,35 @@ +package grading; + +/** + * A utility class for supplying a default double value in the case that a provided double is null. + */ +public class Missing +{ + private static double DEFAULT_MISSING_VALUE = 0.0; + + private Missing() + { + } + + /** + * @param number + * The supplied double to check for null. + * @return Either number if it was not null, or a default value of 0.0 if it was. + */ + public static double doubleValue(final Double number) + { + return number != null ? number : DEFAULT_MISSING_VALUE; + } + + /** + * @param number + * The supplied double to check for null. + * @param missingValue + * The default value to return if number was null + * @return Either number if it was not null, or missingValue if it was + */ + public static double doubleValue(final Double number, final double missingValue) + { + return number != null ? number : missingValue; + } +} diff --git a/Homework 1/src/grading/SizeException.java b/Homework 1/src/grading/SizeException.java new file mode 100755 index 0000000..2f31fed --- /dev/null +++ b/Homework 1/src/grading/SizeException.java @@ -0,0 +1,19 @@ +package grading; + +/** + * A custom exception for cases where a provided list does not meet a size requirement. + */ +public class SizeException extends RuntimeException +{ + /** + * Exception identifier. + */ + static final long serialVersionUID = 1L; + + /** + * Creates a new SizeException instance. + */ + public SizeException() + { + } +} diff --git a/Homework 1/src/grading/TotalStrategy.java b/Homework 1/src/grading/TotalStrategy.java new file mode 100755 index 0000000..0daf496 --- /dev/null +++ b/Homework 1/src/grading/TotalStrategy.java @@ -0,0 +1,40 @@ +package grading; + +import java.util.List; + +/** + * An implementation GradingStrategy that simply totals the scores for all grades. + */ +public class TotalStrategy implements GradingStrategy +{ + /** + * Creates a new instance of TotalStrategy. + */ + public TotalStrategy() + { + } + + /** + * @param key + * The key of the final totaled grade + * @param grades + * The list of grades to calculate the final total grade from + * @return A new grade representing the total of grades + */ + public Grade calculate(final String key, final List grades) throws SizeException + { + if (grades == null || grades.isEmpty()) + { + throw new SizeException(); + } + + Double total = 0.0; + + for (Grade grade : grades) + { + total += Missing.doubleValue(grade.getValue()); + } + + return new Grade(key, total); + } +} diff --git a/Homework 1/src/grading/WeightedTotalStrategy.java b/Homework 1/src/grading/WeightedTotalStrategy.java new file mode 100755 index 0000000..7fe8c26 --- /dev/null +++ b/Homework 1/src/grading/WeightedTotalStrategy.java @@ -0,0 +1,61 @@ +package grading; + +import java.util.*; + +/** + * An implementation GradingStrategy that applies weights to specific grade keys and weighs each + * grade before summing a total. + */ +public class WeightedTotalStrategy implements GradingStrategy +{ + private Map weights; + + /** + * Creates a new instance WeightedTotalStrategy. + */ + public WeightedTotalStrategy() + { + } + + /** + * Creates a new instance WeightedTotalStrategy. + * + * @param weights + * A map of keys and weights to be applied to the grades during calculation. + */ + public WeightedTotalStrategy(final Map weights) + { + this.weights = weights; + } + + /** + * @param key + * The key of the final totaled grade + * @param grades + * The list of grades to calculate the final total grade from + * @return A new grade representing the total of the weighted grades + */ + public Grade calculate(final String key, final List grades) throws SizeException + { + if (grades == null || grades.isEmpty()) + { + throw new SizeException(); + } + + Double total = 0.0; + + for (Grade grade : grades) + { + Double weight = 1.0; + if (weights != null && weights.containsKey(grade.getKey())) + { + Double mapWeight = weights.get(grade.getKey()); + weight = Math.max(mapWeight, 0.0); + } + + total += Missing.doubleValue(grade.getValue()) * weight; + } + + return new Grade(key, total); + } +} diff --git a/Homework 1/src/testing/DropFilterTest.java b/Homework 1/src/testing/DropFilterTest.java new file mode 100755 index 0000000..66e2a4b --- /dev/null +++ b/Homework 1/src/testing/DropFilterTest.java @@ -0,0 +1,38 @@ +package testing; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; +import java.util.List; + +import grading.Grade; +import grading.SizeException; +import grading.DropFilter; + +class DropFilterTest +{ + @Test + void applyTest() + { + final Grade grade1 = new Grade("HW", 40.0); + final Grade grade2 = new Grade("Midterm", (Double) null); + final Grade grade3 = new Grade("Final", 100.0); + + List grades = List.of(grade1, grade2, grade3); + + DropFilter defaultFilter = new DropFilter(); + DropFilter filter1 = new DropFilter(false, false); + DropFilter filter2 = new DropFilter(false, true); + DropFilter filter3 = new DropFilter(true, false); + DropFilter filter4 = new DropFilter(true, true); + + assertThrows(SizeException.class, () -> defaultFilter.apply((List) null)); + assertThrows(SizeException.class, () -> defaultFilter.apply(new ArrayList())); + + assertIterableEquals(grades, filter1.apply(grades)); + assertIterableEquals(List.of(grade1, grade2), filter2.apply(grades)); + assertIterableEquals(List.of(grade1, grade3), filter3.apply(grades)); + assertIterableEquals(List.of(grade1), filter4.apply(grades)); + } +} diff --git a/Homework 1/src/testing/GradeTest.java b/Homework 1/src/testing/GradeTest.java new file mode 100755 index 0000000..0caa5f6 --- /dev/null +++ b/Homework 1/src/testing/GradeTest.java @@ -0,0 +1,79 @@ +package testing; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import grading.Grade; + +class GradeTest +{ + private static final String HOMEWORK_KEY = "HW"; + private static final String MIDTERM_KEY = "Midterm"; + private static final String FINAL_KEY = "Final"; + + @Test + void defaultValueConstructorTest() + { + Grade grade = new Grade(FINAL_KEY); + assertEquals(FINAL_KEY, grade.getKey()); + assertEquals(0.0, grade.getValue()); + } + + @Test + void givenValueConstructorTest() + { + Grade grade = new Grade(MIDTERM_KEY, 85.5); + assertEquals(MIDTERM_KEY, grade.getKey()); + assertEquals(85.5, grade.getValue()); + } + + @Test + void nullValueConstructorTest() + { + assertThrows(IllegalArgumentException.class, () -> new Grade(null)); + assertThrows(IllegalArgumentException.class, () -> new Grade(null, 90.0)); + assertThrows(IllegalArgumentException.class, () -> new Grade(null, (Double) null)); + } + + @Test + void emptyKeyConstructorTest() + { + assertThrows(IllegalArgumentException.class, () -> new Grade("")); + assertThrows(IllegalArgumentException.class, () -> new Grade("", 90.0)); + assertThrows(IllegalArgumentException.class, () -> new Grade("", (Double) null)); + } + + @Test + void nullCompareToTest() + { + Grade grade1 = new Grade(HOMEWORK_KEY, (Double) null); + Grade grade2 = new Grade(HOMEWORK_KEY, 80.0); + Grade grade3 = new Grade(HOMEWORK_KEY, (Double) null); + + assertTrue(grade1.compareTo(grade2) < 0); + assertEquals(0, grade1.compareTo(grade3)); + assertTrue(grade2.compareTo(grade1) > 0); + } + + @Test + void compareToTest() + { + Grade grade1 = new Grade(HOMEWORK_KEY, 75.0); + Grade grade2 = new Grade(HOMEWORK_KEY, 85.0); + Grade grade3 = new Grade(HOMEWORK_KEY, 75.0); + + assertTrue(grade1.compareTo(grade2) < 0); + assertEquals(0, grade1.compareTo(grade3)); + assertTrue(grade2.compareTo(grade1) > 0); + } + + @Test + void toStringTest() + { + Grade grade1 = new Grade(FINAL_KEY, 90.0); + Grade grade2 = new Grade(MIDTERM_KEY, (Double) null); + + assertEquals("Final: 90.0", grade1.toString()); + assertEquals("Midterm: NA", grade2.toString()); + } +} diff --git a/Homework 1/src/testing/MissingTest.java b/Homework 1/src/testing/MissingTest.java new file mode 100755 index 0000000..21689d0 --- /dev/null +++ b/Homework 1/src/testing/MissingTest.java @@ -0,0 +1,23 @@ +package testing; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import grading.Missing; + +class MissingTest +{ + @Test + void defaultDoubleValueTest() + { + assertEquals(40.0, Missing.doubleValue(40.0)); + assertEquals(0.0, Missing.doubleValue((Double) null)); + } + + @Test + void givenMissingDoubleValueTest() + { + assertEquals(40.0, Missing.doubleValue(40.0, 20.0)); + assertEquals(20.0, Missing.doubleValue((Double) null, 20.0)); + } +} diff --git a/Homework 1/src/testing/TotalStrategyTest.java b/Homework 1/src/testing/TotalStrategyTest.java new file mode 100755 index 0000000..8085404 --- /dev/null +++ b/Homework 1/src/testing/TotalStrategyTest.java @@ -0,0 +1,34 @@ +package testing; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.*; + +import grading.Grade; +import grading.TotalStrategy; +import grading.SizeException; + +class TotalStrategyTest +{ + private static final String TOTAL_KEY = "Total"; + + @Test + void calculateTest() + { + List grades = new ArrayList(); + grades.add(new Grade("HW1", 40.0)); + grades.add(new Grade("HW2", (Double) null)); + grades.add(new Grade("HW3", 100.0)); + + TotalStrategy strategy = new TotalStrategy(); + + assertThrows(SizeException.class, () -> strategy.calculate(TOTAL_KEY, (List) null)); + assertThrows(SizeException.class, () -> strategy.calculate(TOTAL_KEY, new ArrayList())); + + Grade total = strategy.calculate(TOTAL_KEY, grades); + + assertEquals(TOTAL_KEY, total.getKey()); + assertEquals(140.0, total.getValue()); + } +} diff --git a/Homework 1/src/testing/WeightedTotalStrategyTest.java b/Homework 1/src/testing/WeightedTotalStrategyTest.java new file mode 100755 index 0000000..ec3f601 --- /dev/null +++ b/Homework 1/src/testing/WeightedTotalStrategyTest.java @@ -0,0 +1,50 @@ +package testing; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import java.util.*; + +import grading.Grade; +import grading.WeightedTotalStrategy; +import grading.SizeException; + +class WeightedTotalStrategyTest +{ + private static final String HOMEWORK_KEY = "HW"; + private static final String MIDTERM_KEY = "Midterm"; + private static final String FINAL_KEY = "Final"; + private static final String TOTAL_KEY = "Total"; + + @Test + void calculateTest() + { + List grades = new ArrayList(); + grades.add(new Grade(HOMEWORK_KEY, 40.0)); + grades.add(new Grade(MIDTERM_KEY, (Double) null)); + grades.add(new Grade(FINAL_KEY, 100.0)); + + Map weights = new HashMap(); + weights.put(MIDTERM_KEY, 2.0); + weights.put(FINAL_KEY, 3.0); + + WeightedTotalStrategy defaultStrategy = new WeightedTotalStrategy(); + + assertThrows(SizeException.class, + () -> defaultStrategy.calculate(TOTAL_KEY, (List) null)); + assertThrows(SizeException.class, + () -> defaultStrategy.calculate(TOTAL_KEY, new ArrayList())); + + Grade total = defaultStrategy.calculate(TOTAL_KEY, grades); + + assertEquals(TOTAL_KEY, total.getKey()); + assertEquals(140.0, total.getValue()); + + WeightedTotalStrategy strategy = new WeightedTotalStrategy(weights); + + Grade weightedTotal = strategy.calculate(TOTAL_KEY, grades); + + assertEquals(TOTAL_KEY, weightedTotal.getKey()); + assertEquals(340.0, weightedTotal.getValue()); + } +} diff --git a/Homework 2/CS345-Homework 2.vpp b/Homework 2/CS345-Homework 2.vpp new file mode 100755 index 0000000000000000000000000000000000000000..41aa345ff3cb925e12c34d830c578e1e75d16b32 GIT binary patch literal 643072 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bernstdh_formatter.xml b/bernstdh_formatter.xml new file mode 100755 index 0000000..6777310 --- /dev/null +++ b/bernstdh_formatter.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +