From 4380dd04e5b0019cb38f3cb480314a82dd23df53 Mon Sep 17 00:00:00 2001 From: aj Date: Fri, 14 Jun 2019 12:38:51 +0100 Subject: [PATCH] initial commit --- CS2012 Lab 1/.gitignore | 58 +++ .../src/doublearray/ArrayModifier.java | 97 ++++ CS2012 Lab 10/.gitignore | 58 +++ CS2012 Lab 10/Lab10.jar | Bin 0 -> 11396 bytes CS2012 Lab 10/src/fx/MainController.java | 193 +++++++ .../src/fx/MonsterAttackApplication.java | 41 ++ CS2012 Lab 10/src/fx/styles/main.css | 16 + CS2012 Lab 10/src/fx/ui/main.fxml | 41 ++ .../src/io/BinaryMonsterPersister.java | 53 ++ CS2012 Lab 10/src/io/MonsterPersister.java | 14 + .../src/io/TextMonsterPersister.java | 79 +++ CS2012 Lab 10/src/model/MonsterAttack.java | 116 +++++ CS2012 Lab 11/.gitignore | 58 +++ CS2012 Lab 11/src/Recursion.java | 84 +++ CS2012 Lab 11/src/RecursionTest.java | 276 ++++++++++ CS2012 Lab 2 redux/.gitignore | 58 +++ .../doublearraylist/ArrayListModifier.java | 102 ++++ CS2012 Lab 3/.gitignore | 58 +++ .../src/monsterattack/AttackMonitor.java | 121 +++++ .../src/monsterattack/MonsterAttack.java | 110 ++++ .../monsterattack/MonsterAttackDriver.java | 19 + CS2012 Lab 4/.gitignore | 58 +++ .../src/universitymanager/Address.java | 53 ++ .../src/universitymanager/Course.java | 31 ++ .../src/universitymanager/Driver.java | 28 + .../src/universitymanager/FacultyMember.java | 23 + .../src/universitymanager/Person.java | 54 ++ .../src/universitymanager/Student.java | 23 + .../src/universitymanager/University.java | 479 ++++++++++++++++++ CS2012 Lab 5/.gitignore | 58 +++ .../src/monsterattack/AttackMonitor.java | 202 ++++++++ .../src/monsterattack/MonsterAttack.java | 110 ++++ .../monsterattack/MonsterAttackDriver.java | 21 + CS2012 Lab 7/.gitignore | 58 +++ CS2012 Lab 7/src/mymath/MyFraction.java | 187 +++++++ CS2012 Lab 7/src/mymath/MyMath.java | 11 + CS2012 Lab 7/src/mymath/MySet.java | 168 ++++++ .../src/mymath/test/MyFractionTests.java | 336 ++++++++++++ CS2012 Lab 7/src/mymath/test/MySetTests.java | 305 +++++++++++ .../src/mymath/test/TestsMyFraction.java | 189 +++++++ CS2012 Lab 8/.gitignore | 74 +++ CS2012 Lab 8/src/fx/BullRun.java | 31 ++ CS2012 Lab 8/src/fx/MazeGUIPane.java | 237 +++++++++ CS2012 Lab 8/src/logic/Bull.java | 248 +++++++++ CS2012 Lab 8/src/logic/Coordinate.java | 79 +++ CS2012 Lab 8/src/logic/StreetMap.java | 239 +++++++++ CS2012 Lab 8/src/styles/style.css | 88 ++++ CS2012 Lab 8/src/test/CoordinateTest.java | 29 ++ CS2012 Lab 8/src/test/StreetMapTest.java | 33 ++ CS2012 Quiz 10/.gitignore | 58 +++ .../src/clickcounter/ClickCounter.java | 27 + .../src/clickcounter/Controller.java | 29 ++ CS2012 Quiz 10/src/ui/clickfxml.fxml | 129 +++++ CS2012 Quiz 10/src/ui/style.css | 4 + CS2012 Quiz 11/.gitignore | 58 +++ CS2012 Quiz 11/src/monsterfight/Drive.java | 13 + .../src/monsterfight/HeroMonster.java | 37 ++ CS2012 Quiz 11/src/monsterfight/Monster.java | 26 + .../src/monsterfight/MonsterAttack.java | 84 +++ CS2012 Quiz 11/src/monsterfight/Zombie.java | 44 ++ CS2012 Quiz 5/.gitignore | 58 +++ CS2012 Quiz 5/src/CourseRoll.java | 23 + CS2012 Quiz 5/src/Driver.java | 10 + CS2012 Quiz 5/src/RandomArrayGenerator.java | 33 ++ CS2012 Quiz 5/src/Student.java | 14 + CS2012 Quiz 6/.gitignore | 58 +++ CS2012 Quiz 6/src/Asylum.java | 25 + CS2012 Quiz 6/src/Building.java | 22 + CS2012 Quiz 6/src/Driver.java | 18 + CS2012 Quiz 6/src/House.java | 26 + CS2012 Quiz 6/src/Street.java | 56 ++ CS2012 Quiz 8/.gitignore | 58 +++ .../conversion/EnglishToMetricConverter.java | 20 + .../conversion/MetricToEnglishConverter.java | 20 + .../src/conversion/ScaleConverter.java | 9 + .../test/EnglishToMetricConverterTester.java | 82 +++ CS2012 Sample Final/.gitignore | 58 +++ CS2012 Sample Final/partII.java | 16 + CS2012 Sample Final/src/finalexam/Animal.java | 76 +++ .../src/finalexam/DuckSizedHorse.java | 19 + CS2012 Sample Final/src/finalexam/Fight.java | 47 ++ .../src/finalexam/HorseSizedDuck.java | 18 + CS2012 Sample Midterm/.gitignore | 58 +++ CS2012 Sample Midterm/src/Circle.java | 24 + CS2012 Sample Midterm/src/Driver.java | 42 ++ CS2012 Sample Midterm/src/Rectangle.java | 31 ++ CS2012 Sample Midterm/src/Shape2D.java | 8 + 87 files changed, 6542 insertions(+) create mode 100644 CS2012 Lab 1/.gitignore create mode 100755 CS2012 Lab 1/src/doublearray/ArrayModifier.java create mode 100644 CS2012 Lab 10/.gitignore create mode 100755 CS2012 Lab 10/Lab10.jar create mode 100755 CS2012 Lab 10/src/fx/MainController.java create mode 100755 CS2012 Lab 10/src/fx/MonsterAttackApplication.java create mode 100755 CS2012 Lab 10/src/fx/styles/main.css create mode 100755 CS2012 Lab 10/src/fx/ui/main.fxml create mode 100755 CS2012 Lab 10/src/io/BinaryMonsterPersister.java create mode 100755 CS2012 Lab 10/src/io/MonsterPersister.java create mode 100755 CS2012 Lab 10/src/io/TextMonsterPersister.java create mode 100755 CS2012 Lab 10/src/model/MonsterAttack.java create mode 100644 CS2012 Lab 11/.gitignore create mode 100755 CS2012 Lab 11/src/Recursion.java create mode 100755 CS2012 Lab 11/src/RecursionTest.java create mode 100644 CS2012 Lab 2 redux/.gitignore create mode 100755 CS2012 Lab 2 redux/src/doublearraylist/ArrayListModifier.java create mode 100644 CS2012 Lab 3/.gitignore create mode 100755 CS2012 Lab 3/src/monsterattack/AttackMonitor.java create mode 100755 CS2012 Lab 3/src/monsterattack/MonsterAttack.java create mode 100755 CS2012 Lab 3/src/monsterattack/MonsterAttackDriver.java create mode 100644 CS2012 Lab 4/.gitignore create mode 100755 CS2012 Lab 4/src/universitymanager/Address.java create mode 100755 CS2012 Lab 4/src/universitymanager/Course.java create mode 100755 CS2012 Lab 4/src/universitymanager/Driver.java create mode 100755 CS2012 Lab 4/src/universitymanager/FacultyMember.java create mode 100755 CS2012 Lab 4/src/universitymanager/Person.java create mode 100755 CS2012 Lab 4/src/universitymanager/Student.java create mode 100755 CS2012 Lab 4/src/universitymanager/University.java create mode 100644 CS2012 Lab 5/.gitignore create mode 100755 CS2012 Lab 5/src/monsterattack/AttackMonitor.java create mode 100755 CS2012 Lab 5/src/monsterattack/MonsterAttack.java create mode 100755 CS2012 Lab 5/src/monsterattack/MonsterAttackDriver.java create mode 100644 CS2012 Lab 7/.gitignore create mode 100755 CS2012 Lab 7/src/mymath/MyFraction.java create mode 100755 CS2012 Lab 7/src/mymath/MyMath.java create mode 100755 CS2012 Lab 7/src/mymath/MySet.java create mode 100755 CS2012 Lab 7/src/mymath/test/MyFractionTests.java create mode 100755 CS2012 Lab 7/src/mymath/test/MySetTests.java create mode 100755 CS2012 Lab 7/src/mymath/test/TestsMyFraction.java create mode 100755 CS2012 Lab 8/.gitignore create mode 100755 CS2012 Lab 8/src/fx/BullRun.java create mode 100755 CS2012 Lab 8/src/fx/MazeGUIPane.java create mode 100755 CS2012 Lab 8/src/logic/Bull.java create mode 100755 CS2012 Lab 8/src/logic/Coordinate.java create mode 100755 CS2012 Lab 8/src/logic/StreetMap.java create mode 100755 CS2012 Lab 8/src/styles/style.css create mode 100755 CS2012 Lab 8/src/test/CoordinateTest.java create mode 100755 CS2012 Lab 8/src/test/StreetMapTest.java create mode 100644 CS2012 Quiz 10/.gitignore create mode 100755 CS2012 Quiz 10/src/clickcounter/ClickCounter.java create mode 100755 CS2012 Quiz 10/src/clickcounter/Controller.java create mode 100755 CS2012 Quiz 10/src/ui/clickfxml.fxml create mode 100755 CS2012 Quiz 10/src/ui/style.css create mode 100644 CS2012 Quiz 11/.gitignore create mode 100755 CS2012 Quiz 11/src/monsterfight/Drive.java create mode 100755 CS2012 Quiz 11/src/monsterfight/HeroMonster.java create mode 100755 CS2012 Quiz 11/src/monsterfight/Monster.java create mode 100755 CS2012 Quiz 11/src/monsterfight/MonsterAttack.java create mode 100755 CS2012 Quiz 11/src/monsterfight/Zombie.java create mode 100644 CS2012 Quiz 5/.gitignore create mode 100755 CS2012 Quiz 5/src/CourseRoll.java create mode 100755 CS2012 Quiz 5/src/Driver.java create mode 100755 CS2012 Quiz 5/src/RandomArrayGenerator.java create mode 100755 CS2012 Quiz 5/src/Student.java create mode 100644 CS2012 Quiz 6/.gitignore create mode 100755 CS2012 Quiz 6/src/Asylum.java create mode 100755 CS2012 Quiz 6/src/Building.java create mode 100755 CS2012 Quiz 6/src/Driver.java create mode 100755 CS2012 Quiz 6/src/House.java create mode 100755 CS2012 Quiz 6/src/Street.java create mode 100644 CS2012 Quiz 8/.gitignore create mode 100755 CS2012 Quiz 8/src/conversion/EnglishToMetricConverter.java create mode 100755 CS2012 Quiz 8/src/conversion/MetricToEnglishConverter.java create mode 100755 CS2012 Quiz 8/src/conversion/ScaleConverter.java create mode 100755 CS2012 Quiz 8/src/test/EnglishToMetricConverterTester.java create mode 100644 CS2012 Sample Final/.gitignore create mode 100755 CS2012 Sample Final/partII.java create mode 100755 CS2012 Sample Final/src/finalexam/Animal.java create mode 100755 CS2012 Sample Final/src/finalexam/DuckSizedHorse.java create mode 100755 CS2012 Sample Final/src/finalexam/Fight.java create mode 100755 CS2012 Sample Final/src/finalexam/HorseSizedDuck.java create mode 100644 CS2012 Sample Midterm/.gitignore create mode 100755 CS2012 Sample Midterm/src/Circle.java create mode 100755 CS2012 Sample Midterm/src/Driver.java create mode 100755 CS2012 Sample Midterm/src/Rectangle.java create mode 100755 CS2012 Sample Midterm/src/Shape2D.java diff --git a/CS2012 Lab 1/.gitignore b/CS2012 Lab 1/.gitignore new file mode 100644 index 0000000..c2fd6a2 --- /dev/null +++ b/CS2012 Lab 1/.gitignore @@ -0,0 +1,58 @@ +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +.classpath +.project diff --git a/CS2012 Lab 1/src/doublearray/ArrayModifier.java b/CS2012 Lab 1/src/doublearray/ArrayModifier.java new file mode 100755 index 0000000..3730a7e --- /dev/null +++ b/CS2012 Lab 1/src/doublearray/ArrayModifier.java @@ -0,0 +1,97 @@ +package doublearray; + +import java.util.Scanner; + +public class ArrayModifier { + + public static void main(String[] args) { + double[] array = getArray(); + System.out.print("Original Array: "); + printArray(array); + System.out.println(); + + System.out.print("Square Root: "); + sqrtArray(array); + System.out.print("Original Array: "); + printArray(array); + System.out.println(); + + System.out.print("Truncated at 500: "); + truncateArray(array); + printArray(array); + System.out.println(); + + //double[] newArray = new double[array.length]; + double[] newArray = getReciprocalArray(array); + System.out.print("Reciprocal Array: "); + printArray(newArray); + System.out.print("Original Array: "); + printArray(array); + + } + + static double[] getArray() { //Return array of 10 valid doubles + Scanner scan = new Scanner(System.in); + double[] array = new double[10]; + + System.out.println("Enter 10 Doubles, 1 per line: "); + for (int counter = 0; counter < 10; counter++) { + while (!scan.hasNextDouble()) { + scan.nextLine(); + System.out.println("Error: Enter Double"); + } + array[counter] = scan.nextDouble(); + } + scan.close(); + return array; + } + + static void sqrtArray(double[] array) { //Print sqrt of each value + + + for (double i : array) { + System.out.println(Math.sqrt(i)); + } + + + /* + double[] newArray = new double[array.length]; + for (int counter = 0; counter < array.length; counter++) { + + newArray[counter] = Math.sqrt(array[counter]); + } + printArray(newArray); + */ + } + + static void truncateArray(double[] array) { //truncate values of array to 500 + for (int counter = 0; counter < array.length; counter++) { + + if (array[counter] > 500) + array[counter] = 500; + + } + } + + static double[] getReciprocalArray(double[] array) { //returns new array of reciprocals + double[] newArray = new double[array.length]; + for (int counter = 0; counter < array.length; counter++) { + + newArray[counter] = 1 / array[counter]; + } + + return newArray; + } + + static void printArray(double[] array) { //print out array + System.out.print('{'); + for (int counter = 0; counter < array.length; counter++) { + System.out.print(array[counter]); + if (counter != (array.length - 1)) + System.out.print(", "); + + } + System.out.println('}'); + } + +} diff --git a/CS2012 Lab 10/.gitignore b/CS2012 Lab 10/.gitignore new file mode 100644 index 0000000..c2fd6a2 --- /dev/null +++ b/CS2012 Lab 10/.gitignore @@ -0,0 +1,58 @@ +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +.classpath +.project diff --git a/CS2012 Lab 10/Lab10.jar b/CS2012 Lab 10/Lab10.jar new file mode 100755 index 0000000000000000000000000000000000000000..db186876fd813f6b224e082ba97efdd81eaf4e31 GIT binary patch literal 11396 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

EGF0}aXKpIaL~p)Z)^8i;H_ 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 literal 0 HcmV?d00001 diff --git a/CS2012 Lab 10/src/fx/MainController.java b/CS2012 Lab 10/src/fx/MainController.java new file mode 100755 index 0000000..b79ef64 --- /dev/null +++ b/CS2012 Lab 10/src/fx/MainController.java @@ -0,0 +1,193 @@ +package fx; + +import java.io.File; +import java.time.LocalDate; +import java.util.ArrayList; + +import io.BinaryMonsterPersister; +import io.MonsterPersister; +import io.TextMonsterPersister; +import javafx.event.Event; +import javafx.event.EventHandler; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.DatePicker; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.GridPane; +import javafx.stage.FileChooser; +import model.MonsterAttack; + +public class MainController { + + private ArrayList list; + + public MainController() { + list = new ArrayList(); + } + + @FXML + private void initialize() { + + labelName.getStyleClass().add("headerLabel"); + labelLocation.getStyleClass().add("headerLabel"); + labelReporter.getStyleClass().add("headerLabel"); + labelDate.getStyleClass().add("headerLabel"); + + refresh(); + } + + private Label labelName = new Label("monster name"); + private Label labelLocation = new Label("location"); + private Label labelReporter = new Label("reporter name"); + private Label labelDate = new Label("date"); + + @FXML + private TextField textFieldMonsterName; + @FXML + private TextField textFieldLocation; + @FXML + private TextField textFieldReporter; + @FXML + private DatePicker datePicker; + @FXML + private GridPane gridPane; + + @FXML + protected void handleAdd() { + + String name = textFieldMonsterName.getText(); + String location = textFieldLocation.getText(); + String reporter = textFieldReporter.getText(); + LocalDate date = datePicker.getValue(); + +// System.out.println(name + location + reporter + date.toString()); + + if (name != null && location != null && reporter != null && date != null) { + +// System.out.println(date.toString()); + MonsterAttack attack = new MonsterAttack(date.toString(), name, location, reporter); + + System.out.println(attack); + + list.add(attack); + refresh(); + + } + } + + public void refresh() { + + gridPane.getChildren().clear(); + + gridPane.add(labelName, 0, 0); + gridPane.add(labelLocation, 1, 0); + gridPane.add(labelReporter, 2, 0); + gridPane.add(labelDate, 3, 0); + + int counter; + for (counter = 0; counter < list.size(); counter++) { + final MonsterAttack attack = list.get(counter); + + Label name = new Label(attack.getNameOfMonster()); + name.getStyleClass().add("monsterName"); + + Label location = new Label(attack.getAttackLocation()); + Label reporter = new Label(attack.getReporterName()); + Label date = new Label( + attack.getMonthOfAttack() + "/" + attack.getDayOfAttack() + "/" + attack.getYearOfAttack()); + + Button delete = new Button("delete"); + delete.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() { + + @Override + public void handle(Event event) { + + list.remove(attack); + refresh(); + + } + + }); + + gridPane.add(name, 0, counter + 1); + gridPane.add(location, 1, counter + 1); + gridPane.add(reporter, 2, counter + 1); + gridPane.add(date, 3, counter + 1); + gridPane.add(delete, 4, counter + 1); + } + + } + + @FXML + protected void handleSave() { + if (list.size() > 0) { + FileChooser choose = new FileChooser(); + + choose.setTitle("save attack list"); + choose.getExtensionFilters().add(new FileChooser.ExtensionFilter("Text IO", "*.monstertext")); + choose.getExtensionFilters().add(new FileChooser.ExtensionFilter("Binary IO", "*.monsterbinary")); + File file = choose.showSaveDialog(MonsterAttackApplication.getStage()); + + if (file != null) { + + String extension = file.getName().substring(file.getName().lastIndexOf(".") + 1); + System.out.println(extension); + + MonsterPersister persist; + + if (extension.equals("monstertext")) { + System.out.println("Text"); + + persist = new TextMonsterPersister(); + + } else { + + System.out.println("Binary"); + + persist = new BinaryMonsterPersister(); + + } + + persist.write(file, list); + } + } + } + + @FXML + protected void handleOpen() { + FileChooser choose = new FileChooser(); + + choose.setTitle("open attack list"); + choose.getExtensionFilters().add(new FileChooser.ExtensionFilter("Text IO", "*.monstertext")); + choose.getExtensionFilters().add(new FileChooser.ExtensionFilter("Binary IO", "*.monsterbinary")); + File file = choose.showOpenDialog(MonsterAttackApplication.getStage()); + + if (file != null) { + + String extension = file.getName().substring(file.getName().lastIndexOf(".") + 1); +// System.out.println(extension); + + MonsterPersister persist; + + if (extension.equals("monstertext")) { + System.out.println("Text"); + + persist = new TextMonsterPersister(); + + } else { + + System.out.println("Binary"); + + persist = new BinaryMonsterPersister(); + + } + + + list = persist.read(file); + refresh(); + } + } + +} diff --git a/CS2012 Lab 10/src/fx/MonsterAttackApplication.java b/CS2012 Lab 10/src/fx/MonsterAttackApplication.java new file mode 100755 index 0000000..0273db7 --- /dev/null +++ b/CS2012 Lab 10/src/fx/MonsterAttackApplication.java @@ -0,0 +1,41 @@ +package fx; + + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class MonsterAttackApplication extends Application { + + private static Stage stage; + + @Override + public void start(Stage stageIn) throws Exception { + stage = stageIn; + + FXMLLoader loader = new FXMLLoader(getClass().getResource("ui/main.fxml")); + + Parent root = (Parent)loader.load(); + + Scene scene = new Scene(root, 1000, 800); + + + stage.setMinHeight(800); + stage.setMinWidth(960); + stage.setTitle("fm framework"); + stage.setScene(scene); + stage.show(); + + } + + public static void main(String[] args) { + launch(args); + } + + public static Stage getStage() { + return stage; + } + +} diff --git a/CS2012 Lab 10/src/fx/styles/main.css b/CS2012 Lab 10/src/fx/styles/main.css new file mode 100755 index 0000000..1a4287b --- /dev/null +++ b/CS2012 Lab 10/src/fx/styles/main.css @@ -0,0 +1,16 @@ +.monsterName{ + + -fx-alignment: center; + -fx-font-size: 150%; + -fx-font-style: italic; + -fx-text-alignment: center; +} + +.headerLabel{ + + -fx-alignment: center; + -fx-font-size: 150%; + -fx-font-weight: bold; + -fx-text-alignment: center; + +} \ No newline at end of file diff --git a/CS2012 Lab 10/src/fx/ui/main.fxml b/CS2012 Lab 10/src/fx/ui/main.fxml new file mode 100755 index 0000000..27c7411 --- /dev/null +++ b/CS2012 Lab 10/src/fx/ui/main.fxml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + +