diff --git a/.gitignore b/.gitignore index c7e40e2..8fb60fb 100644 --- a/.gitignore +++ b/.gitignore @@ -194,3 +194,7 @@ /Semester 3/Assignments/LinkedList/build/ /Semester 3/Assignments/MP6_CalebFontenot/target/ /Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/target/ +/Semester 4/EnumDemo/target/ +/Semester 4/Assignments/DAO/target/ +/Semester 4/Assignments/ProjectTrees_CalebFontenot/target/ +/Semester 4/Assignments/DataStructures/target/ diff --git a/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/FindMaxOrderedSubstring.java b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/FindMaxOrderedSubstring.java index 68ed32d..f068e76 100644 --- a/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/FindMaxOrderedSubstring.java +++ b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/FindMaxOrderedSubstring.java @@ -6,6 +6,7 @@ package edu.slcc.asdv.caleb.lab_calebfontenot_maximumorderedstring; import java.util.ArrayList; import java.util.Collections; +import java.util.Scanner; /** * @@ -21,7 +22,7 @@ public class FindMaxOrderedSubstring { outputString += input.charAt(i); } if (input.charAt(i) > outputString.charAt(j)) { - ++j; + System.out.println(++j); outputString += input.charAt(i); } } @@ -29,6 +30,9 @@ public class FindMaxOrderedSubstring { } public static void main(String[] args) { - System.out.println(findMaxOrderedSubString("Welcome!")); + Scanner input = new Scanner(System.in); + System.out.print("Enter a string: "); + String inputStr = input.nextLine(); + System.out.println(findMaxOrderedSubString(inputStr)); } } diff --git a/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/GenericMergeSort.java b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/GenericMergeSort.java new file mode 100644 index 0000000..b9633e8 --- /dev/null +++ b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/GenericMergeSort.java @@ -0,0 +1,105 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.lab_calebfontenot_maximumorderedstring; + +/** + * + * @author caleb + */ +import java.util.Comparator; + +public class GenericMergeSort { + + public static > void mergeSort(E[] list) + { + mergeSort(list, + new Comparator() { + @Override + public int compare(E e1, E e2) + { + return ((Comparable) e1).compareTo(e2); + } + }); + } + static int recursiveCallCount = 0; + public static void mergeSort(E[] list, + Comparator comparator) + { + + if (list.length > 1) { + recursiveCallCount++; + // Merge sort the first half + E[] firstHalf = (E[]) new Object[list.length / 2]; + System.arraycopy(list, 0, firstHalf, 0, list.length / 2); + mergeSort(firstHalf, comparator); + + // Merge sort the second half + int secondHalfLength = list.length - list.length / 2; + E[] secondHalf = (E[]) new Object[secondHalfLength]; + System.arraycopy(list, list.length / 2, + secondHalf, 0, secondHalfLength); + mergeSort(secondHalf, comparator); + + // Merge firstHalf with secondHalf + E[] temp = merge1(firstHalf, secondHalf, comparator); + System.arraycopy(temp, 0, list, 0, temp.length); + } + } + + private static E[] + merge1(E[] list1, E[] list2, Comparator comparator) + { + E[] temp = (E[]) new Object[list1.length + list2.length]; + + int current1 = 0; // Index in list1 + int current2 = 0; // Index in list2 + int current3 = 0; // Index in temp + + while (current1 < list1.length && current2 < list2.length) { + if (comparator.compare(list1[current1], list2[current2]) < 0) { + temp[current3++] = list1[current1++]; + } else { + temp[current3++] = list2[current2++]; + } + } + + while (current1 < list1.length) { + temp[current3++] = list1[current1++]; + } + + while (current2 < list2.length) { + temp[current3++] = list2[current2++]; + } + + return temp; + } + + public static void main(String[] args) + { + Integer[] list + = { + 2, 3, 2, 5, 6, 1, -2, 3, 14, 12 + }; + mergeSort(list); + System.out.println("number of recursive calls: " + recursiveCallCount); + recursiveCallCount = 0; + for (int i = 0; i < list.length; i++) { + System.out.print(list[i] + " "); + } + + System.out.println(); + String[] list1 + = { + "ABC", "abc", "abm", "Anf", "Good", "Bad", "nice" + }; + mergeSort(list1, (s1, s2) -> s1.compareToIgnoreCase(s2)); + System.out.println("number of recursive calls: " + recursiveCallCount); + recursiveCallCount = 0; + for (int i = 0; i < list1.length; i++) { + System.out.print(list1[i] + " "); + } + } + +} diff --git a/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/JudeFindMax.java b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/JudeFindMax.java new file mode 100644 index 0000000..e8e492b --- /dev/null +++ b/Semester 3/Assignments/Lab_CalebFontenot_MaximumOrderedString/src/main/java/edu/slcc/asdv/caleb/lab_calebfontenot_maximumorderedstring/JudeFindMax.java @@ -0,0 +1,56 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.lab_calebfontenot_maximumorderedstring; + +/** + * + * @author caleb + */ +public class JudeFindMax { + public static void main(String[] args) { + System.out.println(consecLetters("abcabcdgabxy")); + System.out.println(consecLetters("abcabcdgabmnsxy")); + System.out.println(consecLetters("abchjsfhajshfhijklmnopqjfaksfhkajhsf")); + System.out.println(consecLetters("hnafffgardghikortmmnmnmn")); + } + + public static String consecLetters(String input) + { + String consec = ""; + String maxConsec = ""; + + for (int i = 1; i < input.length(); i++) //n - 1 + { + //If two in order + if (input.charAt(i) > input.charAt(i - 1)) + { + //If length is zero then add previous as well + if (consec.length() == 0) + consec += input.charAt(i - 1); + consec += input.charAt(i); + } + //If not in order + else + { + //Check current consec length against maximum length + if (consec.length() > maxConsec.length()) + { + //set new max + maxConsec = consec; + } + consec = ""; + } + } + + //Check current consec length against maximum length + if (consec.length() > maxConsec.length()) + { + //set new max + maxConsec = consec; + } + + return "Most letters found in order: " + maxConsec; + } +} diff --git a/Semester 4/Assignments/DAO/pom.xml b/Semester 4/Assignments/DAO/pom.xml new file mode 100644 index 0000000..e252e8c --- /dev/null +++ b/Semester 4/Assignments/DAO/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + edu.slcc.asdv.caleb + DAO + 1.0-SNAPSHOT + jar + + UTF-8 + 20 + 20 + edu.slcc.asdv.caleb.dao.DAO + + \ No newline at end of file diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/DAO.java b/Semester 4/Assignments/DAO/src/main/java/DAO/DAO.java new file mode 100644 index 0000000..8918214 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/DAO.java @@ -0,0 +1,20 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template + */ +package DAO; + +import java.util.Collection; + +/** + * + * @author caleb + */ +public interface DAO { + public void create(T t); + public void delete(T t); + public void update(T t); + public T find (T t); + public Collection findALl(); + public boolean updateDBase(); +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/Exam.java b/Semester 4/Assignments/DAO/src/main/java/DAO/Exam.java new file mode 100644 index 0000000..370b9ef --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/Exam.java @@ -0,0 +1,19 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template + */ +package DAO; + +/** + * + * @author caleb + */ +public interface Exam { + void editExam(T t); + void takeExam(T t); + void submitExam(T t); + void previewExam(T t); + void monitorExam(T t); + void gradeExam(T t); + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactory.java b/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactory.java new file mode 100644 index 0000000..9ae92ae --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactory.java @@ -0,0 +1,13 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package DAO; + +/** + * + * @author caleb + */ +public abstract class ExamFactory { + public abstract Exam createExam(); +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactoryOutlet.java b/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactoryOutlet.java new file mode 100644 index 0000000..3ef2c2e --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/ExamFactoryOutlet.java @@ -0,0 +1,56 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package DAO; + +/** + * + * @author caleb + */ +public class ExamFactoryOutlet extends ExamFactory { + + @Override + public Exam createExam() + { + return new Exam() { + @Override + public void editExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void takeExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void submitExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void previewExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void monitorExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void gradeExam(Keyable t) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + }; + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/Keyable.java b/Semester 4/Assignments/DAO/src/main/java/DAO/Keyable.java new file mode 100644 index 0000000..42d6ec8 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/Keyable.java @@ -0,0 +1,15 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template + */ +package DAO; + +/** + * + * @author caleb + */ +public interface Keyable { + public K getKey(); + public void setKey(K key); + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/MathExam.java b/Semester 4/Assignments/DAO/src/main/java/DAO/MathExam.java new file mode 100644 index 0000000..45c1b9e --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/MathExam.java @@ -0,0 +1,32 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package DAO; + +import java.util.ArrayList; + +/** + * + * @author caleb + */ +public class MathExam implements Keyable { +ArrayList fields = new ArrayList(); +int key; + +public MathExam(int key, ArrayList fields) { + +} + @Override + public MathExam getKey() + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + + @Override + public void setKey(MathExam key) + { + throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/DAO/Test.java b/Semester 4/Assignments/DAO/src/main/java/DAO/Test.java new file mode 100644 index 0000000..21212b2 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/DAO/Test.java @@ -0,0 +1,23 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package DAO; + +/** + * + * @author caleb + */ +public class Test { + public static void main(String[] args) + { + ExamFactory efm = new ExamFactory() { + @Override + public Exam createExam() + { + System.out.println("Hello World"); + } + }; + efm.createExam(); + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/CheezePizza.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/CheezePizza.java new file mode 100644 index 0000000..0f92a29 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/CheezePizza.java @@ -0,0 +1,31 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class CheezePizza implements Pizza { + + @Override + public void prepare() + { + System.out.println("preparing Cheeze Pizza"); + } + + @Override + public void bake() + { + System.out.println("baking Cheeze Pizza"); + } + + @Override + public void cut() + { + System.out.println("cutting Cheeze Pizza"); + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/ChickenPizza.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/ChickenPizza.java new file mode 100644 index 0000000..bfdf43b --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/ChickenPizza.java @@ -0,0 +1,31 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class ChickenPizza implements Pizza { + + @Override + public void prepare() + { + System.out.println("preparing Chicken Pizza"); + } + + @Override + public void bake() + { + System.out.println("baking Chicken Pizza"); + } + + @Override + public void cut() + { + System.out.println("cutting Chicken Pizza"); + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/Pizza.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/Pizza.java new file mode 100644 index 0000000..f81a65d --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/Pizza.java @@ -0,0 +1,16 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public interface Pizza { + public void prepare(T t); + public void bake(T t); + public void cut(T t); + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaFactory.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaFactory.java new file mode 100644 index 0000000..9707b7f --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaFactory.java @@ -0,0 +1,29 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class PizzaFactory { + + public PizzaFactory(String cheeze) + { + } + public static Pizza createPizza(T type) throws Exception { + Pizza p = null; + if (type.equals("cheeze")) + p = new CheezePizza(); + else if (type.equals("chicken")) + p = new ChickenPizza(); + else if (type.equals("veggie")) + p = new VeggiePizza(); + if (p == null) { + throw new Exception("Not a valid Pizza."); + } + return p; + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaStore.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaStore.java new file mode 100644 index 0000000..30f3040 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/PizzaStore.java @@ -0,0 +1,19 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class PizzaStore { + public Pizza orderPizza(String type) throws Exception { + Pizza p = PizzaFactory.createPizza(type); + p.prepare(); + p.bake(); + p.cut(); + return p; + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/TestPizza.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/TestPizza.java new file mode 100644 index 0000000..d3bb4e8 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/TestPizza.java @@ -0,0 +1,19 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class TestPizza { + public static void main(String[] args) throws Exception + { + PizzaStore ps = new PizzaStore(); + ps.orderPizza("cheeze"); + ps.orderPizza("chicken"); + ps.orderPizza("veggie"); + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/VeggiePizza.java b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/VeggiePizza.java new file mode 100644 index 0000000..3f8f859 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/edu/slcc/asdv/caleb/dao/factory_pizza/VeggiePizza.java @@ -0,0 +1,31 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.dao.factory_pizza; + +/** + * + * @author caleb + */ +public class VeggiePizza implements Pizza { + + @Override + public void prepare() + { + System.out.println("Preparing Veggie Pizza"); + } + + @Override + public void bake() + { + System.out.println("Baking Veggie Pizza"); + } + + @Override + public void cut() + { + System.out.println("Cutting Veggie Pizza"); + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/Pizza.java b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/Pizza.java new file mode 100644 index 0000000..7e06574 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/Pizza.java @@ -0,0 +1,29 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template + */ +package factory_generic_pizza; + +import edu.slcc.asdv.caleb.dao.factory_pizza.*; + +/** + * + * @author caleb + */ +public class Pizza { + public void prepare(Object t) + { + System.out.println("preparing " + t.toString() +" Pizza"); + } + + public void bake(Object t) + { + System.out.println("baking " + t.toString() +" Pizza"); + } + + public void cut(Object t) + { + System.out.println("cutting" + t.toString() +"Pizza"); + } + +} diff --git a/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaFactory.java b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaFactory.java new file mode 100644 index 0000000..66af9cd --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaFactory.java @@ -0,0 +1,32 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package factory_generic_pizza; + +import edu.slcc.asdv.caleb.dao.factory_pizza.*; + +/** + * + * @author caleb + */ +public class PizzaFactory { + public static Pizza createPizza(T t) + { + return new Pizza() + { + public void prepare(T t) { + System.out.println("Preparing pizza " + t.toString() + "..."); + } + + public void bake(T t) { + System.out.println("Baking pizza " + t.toString() + "..."); + } + + public void cut(T t) { + System.out.println("Cutting pizza " + t.toString() + "..."); + } + + }; + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaStore.java b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaStore.java new file mode 100644 index 0000000..d25f879 --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/PizzaStore.java @@ -0,0 +1,21 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package factory_generic_pizza; + +import edu.slcc.asdv.caleb.dao.factory_pizza.*; + +/** + * + * @author caleb + */ +public class PizzaStore { + public Pizza orderPizza(String type) throws Exception { + Pizza p = PizzaFactory.createPizza(type); + p.prepare(type); + p.bake(type); + p.cut(type); + return p; + } +} diff --git a/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/TestPizza.java b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/TestPizza.java new file mode 100644 index 0000000..e4a508f --- /dev/null +++ b/Semester 4/Assignments/DAO/src/main/java/factory_generic_pizza/TestPizza.java @@ -0,0 +1,21 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package factory_generic_pizza; + +import edu.slcc.asdv.caleb.dao.factory_pizza.*; + +/** + * + * @author caleb + */ +public class TestPizza { + public static void main(String[] args) throws Exception + { + PizzaStore ps = new PizzaStore(); + ps.orderPizza("cheeze"); + ps.orderPizza("chicken"); + ps.orderPizza("veggie"); + } +} diff --git a/Semester 4/Assignments/DataStructures/nb-configuration.xml b/Semester 4/Assignments/DataStructures/nb-configuration.xml new file mode 100644 index 0000000..a65c451 --- /dev/null +++ b/Semester 4/Assignments/DataStructures/nb-configuration.xml @@ -0,0 +1,18 @@ + + + + + + JDK_1.8 + + diff --git a/Semester 4/Assignments/DataStructures/pom.xml b/Semester 4/Assignments/DataStructures/pom.xml new file mode 100644 index 0000000..71d6fd5 --- /dev/null +++ b/Semester 4/Assignments/DataStructures/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + edu.slcc.asdv.caleb + DataStructures + 1.0-SNAPSHOT + jar + + UTF-8 + 1.8 + 1.8 + edu.slcc.asdv.caleb.datastructures.DataStructures + + \ No newline at end of file diff --git a/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/DataStructures.java b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/DataStructures.java new file mode 100644 index 0000000..ae418c1 --- /dev/null +++ b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/DataStructures.java @@ -0,0 +1,16 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + */ + +package edu.slcc.asdv.caleb.datastructures; + +/** + * + * @author caleb + */ +public class DataStructures { + + public static void main(String[] args) { + System.out.println("Hello World!"); + } +} diff --git a/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToMany.java b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToMany.java new file mode 100644 index 0000000..440c8c3 --- /dev/null +++ b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToMany.java @@ -0,0 +1,67 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.datastructures; + +import java.util.Collection; +import java.util.Set; + +/** + * + * @author caleb + */ +public interface OneToMany +{ + /** + * Initialization of Ones. The method should be used first before any other + * methods + * + * @param one - the ones ( i.e, countries, or SelectItem or any Object) to + * use for initialization + * @return true if the initialization succeeded by using the method once, + * false when the method is used more than once. + */ + boolean initializeOne(One... one); + + /** + * Initialization of the many for a given one. The method can be used + * multiple times after the method initializeOne has succeeded. + * + * @param one - the one that has the many + * @param many - the many which belong to th eone + * @throws IllegalArgumentException when the one does not exist (i.e. user's + * typing error for the name of one) or when the initialization of the one + * has not occurred. + * + */ + void initializeMany(One one, Many... many) + throws IllegalArgumentException; + + + /** + * Gets the many of a specific one. + * + * @param one the one to get its many + * @return the many of the parameter one or null if the one does not exist. + */ + Collection getMany(One one); + + + + /** + * Given a value of the many it gets the one that the many belongs to. + * + * @param many one of the values of the many + * @return the one + */ + One getOne(Many many); + + /** + * Gets a set with all the ones + * + * @return the set of ones. + */ + Set getAllOnes(); +} + diff --git a/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToManyFactory.java b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToManyFactory.java new file mode 100644 index 0000000..6526c82 --- /dev/null +++ b/Semester 4/Assignments/DataStructures/src/main/java/edu/slcc/asdv/caleb/datastructures/OneToManyFactory.java @@ -0,0 +1,185 @@ +package edu.slcc.asdv.caleb.datastructures; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +public class OneToManyFactory { + + /** + * Creates an object of type OneToMany + * + * @param a generic parameter can be any object that denotes a One. + * @param a generic parameter can be any object that denotes a city that belongs to the one generic type. + * @return a OneCity object. + */ + public static //generic types to be used in the method + OneToMany //rturn type + createOneToMany() + { + return new OneToMany() { + private Map oneToMany = new HashMap(); + boolean oneInitialized = false; + boolean manyInitialized = false; + + @Override + public boolean initializeOne(One... one) + { + if (oneInitialized == false && manyInitialized == false) { + for (int i = 0; i < one.length; ++i) { + oneToMany.put(one[i], (Many) new Boolean(true)); + } + oneInitialized = true; + return true; + } + return false; + } + + @Override + public void initializeMany(One one, Many... many) + throws IllegalArgumentException + { + if (oneToMany.get(one) == null) { // of the key of the one is null + // the method initializekey has not been used + throw new IllegalArgumentException(one + " is not valid."); + } + oneToMany.put(one, (Many) new ArrayList(Arrays.asList(many))); + manyInitialized = true; + } + + @Override + public Collection getMany(One one) + throws IllegalArgumentException + { + if (oneInitialized == true && manyInitialized == true) { + if (oneToMany.get(one) == null) { + throw new IllegalArgumentException(one + " is not a valid One"); + } + Collection c1 = (Collection) oneToMany.get(one); + return c1; + } + + return null; + } + + @Override + public One getOne(Many many) + { + Set< Entry> set = oneToMany.entrySet(); + for (Map.Entry entry : oneToMany.entrySet()) { + One key = (One) entry.getKey(); + Collection value = (Collection) oneToMany.get(key); + if (value.contains(many)) { + return key; + } + } + return null; + } + + @Override + public Set getAllOnes() + { + return (Set) oneToMany.keySet(); + } + }; + } + + public static void main(String[] args) + { + + OneToMany cc = OneToManyFactory.createOneToMany(); + + try { + cc.initializeMany("France", "Paris"); + } catch (Exception e) { + System.err.println(e); + } + boolean b1 = cc.initializeOne("USA", "Greece"); + System.out.println(b1); + boolean b2 = cc.initializeOne("USA", "Greece"); + System.out.println(b2); + cc.initializeMany("USA", "Lafayette", "New Orleans"); + cc.initializeMany("Greece", "Athens", "Sparta"); + Collection cities1 = cc.getMany("USA"); + System.out.println(cities1); + Collection cities2 = cc.getMany("Greece"); + System.out.println(cities2); + System.out.println(cc.getOne("Athens")); + System.out.println(cc.getOne("Lafayette")); + System.out.println(cc.getOne("France")); + try { + System.out.println(cc.getMany("Germany")); + } catch (Exception e) { + System.err.println(e); + } + + System.out.println(cc.getAllOnes()); + System.out.println("----------------------------------------------------------"); + OneToMany supplierParts = OneToManyFactory.createOneToMany(); + supplierParts.initializeOne(new Supplier("s1"), new Supplier("s2")); + Supplier s1 = new Supplier("s1"); + Supplier s2 = new Supplier("s2"); + supplierParts.initializeOne(s1, s2); + Part p1 = new Part("p1"); + Part p2 = new Part("p2"); + Part p3 = new Part("p3"); + Part p4 = new Part("p4"); + supplierParts.initializeMany(s1, p1, p2); + supplierParts.initializeMany(s2, p3, p4); + } +} +class Supplier { + + public Supplier(String name) + { + this.name = name; + } + + private String name; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + @Override + public String toString() + { + return "Supplier{" + "name=" + name + '}'; + } + } + + class Part { + + public Part(String name) + { + this.name = name; + } + + private String name; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + @Override + public String toString() + { + return "Part{" + "name=" + name + '}'; + } +} diff --git a/Semester 4/Assignments/ProjectTrees_CalebFontenot/pom.xml b/Semester 4/Assignments/ProjectTrees_CalebFontenot/pom.xml new file mode 100644 index 0000000..d6c5311 --- /dev/null +++ b/Semester 4/Assignments/ProjectTrees_CalebFontenot/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + edu.slcc.asdv.caleb + ProjectTrees_CalebFontenot + 1.0-SNAPSHOT + jar + + UTF-8 + 20 + 20 + edu.slcc.asdv.caleb.projecttrees_calebfontenot.ProjectTrees_CalebFontenot + + \ No newline at end of file diff --git a/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/ProjectTrees_CalebFontenot.java b/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/ProjectTrees_CalebFontenot.java new file mode 100644 index 0000000..fc85845 --- /dev/null +++ b/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/ProjectTrees_CalebFontenot.java @@ -0,0 +1,16 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + */ + +package edu.slcc.asdv.caleb.projecttrees_calebfontenot; + +/** + * + * @author caleb + */ +public class ProjectTrees_CalebFontenot { + + public static void main(String[] args) { + System.out.println("Hello World!"); + } +} diff --git a/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/TreeASDV.java b/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/TreeASDV.java new file mode 100644 index 0000000..439cfc1 --- /dev/null +++ b/Semester 4/Assignments/ProjectTrees_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/projecttrees_calebfontenot/TreeASDV.java @@ -0,0 +1,184 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.projecttrees_calebfontenot; + +import java.util.ListIterator; +import java.util.Stack; + +/** + * + * @author caleb + */ +public class TreeASDV { + + private Node root; + + class Node { + + T data; + Node leftChild; + Node rightChild; + } + + public boolean insert(T t) + { + Node currentNode = root; + Node trailCurrent = root; + Node newNode = new Node(); + newNode.data = t; + System.out.println(t); + + if (this.root == null) { + this.root = newNode; + return true; + } + + while (currentNode != null) { + trailCurrent = currentNode; + if (t.compareTo(currentNode.data) >= 0) { + currentNode = currentNode.rightChild; + } else { + currentNode = currentNode.leftChild; + } + if (t.compareTo(trailCurrent.data) >= 0) { // Make the node a right child. + trailCurrent.rightChild = newNode; + } else { // Make the node a left child. + trailCurrent.leftChild = newNode; + } + } + return false; + } + + private void inOrder(Node p) + { + if (p == null) { + return; + } + + inOrder(p.leftChild); + System.out.print(p.data + " "); + inOrder(p.rightChild); + } + + public void inOrder() + { + inOrder(this.root); + } + + public Node findNode(T t) + { + Node currentNode = root; + while (currentNode != null) { + if (t.compareTo(currentNode.data) == 0) { + return currentNode; + } else if (t.compareTo(currentNode.data) > 0) { + currentNode = currentNode.rightChild; + } else { + currentNode = currentNode.leftChild; + } + } + return null; + } + + public boolean remove(T t) + { + // case: no children + if (root.leftChild == null & root.rightChild == null) { + root = null; + return true; + } + Node current = this.root; + Node currentParent = this.root; + + while (current.data.equals(t)) { + if (t.compareTo(current.data) == 0) { + break; + } + else if (t.compareTo(currentParent.data) > 0) { + currentParent = current; + current = current.rightChild; + } else { + currentParent = current; + current = current.leftChild; + } + } + if (current == null) { + return false; + } + if (current.data.compareTo(currentParent.data) <= 0) { + currentParent.leftChild = null; + } else { + currentParent.rightChild = null; + } + // case: single child + if (current.leftChild == null || current.rightChild == null) { + // if the current is the right child of its parent + if (current.data.compareTo(t) > 0) { + + } else { + + } + } + // case: two children + else { + // take a left + Node p = current; + p = current.leftChild; + Node pTrailParent = p; + Node pTrail = p; + while (p != null) { // keep going right + pTrailParent = pTrail; + pTrail = p; + p = p.rightChild; + } + // swap the data of pTrail with the current + current.data = pTrail.data; + if (pTrail == pTrailParent) { + pTrailParent.leftChild = pTrail.leftChild; + } else { + pTrailParent.rightChild = pTrail.leftChild; + } + + + } + return true; + } + + public ListIterator listIterator(){ + ListIterator it = new ListIterator(); + return null; +} + public void breathFirst() { + Stack> stack = new Stack(); + Node p = root; + System.out.println(p.data + " "); + stack.push(p.rightChild); + + while (stack.empty() == false) { + // go to the left + p = p.leftChild; + if (p != null) { + System.out.println(p.data); + } + Node rightChild = stack.pop(); + System.out.println(); + } + } + + public static void main(String[] args) + { + TreeASDV tree = new TreeASDV(); + tree.insert(100); + tree.insert(80); + tree.insert(90); + tree.insert(95); + tree.insert(93); + tree.insert(70); + tree.inOrder(); + tree.remove(100); + System.out.println(); + tree.inOrder(); + } +} diff --git a/Semester 4/EnumDemo/pom.xml b/Semester 4/EnumDemo/pom.xml new file mode 100644 index 0000000..4b1fa85 --- /dev/null +++ b/Semester 4/EnumDemo/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + edu.slcc.asdv.caleb + EnumDemo + 1.0-SNAPSHOT + jar + + UTF-8 + 20 + 20 + edu.slcc.asdv.caleb.enumdemo.EnumDemo + + \ No newline at end of file diff --git a/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/EnumDemo.java b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/EnumDemo.java new file mode 100644 index 0000000..c36ae76 --- /dev/null +++ b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/EnumDemo.java @@ -0,0 +1,59 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + */ + +package edu.slcc.asdv.caleb.enumdemo; + +/** + * + * @author caleb + */ +public class EnumDemo { + + public enum Day { + SUNDAY, MONDAY, TUESDAY, WEDNESDAY, + THURSDAY, FRIDAY, SATURDAY +} + Day day; + + public EnumDemo(Day day) + { + this.day = day; + } + + + public void tellItLikeItIs() { + switch (day) { + case MONDAY: + System.out.println("Mondays are bad."); + break; + + case FRIDAY: + System.out.println("Fridays are better."); + break; + + case SATURDAY: case SUNDAY: + System.out.println("Weekends are best."); + break; + + default: + System.out.println("Midweek days are so-so."); + break; + } + } + public static void main(String[] args) + { + EnumDemo day1 = new EnumDemo(Day.MONDAY); + day1.tellItLikeItIs(); + EnumDemo day2 = new EnumDemo(Day.TUESDAY); + day2.tellItLikeItIs(); + EnumDemo day3 = new EnumDemo(Day.WEDNESDAY); + day3.tellItLikeItIs(); + EnumDemo day4 = new EnumDemo(Day.THURSDAY); + day4.tellItLikeItIs(); + EnumDemo day5 = new EnumDemo(Day.FRIDAY); + day5.tellItLikeItIs(); + + } + +} diff --git a/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/Planet.java b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/Planet.java new file mode 100644 index 0000000..aa38c0a --- /dev/null +++ b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/Planet.java @@ -0,0 +1,69 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.enumdemo; + +/** + * + * @author caleb + */ +public enum Planet { + MERCURY(3.303e+23, 2.4397e6), + VENUS(4.869e+24, 6.0518e6), + EARTH(5.976e+24, 6.37814e6), + MARS(6.421e+23, 3.3972e6), + JUPITER(1.9e+27, 7.1492e7), + SATURN(5.688e+26, 6.0268e7), + URANUS(8.686e+25, 2.5559e7), + NEPTUNE(1.024e+26, 2.4746e7); + + private final double mass; // in kilograms + private final double radius; // in meters + + Planet(double mass, double radius) + { + this.mass = mass; + this.radius = radius; + } + + private double mass() + { + return mass; + } + + private double radius() + { + return radius; + } + + // universal gravitational constant (m3 kg-1 s-2) + public static final double G = 6.67300E-11; + + double surfaceGravity() + { + return G * mass / (radius * radius); + } + + double surfaceWeight(double otherMass) + { + return otherMass * surfaceGravity(); + } + + public static void main(String[] args) + { + args = new String[1]; + args[0] = "175"; + if (args.length != 1) { + System.err.println("Usage: java Planet "); + System.exit(-1); + } + double earthWeight = Double.parseDouble(args[0]); + double mass = earthWeight / EARTH.surfaceGravity(); + for (Planet p : Planet.values()) { + System.out.printf("Your weight on %s is %f%n", + p, p.surfaceWeight(mass)); + } + } + +} diff --git a/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/TestPlanet.java b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/TestPlanet.java new file mode 100644 index 0000000..0ceb891 --- /dev/null +++ b/Semester 4/EnumDemo/src/main/java/edu/slcc/asdv/caleb/enumdemo/TestPlanet.java @@ -0,0 +1,22 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package edu.slcc.asdv.caleb.enumdemo; + +/** + * + * @author caleb + */ +public class TestPlanet { + Planet planet; + + public TestPlanet(Planet planet) { + this.planet = planet; + } + public static void main(String[] args) + { + //TestPlanet testPlanet = new Planet.valueOf("EARTH"); + // System.out.println(testPlanet.planet.EARTH); + } +} diff --git a/Semester 4/EnumDemo/src/main/java/singlenton/SingletonFlight.java b/Semester 4/EnumDemo/src/main/java/singlenton/SingletonFlight.java new file mode 100644 index 0000000..dbc2bb2 --- /dev/null +++ b/Semester 4/EnumDemo/src/main/java/singlenton/SingletonFlight.java @@ -0,0 +1,53 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package singlenton; + +import java.util.ArrayList; + +/** + * + * @author caleb + */ +public class SingletonFlight { + + private ArrayList seats; + private static SingletonFlight instance; + + private SingletonFlight() { + seats = new ArrayList(4); + + } + public static SingletonFlight getInstance() { + if (instance == null) { + instance = new SingletonFlight(); + } + return instance; + } + + public boolean bookFlight(String nameOfPassenger) { + if (seats.size() > 4) { + System.out.println("Flight full!"); + return false; + } else { + System.out.println("Added " + nameOfPassenger + " now has their seat booked."); + seats.add(nameOfPassenger); + return true; + } + } + public static void main(String[] args) + { + SingletonFlight passenger1 = SingletonFlight.getInstance(); + SingletonFlight passenger2 = SingletonFlight.getInstance(); + SingletonFlight passenger3 = SingletonFlight.getInstance(); + SingletonFlight passenger4 = SingletonFlight.getInstance(); + + passenger1.bookFlight("John Wayne"); + passenger2.bookFlight("John Wayne Jr."); + passenger3.bookFlight("Joanne Wayne"); + passenger4.bookFlight("Joseph Wayne"); + passenger4.bookFlight("Jessica Wayne"); + } + +}