This commit is contained in:
2023-04-27 12:50:36 -05:00
parent 1ff9001824
commit c06148228b
22 changed files with 1973 additions and 22 deletions

View File

@@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Circle.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST4 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.string {color: #6a8759}
.number {color: #6897bb}
.ST1 {color: #9876aa}
.ST3 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/Circle.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Circle <span class="literal">extends</span> GeometricObject {
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">diameter</span>;
<span class="literal">public</span> Circle(<span class="literal">double</span> diameter) {
<span class="literal">this</span>.<span class="ST1">diameter</span> = diameter;
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Circle Diameter: </span><span class="string">&quot;</span> + diameter);
}
@Override
<span class="literal">public</span> <span class="literal">double</span> <span class="ST3">getArea</span>() {
<span class="literal">double</span> radius = <span class="ST1">diameter</span> / <span class="number">2</span>;
<span class="literal">return</span> Math.<span class="ST2">PI</span> * Math.<span class="ST4">pow</span>(radius, <span class="number">2</span>);
}
@Override
<span class="literal">public</span> <span class="literal">double</span> <span class="ST3">getPerimeter</span>() {
<span class="literal">return</span> Math.<span class="ST2">PI</span> * <span class="ST1">diameter</span>;
}
@Override
<span class="literal">public</span> String <span class="ST3">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">Circle{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">diameter=</span><span class="string">&quot;</span> + <span class="ST1">diameter</span> + <span class="string">&#39;</span><span class="string">}</span><span class="string">&#39;</span>;
}
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST3">compareTo</span>(Object t) {
System.<span class="ST2">out</span>.println(<span class="literal">this</span>.getArea() + <span class="string">&quot;</span><span class="string">, </span><span class="string">&quot;</span> + ((Circle) t).getArea());
<span class="literal">if</span> (<span class="literal">this</span>.getArea() &lt; ((Circle) t).getArea()) {
<span class="literal">return</span> -<span class="number">1</span>;
} <span class="literal">else</span> <span class="literal">if</span> (<span class="literal">this</span>.getArea() &gt; ((Circle) t).getArea()) {
<span class="literal">return</span> <span class="number">1</span>;
} <span class="literal">else</span> {
<span class="literal">return</span> <span class="number">0</span>;
}
}
<span class="comment">// The compiler made me implement this, not sure why</span>
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST3">compareTo</span>() {
<span class="literal">throw</span> <span class="literal">new</span> UnsupportedOperationException(<span class="string">&quot;</span><span class="string">No compare object supplied!</span><span class="string">&quot;</span>);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,177 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Combinations.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.ST2 {color: #9876aa}
.ST6 {color: #ffc66d}
.ST5 {color: #8a653b}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST7 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
.ST4 {color: #808080; font-family: monospace; font-weight: bold; font-style: italic}
.comment {color: #808080}
.whitespace {color: #505050}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/Combinations.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">import</span> java.util.ArrayList;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.Comparator;
<span class="literal">import</span> java.util.HashSet;
<span class="literal">import</span> java.util.Iterator;
<span class="literal">import</span> java.util.List;
<span class="literal">import</span> java.util.Set;
<span class="literal">class</span> Combinations
{
<span class="literal">private</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">findCombinations</span>(String[] A, <span class="literal">int</span> i, <span class="literal">int</span> k,
Set&lt;List&lt;String&gt;&gt; subarrays,
List&lt;String&gt; out)
{
<span class="literal">if</span> (A.<span class="ST2">length</span> == <span class="number">0</span> || k &gt; A.<span class="ST2">length</span>)
{
<span class="literal">return</span>;
}
<span class="comment">// base case: combination size is `k`</span>
<span class="literal">if</span> (k == <span class="number">0</span>)
{
subarrays.add(<span class="literal">new</span> ArrayList&lt;&gt;(out));
<span class="literal">return</span>;
}
<span class="comment">// start from the next index till the last index</span>
<span class="literal">for</span> (<span class="literal">int</span> j = i; j &lt; A.<span class="ST2">length</span>; j++)
{
<span class="comment">// add current element `A[j]` to the solution and recur for next index</span>
<span class="comment">// `j+1` with one less element `k-1`</span>
out.add(A[j]);
<span class="ST3">findCombinations</span>(A, j + <span class="number">1</span>, k - <span class="number">1</span>, subarrays, out);
out.remove(out.size() - <span class="number">1</span>); <span class="comment">// backtrack</span>
}
}
<span class="literal">private</span> <span class="literal">static</span> Set&lt;List&lt;String&gt;&gt; <span class="ST4">findCombinations</span>(String[] A, <span class="literal">int</span> k)
{
Set&lt;List&lt;String&gt;&gt; subarrays = <span class="literal">new</span> HashSet&lt;&gt;();
<span class="ST3">findCombinations</span>(A, <span class="number">0</span>, k, subarrays, <span class="literal">new</span> ArrayList&lt;&gt;());
<span class="literal">return</span> subarrays;
}
<span class="literal">private</span> <span class="literal">static</span> Set&lt;List&lt;String&gt;&gt; <span class="ST1">findAllCombinations</span>(String[] A)
{
Set&lt;List&lt;String&gt;&gt; subarrays = <span class="literal">new</span> HashSet&lt;&gt;();
<span class="literal">for</span> (<span class="literal">int</span> k = <span class="number">1</span>; k &lt;= A.<span class="ST2">length</span>; ++k)
{
<span class="ST3">findCombinations</span>(A, <span class="number">0</span>, k, subarrays, <span class="literal">new</span> ArrayList&lt;&gt;());
}
<span class="literal">return</span> subarrays;
}
<span class="comment">/**</span> <span class="comment">Finds</span> <span class="comment">all</span> <span class="comment">distinct</span> <span class="comment">combinations</span> <span class="comment">of</span> <span class="comment">all</span> <span class="comment">sizes</span> <span class="comment">for</span> <span class="comment">elements</span> <span class="comment">of</span> <span class="comment">array</span><span class="comment">.</span>
<span class="comment"> * </span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">A</span> <span class="comment">the</span> <span class="comment">elements</span> <span class="comment">to</span> <span class="comment">find</span> <span class="comment">their</span> <span class="comment">combinations</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">all</span> <span class="comment">distinct</span> <span class="comment">combinations</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">elements</span><span class="comment">, </span><span class="comment">sorted</span> <span class="comment">by</span> <span class="comment">length</span><span class="comment">.</span> <span class="comment">ascending</span> <span class="comment">order</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> ArrayList&lt;String&gt; <span class="ST1">allCombinations</span>(String[] A)
{
Set&lt;List&lt;String&gt;&gt; set = <span class="ST3">findAllCombinations</span>(A);
ArrayList&lt;String&gt; all = <span class="literal">new</span> ArrayList&lt;String&gt;();
Iterator it = set.iterator();
<span class="literal">while</span> (it.hasNext())
{
List&lt;String&gt; list = (List&lt;String&gt;) it.next();
String s1 = <span class="string">&quot;&quot;</span>;
<span class="literal">for</span> (String s2 : list)
{
s1 += s2;
}
all.add(s1);
}
Collections.<span class="ST3">sort</span>(all, <span class="literal">new</span> Comparator&lt;String&gt;(){
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST6">compare</span>(String o1, String o2)
{
<span class="literal">return</span> o1.length() - o2.length();
}
});
<span class="literal">return</span> all;
}
<span class="comment">/**</span> <span class="comment">Finds</span> <span class="comment">all</span> <span class="comment">distinct</span> <span class="comment">combinations</span> <span class="comment">of</span> <span class="comment">all</span> <span class="comment">sizes</span> <span class="comment">for</span> <span class="comment">chars</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">String</span><span class="comment">.</span>
<span class="comment"> * </span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST5">A</span> <span class="comment">the</span> <span class="comment">characters</span> <span class="comment">to</span> <span class="comment">find</span> <span class="comment">their</span> <span class="comment">combinations</span><span class="comment">.</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">all</span> <span class="comment">distinct</span> <span class="comment">combinations</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">characters</span> <span class="comment">sorted</span> <span class="comment">by</span> <span class="comment">length</span><span class="comment">, </span><span class="comment">ascending</span> <span class="comment">order</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> ArrayList&lt;String&gt; <span class="ST1">allCombinations</span>(String a)
{
String[] A = <span class="literal">new</span> String[a.length()];
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; A.<span class="ST2">length</span>; ++i)
{
A[i] = Character.<span class="ST3">toString</span>(a.charAt(i));
}
Set&lt;List&lt;String&gt;&gt; set = <span class="ST3">findAllCombinations</span>(A);
ArrayList&lt;String&gt; all = <span class="literal">new</span> ArrayList&lt;String&gt;();
Iterator it = set.iterator();
<span class="literal">while</span> (it.hasNext())
{
List&lt;String&gt; list = (List&lt;String&gt;) it.next();
String s1 = <span class="string">&quot;&quot;</span>;
<span class="literal">for</span> (String s2 : list)
{
s1 += s2;
}
all.add(s1);
}
Collections.<span class="ST3">sort</span>(all, <span class="literal">new</span> Comparator&lt;String&gt;(){
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST6">compare</span>(String o1, String o2)
{
<span class="literal">return</span> o1.length() - o2.length();
}
});
<span class="literal">return</span> all;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args)
{
String[] A =
{
<span class="string">&quot;</span><span class="string">1</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">2</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">3</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">4</span><span class="string">&quot;</span>
};
<span class="literal">int</span> <span class="comment">k</span> = <span class="number">2</span>;
<span class="comment">// process elements from left to right</span>
System.<span class="ST7">out</span>.println(<span class="ST3">a</span><span class="ST3">llCombinations</span>(A));
System.<span class="ST7">out</span>.println(<span class="ST3">a</span><span class="ST3">llCombinations</span>(<span class="string">&quot;</span><span class="string">1234</span><span class="string">&quot;</span>));
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,124 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>FD.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
.string {color: #6a8759}
.number {color: #6897bb}
.ST0 {color: #9876aa}
.ST2 {color: #ffc66d}
.ST1 {color: #8a653b}
.whitespace {color: #505050}
.comment {color: #808080}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/FD.java</td></tr></table>
<pre>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">ASDV2</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> FD
{
<span class="literal">private</span> String <span class="ST0">lhs</span>;
<span class="literal">private</span> String <span class="ST0">rhs</span>;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">lhs</span> <span class="comment">the</span> <span class="comment">LHS</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">FD</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">rhs</span> <span class="comment">the</span> <span class="comment">RHS</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">FD</span>
<span class="comment"> * </span><span class="comment">@throws</span> <span class="comment">IllegalArgumentException</span> <span class="comment">if</span> <span class="comment">the</span> <span class="comment">length</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">LHS</span> <span class="comment">or</span> <span class="comment">the</span> <span class="comment">length</span>
<span class="comment"> * </span><span class="comment">of</span> <span class="comment">the</span> <span class="comment">RHS</span> <span class="comment">are</span> <span class="comment">less</span> <span class="comment">than</span><span class="comment"> 1 </span><span class="comment">or</span> <span class="comment">if</span> <span class="comment">they</span> <span class="comment">are</span> <span class="comment">null</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> FD(String lhs, String rhs)
<span class="literal">throws</span> IllegalArgumentException
{
<span class="literal">if</span> (lhs == <span class="literal">null</span> || rhs == <span class="literal">null</span> )
<span class="literal">throw</span> <span class="literal">new</span> IllegalArgumentException( <span class="string">&quot;</span><span class="string">the LHS and/or RHS cannot be null.</span><span class="string">&quot;</span>);
<span class="literal">if</span> (lhs.length() &lt; <span class="number">1</span> || rhs.length() &lt; <span class="number">1</span> )
<span class="literal">throw</span> <span class="literal">new</span> IllegalArgumentException( <span class="string">&quot;</span><span class="string">the LHS and/or RHS cannot be of lenght less than 1.</span><span class="string">&quot;</span>);
<span class="literal">this</span>.<span class="ST0">lhs</span> = lhs;
<span class="literal">this</span>.<span class="ST0">rhs</span> = rhs;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">rhs</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">rhs</span>
<span class="comment">*/</span>
<span class="literal">public</span> String <span class="ST2">getRhs</span>()
{
<span class="literal">return</span> <span class="ST0">rhs</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Set</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">rhs</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">rhs</span> <span class="comment">new</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">rhs</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setRhs</span>(String rhs)
{
<span class="literal">this</span>.<span class="ST0">rhs</span> = rhs;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">lhs</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">lhs</span>
<span class="comment">*/</span>
<span class="literal">public</span> String <span class="ST2">getLhs</span>()
{
<span class="literal">return</span> <span class="ST0">lhs</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Set</span> <span class="comment">the</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">lhs</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">lhs</span> <span class="comment">new</span> <span class="comment">value</span> <span class="comment">of</span> <span class="comment">lhs</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setLhs</span>(String lhs)
{
<span class="literal">this</span>.<span class="ST0">lhs</span> = lhs;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>()
{
<span class="literal">return</span> <span class="ST0">lhs</span> + <span class="string">&quot;</span><span class="string"> -&gt; </span><span class="string">&quot;</span> + <span class="ST0">rhs</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Decomposes</span> <span class="comment">the</span> <span class="comment">RHS</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">FD</span> <span class="comment">into</span> <span class="comment">singletons</span><span class="comment">.</span> <span class="comment">where</span> <span class="comment">the</span> <span class="comment">LHS</span> <span class="comment">is</span> <span class="comment">the</span> <span class="comment">same</span>
<span class="comment"> * </span><span class="comment">as</span> <span class="comment">this</span> <span class="comment">FD</span> <span class="comment">and</span> <span class="comment">the</span> <span class="comment">RHS</span> <span class="comment">is</span><span class="comment"> 1 </span><span class="comment">character</span> <span class="comment">of</span> <span class="comment">each</span> <span class="comment">character</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">FD</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">array</span> <span class="comment">of</span> <span class="comment">FD</span> <span class="comment">he</span>
<span class="comment">*/</span>
<span class="literal">public</span> FD[] <span class="ST2">decomposeRightHandSide</span>()
{
FD[] fdDecomosition = <span class="literal">new</span> FD[<span class="literal">this</span>.<span class="ST0">rhs</span>.length()];
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; <span class="literal">this</span>.<span class="ST0">rhs</span>.length(); ++i)
{
fdDecomosition[i] = <span class="literal">new</span> FD(<span class="literal">t</span><span class="literal">his</span>.<span class="ST0">lhs</span>, Character.<span class="ST3">toString</span>(<span class="ST0">r</span><span class="ST0">hs</span>.charAt(i)));
}
<span class="literal">return</span> fdDecomosition;
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>GeometricObject.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.string {color: #6a8759}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/GeometricObject.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">class</span> GeometricObject <span class="literal">implements</span> Comparable {
<span class="literal">private</span> String <span class="ST1">color</span> = <span class="string">&quot;</span><span class="string">white</span><span class="string">&quot;</span>;
<span class="literal">private</span> <span class="literal">boolean</span> <span class="ST1">filled</span>;
<span class="literal">private</span> java.util.Date <span class="ST1">dateCreated</span>;
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Construct</span> <span class="comment">a</span> <span class="comment">default</span> <span class="comment">geometric</span> <span class="comment">object</span>
<span class="comment">*/</span>
<span class="literal">protected</span> GeometricObject() {
<span class="ST1">dateCreated</span> = <span class="literal">new</span> java.util.Date();
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Construct</span> <span class="comment">a</span> <span class="comment">geometric</span> <span class="comment">object</span> <span class="comment">with</span> <span class="comment">color</span> <span class="comment">and</span> <span class="comment">filled</span> <span class="comment">value</span>
<span class="comment">*/</span>
<span class="literal">protected</span> GeometricObject(String color, <span class="literal">boolean</span> filled) {
<span class="ST1">dateCreated</span> = <span class="literal">new</span> java.util.Date();
<span class="literal">this</span>.<span class="ST1">color</span> = color;
<span class="literal">this</span>.<span class="ST1">filled</span> = filled;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Return</span> <span class="comment">color</span>
<span class="comment">*/</span>
<span class="literal">public</span> String <span class="ST2">getColor</span>() {
<span class="literal">return</span> <span class="ST1">color</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">color</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setColor</span>(String color) {
<span class="literal">this</span>.<span class="ST1">color</span> = color;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Return</span> <span class="comment">filled</span><span class="comment">.</span> <span class="comment">Since</span> <span class="comment">filled</span> <span class="comment">is</span> <span class="comment">boolean</span><span class="comment">, </span><span class="comment">the</span> <span class="comment">get</span> <span class="comment">method</span> <span class="comment">is</span> <span class="comment">named</span> <span class="comment">isFilled</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">boolean</span> <span class="ST2">isFilled</span>() {
<span class="literal">return</span> <span class="ST1">filled</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">filled</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setFilled</span>(<span class="literal">boolean</span> filled) {
<span class="literal">this</span>.<span class="ST1">filled</span> = filled;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Get</span> <span class="comment">dateCreated</span>
<span class="comment">*/</span>
<span class="literal">public</span> java.util.Date <span class="ST2">getDateCreated</span>() {
<span class="literal">return</span> <span class="ST1">dateCreated</span>;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">created on </span><span class="string">&quot;</span> + <span class="ST1">dateCreated</span> + <span class="string">&quot;</span><span class="literal">\n</span><span class="string">color: </span><span class="string">&quot;</span> + <span class="ST1">color</span>
+ <span class="string">&quot;</span><span class="string"> and filled: </span><span class="string">&quot;</span> + <span class="ST1">filled</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Abstract</span> <span class="comment">method</span> <span class="comment">getArea</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">double</span> <span class="ST2">getArea</span>();
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Abstract</span> <span class="comment">method</span> <span class="comment">getPerimeter</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">double</span> <span class="ST2">getPerimeter</span>();
<span class="comment">// Additional code below</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">int</span> <span class="ST2">compareTo</span>(GeometricObject t);
<span class="literal">public</span> <span class="literal">static</span> GeometricObject <span class="ST3">max</span>(GeometricObject o1, GeometricObject o2) {
<span class="literal">if</span> (o1.getArea() &gt;= o2.getArea()) {
<span class="literal">return</span> o1;
} <span class="literal">else</span> {
<span class="literal">return</span> o2;
}
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Large.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.string {color: #6a8759}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/Large.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="literal">import</span> java.io.File;
<span class="comment">import</span> <span class="comment">java</span><span class="comment">.</span><span class="comment">io</span><span class="comment">.</span><span class="comment">FileNotFoundException</span><span class="comment">;</span>
<span class="literal">import</span> java.util.ArrayList;
<span class="literal">import</span> java.util.Scanner;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Large {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
<span class="comment">// Read data file</span>
<span class="comment">// ArrayLists</span>
ArrayList firstNameArr = <span class="literal">new</span> ArrayList();
ArrayList lastNameArr = <span class="literal">new</span> ArrayList();
ArrayList jobTitleArr = <span class="literal">new</span> ArrayList();
ArrayList salaryArr = <span class="literal">new</span> ArrayList();
File file = <span class="literal">new</span> File(<span class="string">&quot;</span><span class="string">Salary.txt</span><span class="string">&quot;</span>);
<span class="literal">try</span> (Scanner fileScanner = <span class="literal">new</span> Scanner(file)) {
<span class="literal">while</span> (fileScanner.hasNext()) {
firstNameArr.add(fileScanner.next());
lastNameArr.add(fileScanner.next());
jobTitleArr.add(fileScanner.next());
salaryArr.add(fileScanner.next());
fileScanner.nextLine(); <span class="comment">// consume newline</span>
}
} <span class="literal">catch</span> (Exception ex) {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Unable to read file</span><span class="string">&quot;</span>);
}
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; firstNameArr.size(); ++i) {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">first name :</span><span class="string">&quot;</span> + firstNameArr.get(i));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">last name: </span><span class="string">&quot;</span> + lastNameArr.get(i));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">job title: </span><span class="string">&quot;</span> + jobTitleArr.get(i));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">salary: </span><span class="string">&quot;</span> + salaryArr.get(i));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">--------------------------------------</span><span class="string">&quot;</span>);
}
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MP5_CalebFontenot.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/MP5_CalebFontenot.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> MP5_CalebFontenot {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> main(String[] args) {
System.out.println(<span class="string">&quot;</span><span class="string">Hello World!</span><span class="string">&quot;</span>);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,91 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MyStack.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST4 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/MyStack.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">import</span> java.util.ArrayList;
<span class="literal">public</span> <span class="literal">class</span> MyStack <span class="literal">implements</span> Cloneable {
<span class="literal">private</span> ArrayList&lt;Object&gt; <span class="ST1">list</span> = <span class="literal">new</span> ArrayList&lt;&gt;();
<span class="literal">public</span> <span class="literal">boolean</span> <span class="ST2">isEmpty</span>() {
<span class="literal">return</span> <span class="ST1">list</span>.isEmpty();
}
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">getSize</span>() {
<span class="literal">return</span> <span class="ST1">list</span>.size();
}
<span class="literal">public</span> Object <span class="ST2">peek</span>() {
<span class="literal">return</span> <span class="ST1">list</span>.get(getSize() - <span class="number">1</span>);
}
<span class="literal">public</span> Object <span class="ST2">pop</span>() {
Object o = <span class="ST1">list</span>.get(getSize() - <span class="number">1</span>);
<span class="ST1">list</span>.remove(getSize() - <span class="number">1</span>);
<span class="literal">return</span> o;
}
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">push</span>(Object o) {
<span class="ST1">list</span>.add(o);
}
@Override <span class="comment">/**</span> <span class="comment">Override</span> <span class="comment">the</span> <span class="comment">toString</span> <span class="comment">in</span> <span class="comment">the</span> <span class="comment">Object</span> <span class="comment">class</span> <span class="comment">*/</span>
<span class="literal">public</span> String <span class="ST2">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">stack: </span><span class="string">&quot;</span> + <span class="ST1">list</span>.toString();
}
@Override
<span class="literal">public</span> Object <span class="ST2">clone</span>() <span class="literal">throws</span> CloneNotSupportedException {
MyStack clonedStack = (MyStack) <span class="literal">super</span>.clone();
ArrayList&lt;Object&gt; newList = <span class="literal">new</span> ArrayList&lt;&gt;(<span class="ST1">l</span><span class="ST1">ist</span>);
clonedStack.<span class="ST1">list</span> = newList;
<span class="literal">return</span> clonedStack;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST3">main</span>(String[] args) <span class="literal">throws</span> CloneNotSupportedException {
MyStack stack = <span class="literal">new</span> MyStack();
<span class="literal">final</span> <span class="literal">int</span> STACK_SIZE = <span class="number">50</span>;
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; STACK_SIZE; ++i) {
stack.push(i + <span class="number">1</span>); <span class="comment">// Fill Stack with sequential numbers.</span>
<span class="comment">//System.out.println(stack.peek());</span>
}
System.<span class="ST4">out</span>.println(stack.peek());
MyStack clonedStack = (MyStack) stack.clone();
System.<span class="ST4">out</span>.println(clonedStack.peek());
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,203 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>NormalizeDatabase.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.ST4 {color: #9876aa}
.ST1 {color: #8a653b}
.comment {color: #808080}
.whitespace {color: #505050}
.ST2 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST5 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/NormalizeDatabase.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="comment">/*</span>
<span class="comment"> * To change this license header, choose License Headers in Project Properties.</span>
<span class="comment"> * To change this template file, choose Tools | Templates</span>
<span class="comment"> * and open the template in the editor.</span>
<span class="comment"> */</span>
<span class="literal">import</span> java.util.ArrayList;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">ASDV2</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> NormalizeDatabase
{
<span class="comment">/**</span><span class="comment">Finds</span> <span class="comment">the</span> <span class="comment">closure</span> <span class="comment">of</span> <span class="comment">a</span> <span class="comment">set</span> <span class="comment">of</span> <span class="comment">attributes</span> <span class="comment">given</span> <span class="comment">a</span> <span class="comment">set</span> <span class="comment">of</span> <span class="comment">FDs</span> <span class="comment">of</span> <span class="comment">a</span> <span class="comment">relation</span> <span class="comment">R</span>
<span class="comment"> * </span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">attributes</span> <span class="comment">attributes</span> <span class="comment">to</span> <span class="comment">find</span> <span class="comment">their</span> <span class="comment">closure</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">fds</span> <span class="comment">set</span> <span class="comment">of</span> <span class="comment">FDs</span> <span class="comment">of</span> <span class="comment">relation</span> <span class="comment">R</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">the</span> <span class="comment">closure</span> <span class="comment">of</span> <span class="comment">the</span> <span class="comment">parameter</span> <span class="comment">attributes</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> String <span class="ST2">closure</span>(String attributes, ArrayList&lt;FD&gt; fds )
{
attributes = attributes.toUpperCase();
<span class="literal">for</span> (<span class="literal">int</span> j = <span class="number">0</span>; j &lt; fds.size(); ++j)
{
FD capitalsFD = <span class="literal">new</span> FD(fds.get(j).getLhs().toUpperCase(),
fds.get(j).getRhs().toUpperCase());
fds.set(j, capitalsFD);
}
<span class="comment">// 1. Set x+ = x</span>
String closure = attributes;
String closurePreveious = attributes;
<span class="comment">// 2. Starting with x+ apply each FD xF —&gt; y in F where</span>
<span class="comment">// xF belongs in closure x+ but but the rhs y is not already in x+, to find determined</span>
<span class="comment">// attributes y</span>
<span class="comment">// 3. x+ = x+ U y</span>
<span class="literal">while</span> (<span class="literal">true</span>)
{
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; fds.size(); ++i)
{
<span class="literal">if</span> (closure.contains(fds.get(i).getRhs()))
<span class="literal">continue</span>;
<span class="comment">// if the left hand side of the FD is contained in the closure</span>
<span class="comment">// then add to the closure the RHS of the FD</span>
<span class="literal">if</span> (closure.contains(fds.get(i).getLhs()))
closure += fds.get(i).getRhs();
}
<span class="literal">if</span> (closurePreveious.equals(closure))
<span class="literal">break</span>;
<span class="literal">else</span>
closurePreveious = closure;
}
<span class="comment">// 4, If y not empty goto (2)</span>
<span class="comment">// 5. Return x+</span>
<span class="literal">return</span> closure;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Eliminates</span> <span class="comment">redundant</span> <span class="comment">attributes</span> <span class="comment">from</span> <span class="comment">the</span> <span class="comment">LHS</span> <span class="comment">of</span> <span class="comment">each</span> <span class="comment">FD</span> <span class="comment">of</span> <span class="comment">a</span> <span class="comment">set</span> <span class="comment">of</span> <span class="comment">FDs</span>
<span class="comment"> * </span><span class="comment">given</span> <span class="comment">as</span> <span class="comment">parameters</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@param</span> <span class="ST1">fds</span> <span class="comment">the</span> <span class="comment">set</span> <span class="comment">of</span> <span class="comment">FDs</span> <span class="comment">to</span> <span class="comment">eliminate</span> <span class="comment">the</span> <span class="comment">redundancy</span>
<span class="comment"> * </span><span class="comment">@return</span> <span class="comment">and</span> <span class="comment">ArrayList</span> <span class="comment">with</span> <span class="comment">no</span> <span class="comment">redundancy</span> <span class="comment">on</span> <span class="comment">LHS</span> <span class="comment">of</span> <span class="comment">each</span> <span class="comment">FD</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> ArrayList&lt;FD&gt; <span class="ST2">eliminateRedundantAttributes</span>(ArrayList&lt;FD&gt; fds)
{
<span class="literal">for</span> (<span class="literal">int</span> j = <span class="number">0</span>; j &lt; fds.size(); ++j)
{
<span class="literal">int</span> s = fds.get(j).getLhs().length();
<span class="literal">if</span> (s &lt; <span class="number">2</span>)
{
<span class="literal">continue</span>;
}
<span class="literal">else</span>
{
String fl = fds.get(j).getLhs().substring(<span class="number">0</span>, <span class="number">1</span>);
ArrayList&lt;FD&gt; <span class="comment">fFD</span> = <span class="literal">new</span> ArrayList&lt;FD&gt;();
String s1 = <span class="string">&quot;</span> <span class="string">&quot;</span>;
<span class="literal">if</span> (fds.get(j).getLhs().length() == <span class="number">2</span>)
{
s1 = fds.get(j).getLhs().substring(<span class="number">1</span>);
<span class="literal">if</span> (<span class="ST3">closure</span>(s1,fds).contains(fl))
{
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">1</span>, <span class="number">2</span>), fds.get(j).getRhs()));
fds.remove(j);
}
}
<span class="literal">else</span> <span class="literal">if</span> (fds.get(j).getLhs().charAt(<span class="number">1</span>) == <span class="number">3</span>)
{
s1 = fds.get(j).getLhs().substring(<span class="number">1</span>);
<span class="literal">if</span> (<span class="ST3">closure</span>(s1,fds).contains(fl))
{
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">1</span>, <span class="number">2</span>), fds.get(j).getRhs()));
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">2</span>, <span class="number">3</span>), fds.get(j).getRhs()));
fds.remove(j);
}
}
<span class="literal">else</span> <span class="literal">if</span> (fds.get(j).getLhs().charAt(<span class="number">1</span>) == <span class="number">4</span>)
{
s1 = fds.get(j).getLhs().substring(<span class="number">1</span>);
<span class="literal">if</span> (<span class="ST3">closure</span>(s1,fds).contains(fl))
{
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">1</span>, <span class="number">2</span>), fds.get(j).getRhs()));
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">2</span>, <span class="number">3</span>), fds.get(j).getRhs()));
fds.add(<span class="literal">new</span> FD (fds.get(j).getLhs().substring(<span class="number">3</span>, <span class="number">4</span>), fds.get(j).getRhs()));
fds.remove(j);
}
}
<span class="literal">else</span>
{
<span class="literal">return</span> fds;
}
}
}
<span class="literal">return</span> fds;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST2">main</span>(String[] args)
{
ArrayList&lt;FD&gt; fds = <span class="literal">new</span> ArrayList&lt;FD&gt;();
FD fd = <span class="literal">new</span> FD(<span class="string">&quot;</span><span class="string">a</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">BC</span><span class="string">&quot;</span>);
FD[] fdDecomposed = fd.decomposeRightHandSide();
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; fdDecomposed.<span class="ST4">length</span>; ++i)
{
fds.add( <span class="literal">new</span> FD(fdDecomposed[i].getLhs(), fdDecomposed[i].getRhs()));
}
fds.add(<span class="literal">new</span> FD(<span class="string">&quot;</span><span class="string">B</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">C</span><span class="string">&quot;</span>));
fds.add(<span class="literal">new</span> FD(<span class="string">&quot;</span><span class="string">AB</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">B</span><span class="string">&quot;</span>));
fds.add(<span class="literal">new</span> FD(<span class="string">&quot;</span><span class="string">C</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">A</span><span class="string">&quot;</span>));
System.<span class="ST5">out</span>.println(fds);
System.<span class="ST5">out</span>.println(<span class="ST3">c</span><span class="ST3">losure</span>(<span class="string">&quot;</span><span class="string">b</span><span class="string">&quot;</span>, fds));
System.<span class="ST5">out</span>.println(<span class="ST3">e</span><span class="ST3">liminateRedundantAttributes</span>(fds));
<span class="comment">/* TEST it with </span>
<span class="comment"> Let F1 = {1. A -&gt; BC </span>
<span class="comment"> 2. B -&gt; C, </span>
<span class="comment"> 3. AB -&gt; D }. </span>
<span class="comment"> Attribute B is extraneous in FD 3 AB -&gt; D</span>
<span class="comment"> */</span>
<span class="comment">/*</span>
<span class="comment"> F2 = { 1. AB -&gt; C, </span>
<span class="comment"> 2. C -&gt; A, </span>
<span class="comment"> 3. BC -&gt; D, </span>
<span class="comment"> 4. ACD -&gt; B, </span>
<span class="comment"> 5. D -&gt; E, </span>
<span class="comment"> 6. D -&gt; G, </span>
<span class="comment"> 7. BE -&gt; C, </span>
<span class="comment"> 8. CG -&gt; B,</span>
<span class="comment"> 9. CG -&gt; D, </span>
<span class="comment"> 10. CE -&gt; A, </span>
<span class="comment"> 11. CE -&gt; G}</span>
<span class="comment"> */</span>
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,188 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PrintCalendar.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.string {color: #6a8759}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/PrintCalendar.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">import</span> java.util.Calendar;
<span class="literal">import</span> java.util.Scanner;
<span class="literal">import</span> java.util.Date;
<span class="literal">import</span> java.util.GregorianCalendar;
<span class="literal">public</span> <span class="literal">class</span> PrintCalendar {
<span class="comment">/**</span> <span class="comment">Main</span> <span class="comment">method</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
Scanner input = <span class="literal">new</span> Scanner(System.<span class="ST2">in</span>);
<span class="literal">int</span> year, month;
String userInput;
<span class="literal">do</span> {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">What would you like to do?</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">1. Print today&#39;s date.</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">2. Print a specified date.</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Q/q. Quit.</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.print(<span class="string">&quot;</span><span class="string">Respond with 1, 2 or Q/q: </span><span class="string">&quot;</span>);
userInput = input.next();
<span class="literal">if</span> (userInput.toLowerCase().charAt(<span class="number">0</span>) == <span class="string">&#39;</span><span class="string">q</span><span class="string">&#39;</span>) {
System.<span class="ST3">exit</span>(<span class="number">0</span>);
}
<span class="literal">if</span> (Integer.<span class="ST3">parseInt</span>(userInput) &lt; <span class="number">0</span> || Integer.<span class="ST3">parseInt</span>(userInput) &gt; <span class="number">2</span>) {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Invalid input!</span><span class="string">&quot;</span>);
} <span class="literal">else</span> {
<span class="literal">if</span> (Integer.<span class="ST3">parseInt</span>(userInput) == <span class="number">1</span>) {
Date date = <span class="literal">new</span> Date();
<span class="ST3">printMonth</span>((date.getYear() + <span class="number">1900</span>), date.getMonth());
} <span class="literal">else</span> <span class="literal">if</span> (Integer.<span class="ST3">parseInt</span>(userInput) == <span class="number">2</span>) {
System.<span class="ST2">out</span>.print(<span class="string">&quot;</span><span class="string">Enter a month (1-12): </span><span class="string">&quot;</span>);
month = (input.nextInt() + <span class="number">1</span>);
System.<span class="ST2">out</span>.print(<span class="string">&quot;</span><span class="string">Enter a year: </span><span class="string">&quot;</span>);
year = (input.nextInt());
GregorianCalendar date = <span class="literal">new</span> GregorianCalendar(year, month, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>);
<span class="ST3">printMonth</span>(date.get(Calendar.<span class="ST2">YEAR</span>), date.get(Calendar.<span class="ST2">MONTH</span>));
}
}
} <span class="literal">while</span> (<span class="literal">true</span>);
}
<span class="comment">/**</span> <span class="comment">Print</span> <span class="comment">the</span> <span class="comment">calendar</span> <span class="comment">for</span> <span class="comment">a</span> <span class="comment">month</span> <span class="comment">in</span> <span class="comment">a</span> <span class="comment">year</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">printMonth</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
<span class="comment">// Print the headings of the calendar</span>
<span class="ST3">printMonthTitle</span>(year, month);
<span class="comment">// Print the body of the calendar</span>
<span class="ST3">printMonthBody</span>(year, month);
}
<span class="comment">/**</span> <span class="comment">Print</span> <span class="comment">the</span> <span class="comment">month</span> <span class="comment">title</span><span class="comment">, </span><span class="comment">e</span><span class="comment">.</span><span class="comment">g</span><span class="comment">.</span><span class="comment">, </span><span class="comment">May</span><span class="comment">, 1999 </span><span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">printMonthTitle</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span> <span class="string">&quot;</span> + <span class="ST3">getMonthName</span>(month)
+ <span class="string">&quot;</span> <span class="string">&quot;</span> + year);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">-----------------------------</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string"> Sun Mon Tue Wed Thu Fri Sat</span><span class="string">&quot;</span>);
}
<span class="comment">/**</span> <span class="comment">Get</span> <span class="comment">the</span> <span class="comment">English</span> <span class="comment">name</span> <span class="comment">for</span> <span class="comment">the</span> <span class="comment">month</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> String <span class="ST1">getMonthName</span>(<span class="literal">int</span> month) {
String monthName = <span class="string">&quot;&quot;</span>;
<span class="literal">switch</span> (month) {
<span class="literal">case</span> <span class="number">1</span>: monthName = <span class="string">&quot;</span><span class="string">January</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">2</span>: monthName = <span class="string">&quot;</span><span class="string">February</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">3</span>: monthName = <span class="string">&quot;</span><span class="string">March</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">4</span>: monthName = <span class="string">&quot;</span><span class="string">April</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">5</span>: monthName = <span class="string">&quot;</span><span class="string">May</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">6</span>: monthName = <span class="string">&quot;</span><span class="string">June</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">7</span>: monthName = <span class="string">&quot;</span><span class="string">July</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">8</span>: monthName = <span class="string">&quot;</span><span class="string">August</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">9</span>: monthName = <span class="string">&quot;</span><span class="string">September</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">10</span>: monthName = <span class="string">&quot;</span><span class="string">October</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">11</span>: monthName = <span class="string">&quot;</span><span class="string">November</span><span class="string">&quot;</span>; <span class="literal">break</span>;
<span class="literal">case</span> <span class="number">12</span>: monthName = <span class="string">&quot;</span><span class="string">December</span><span class="string">&quot;</span>;
}
<span class="literal">return</span> monthName;
}
<span class="comment">/**</span> <span class="comment">Print</span> <span class="comment">month</span> <span class="comment">body</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">printMonthBody</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
<span class="comment">// Get start day of the week for the first date in the month</span>
<span class="literal">int</span> startDay = <span class="ST3">getStartDay</span>(year, month);
<span class="comment">// Get number of days in the month</span>
<span class="literal">int</span> numberOfDaysInMonth = <span class="ST3">getNumberOfDaysInMonth</span>(year, month);
<span class="comment">// Pad space before the first day of the month</span>
<span class="literal">int</span> i = <span class="number">0</span>;
<span class="literal">for</span> (i = <span class="number">0</span>; i &lt; startDay; i++)
System.<span class="ST2">out</span>.print(<span class="string">&quot;</span> <span class="string">&quot;</span>);
<span class="literal">for</span> (i = <span class="number">1</span>; i &lt;= numberOfDaysInMonth; i++) {
System.<span class="ST2">out</span>.printf(<span class="string">&quot;</span><span class="string">%4d</span><span class="string">&quot;</span>, i);
<span class="literal">if</span> ((i + startDay) % <span class="number">7</span> == <span class="number">0</span>)
System.<span class="ST2">out</span>.println();
}
System.<span class="ST2">out</span>.println();
}
<span class="comment">/**</span> <span class="comment">Get</span> <span class="comment">the</span> <span class="comment">start</span> <span class="comment">day</span> <span class="comment">of</span> <span class="comment">month</span><span class="comment">/1/</span><span class="comment">year</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span> <span class="ST1">getStartDay</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
<span class="literal">final</span> <span class="literal">int</span> START_DAY_FOR_JAN_1_1800 = <span class="number">3</span>;
<span class="comment">// Get total number of days from 1/1/1800 to month/1/year</span>
<span class="literal">int</span> totalNumberOfDays = <span class="ST3">getTotalNumberOfDays</span>(year, month);
<span class="comment">// Return the start day for month/1/year</span>
<span class="literal">return</span> (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % <span class="number">7</span>;
}
<span class="comment">/**</span> <span class="comment">Get</span> <span class="comment">the</span> <span class="comment">total</span> <span class="comment">number</span> <span class="comment">of</span> <span class="comment">days</span> <span class="comment">since</span> <span class="comment">January</span><span class="comment"> 1, 1800 </span><span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span> <span class="ST1">getTotalNumberOfDays</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
<span class="literal">int</span> total = <span class="number">0</span>;
<span class="comment">// Get the total days from 1800 to 1/1/year</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">1800</span>; i &lt; year; i++)
<span class="literal">if</span> (<span class="ST3">isLeapYear</span>(i))
total = total + <span class="number">366</span>;
<span class="literal">else</span>
total = total + <span class="number">365</span>;
<span class="comment">// Add days from Jan to the month prior to the calendar month</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">1</span>; i &lt; month; i++)
total = total + <span class="ST3">getNumberOfDaysInMonth</span>(year, i);
<span class="literal">return</span> total;
}
<span class="comment">/**</span> <span class="comment">Get</span> <span class="comment">the</span> <span class="comment">number</span> <span class="comment">of</span> <span class="comment">days</span> <span class="comment">in</span> <span class="comment">a</span> <span class="comment">month</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span> <span class="ST1">getNumberOfDaysInMonth</span>(<span class="literal">int</span> year, <span class="literal">int</span> month) {
<span class="literal">if</span> (month == <span class="number">1</span> || month == <span class="number">3</span> || month == <span class="number">5</span> || month == <span class="number">7</span> ||
month == <span class="number">8</span> || month == <span class="number">10</span> || month == <span class="number">12</span>)
<span class="literal">return</span> <span class="number">31</span>;
<span class="literal">if</span> (month == <span class="number">4</span> || month == <span class="number">6</span> || month == <span class="number">9</span> || month == <span class="number">11</span>)
<span class="literal">return</span> <span class="number">30</span>;
<span class="literal">if</span> (month == <span class="number">2</span>) <span class="literal">return</span> <span class="ST3">isLeapYear</span>(year) ? <span class="number">29</span> : <span class="number">28</span>;
<span class="literal">return</span> <span class="number">0</span>; <span class="comment">// If month is incorrect</span>
}
<span class="comment">/**</span> <span class="comment">Determine</span> <span class="comment">if</span> <span class="comment">it</span> <span class="comment">is</span> <span class="comment">a</span> <span class="comment">leap</span> <span class="comment">year</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">boolean</span> <span class="ST1">isLeapYear</span>(<span class="literal">int</span> year) {
<span class="literal">return</span> year % <span class="number">400</span> == <span class="number">0</span> || (year % <span class="number">4</span> == <span class="number">0</span> &amp;&amp; year % <span class="number">100</span> != <span class="number">0</span>);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Rectangle.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/Rectangle.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Rectangle <span class="literal">extends</span> GeometricObject{
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">width</span>;
<span class="literal">private</span> <span class="literal">double</span> <span class="ST1">height</span>;
<span class="literal">public</span> Rectangle() {
}
<span class="literal">public</span> Rectangle(<span class="literal">double</span> width, <span class="literal">double</span> height) {
<span class="literal">this</span>.<span class="ST1">width</span> = width;
<span class="literal">this</span>.<span class="ST1">height</span> = height;
}
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getWidth</span>() {
<span class="literal">return</span> <span class="ST1">width</span>;
}
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setWidth</span>(<span class="literal">double</span> width) {
<span class="literal">this</span>.<span class="ST1">width</span> = width;
}
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getHeight</span>() {
<span class="literal">return</span> <span class="ST1">height</span>;
}
<span class="literal">public</span> <span class="literal">void</span> <span class="ST2">setHeight</span>(<span class="literal">double</span> height) {
<span class="literal">this</span>.<span class="ST1">height</span> = height;
}
@Override
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getArea</span>() {
<span class="literal">return</span> <span class="ST1">width</span> * <span class="ST1">height</span>;
}
@Override
<span class="literal">public</span> <span class="literal">double</span> <span class="ST2">getPerimeter</span>() {
<span class="literal">return</span> <span class="number">2</span> * (<span class="ST1">width</span> + <span class="ST1">height</span>);
}
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compareTo</span>(GeometricObject t) {
System.<span class="ST3">out</span>.println(<span class="literal">this</span>.getArea() + <span class="string">&quot;</span><span class="string">, </span><span class="string">&quot;</span> + (t).getArea());
<span class="literal">if</span> (<span class="literal">this</span>.getArea() &lt; (t).getArea()) {
<span class="literal">return</span> -<span class="number">1</span>;
} <span class="literal">else</span> <span class="literal">if</span> (<span class="literal">this</span>.getArea() &gt; (t).getArea()) {
<span class="literal">return</span> <span class="number">1</span>;
} <span class="literal">else</span> {
<span class="literal">return</span> <span class="number">0</span>;
}
}
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compareTo</span>(Object t) {
<span class="literal">throw</span> <span class="literal">new</span> UnsupportedOperationException(<span class="string">&quot;</span><span class="string">Not supported yet.</span><span class="string">&quot;</span>); <span class="comment">// Generated from </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody</span>
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,101 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>ShuffleArrayList.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/ShuffleArrayList.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="literal">import</span> java.util.*;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> ShuffleArrayList {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">shuffle</span>(ArrayList&lt;Number&gt; list) {
<span class="comment">// Create a new Random object.</span>
Random rng = <span class="literal">new</span> Random();
<span class="comment">// Create an ArrayList to store the indices of the elements that have been selected.</span>
ArrayList&lt;Integer&gt; selectedIndices = <span class="literal">new</span> ArrayList&lt;Integer&gt;();
<span class="comment">// Loop through each element in the list.</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; list.size(); ++i) {
<span class="comment">// Generate a random index that has not been selected before.</span>
<span class="literal">int</span> randomIndex;
<span class="literal">do</span> {
randomIndex = rng.nextInt(list.size()); <span class="comment">// Generate a random integer between 0 (inclusive) and the size of the list (exclusive).</span>
} <span class="literal">while</span> (selectedIndices.contains(randomIndex)); <span class="comment">// Repeat until an unselected index is found.</span>
selectedIndices.add(randomIndex); <span class="comment">// Add the selected index to the list of selected indices.</span>
<span class="comment">//System.out.println(randomIndex + &quot;, &quot; + i);</span>
<span class="comment">// Swap the element at the random index with the element at the current index of the loop.</span>
<span class="comment">// This shuffles the list by randomly selecting an element to swap with the current element at each iteration.</span>
Number temp = list.get(randomIndex); <span class="comment">// Save the element at the random index to a temporary variable.</span>
list.set(randomIndex, list.get(i)); <span class="comment">// Overwrite the element at the random index with the element at the current index of the loop.</span>
list.set(i, temp); <span class="comment">// Set the current index of the loop to the saved element, effectively swapping the two elements.</span>
}
}
<span class="literal">public</span> <span class="literal">static</span> String <span class="ST1">checkForDuplicates</span>(ArrayList&lt;Number&gt; list) {
<span class="comment">// Ensure Array does not include repeat numbers.</span>
<span class="literal">boolean</span> repeatNumber = <span class="literal">false</span>;
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; list.size(); ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = <span class="number">0</span>; j &lt; list.size(); ++j) {
<span class="literal">if</span> (i != j) {
<span class="comment">//System.out.println(&quot;Checking &quot; + list.get(i) + &quot; and &quot; + list.get(j));</span>
<span class="literal">if</span> (list.get(i) == list.get(j)) {
repeatNumber = <span class="literal">true</span>;
}
}
}
}
<span class="literal">if</span> (repeatNumber) {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">Numbers repeat in ArrayList.</span><span class="string">&quot;</span>;
} <span class="literal">else</span> {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">Numbers do not repeat in ArrayList.</span><span class="string">&quot;</span>;
}
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
<span class="literal">final</span> <span class="literal">int</span> ARRAY_SIZE = <span class="number">50</span>;
ArrayList&lt;Number&gt; list = <span class="literal">new</span> ArrayList&lt;&gt;();
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; ARRAY_SIZE; ++i) {
list.add(i + <span class="number">1</span>); <span class="comment">// Fill ArrayList with sequential numbers.</span>
}
System.<span class="ST2">out</span>.println(list);
System.<span class="ST2">out</span>.println(<span class="ST3">c</span><span class="ST3">heckForDuplicates</span>(list));
<span class="ST3">shuffle</span>(list);
System.<span class="ST2">out</span>.println(list);
System.<span class="ST2">out</span>.println(<span class="ST3">c</span><span class="ST3">heckForDuplicates</span>(list));
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>SortArrayList.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST2 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST3 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/SortArrayList.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="literal">import</span> java.math.BigDecimal;
<span class="literal">import</span> java.util.ArrayList;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> SortArrayList {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">sort</span>(ArrayList&lt;Number&gt; list) {
<span class="comment">// Selection sort implementation for ArrayLists.</span>
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; list.size(); ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = i + <span class="number">1</span>; j &lt; list.size(); ++j) {
<span class="comment">// BigDecimal should work for any type. Have not confirmed this.</span>
Number numI = list.get(i);
Number numJ = list.get(j);
BigDecimal bigNumI = <span class="literal">new</span> BigDecimal(list.get(i).toString());
BigDecimal bigNumJ = <span class="literal">new</span> BigDecimal(list.get(j).toString());
<span class="literal">if</span> (bigNumI.compareTo(bigNumJ) == <span class="number">1</span>) {
Number tmp = numI;
list.set(i, numJ);
list.set(j, tmp);
}
}
}
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
<span class="literal">final</span> <span class="literal">int</span> ARRAY_SIZE = <span class="number">50</span>;
ArrayList&lt;Number&gt; list = <span class="literal">new</span> ArrayList&lt;&gt;();
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; ARRAY_SIZE; ++i) {
list.add((i) + Math.<span class="ST2">random</span>()); <span class="comment">// Fill ArrayList with sequential numbers.</span>
}
System.<span class="ST3">out</span>.println(list);
ShuffleArrayList.<span class="ST2">shuffle</span>(list); <span class="comment">// Use our shuffle method from earlier</span>
System.<span class="ST3">out</span>.println(list);
<span class="ST2">sort</span>(list);
System.<span class="ST3">out</span>.println(list);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestCircle.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST0 {color: #287bde}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/TestCircle.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> TestCircle {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
Circle circle1 = <span class="literal">new</span> Circle(<span class="number">5</span>);
Circle circle2 = <span class="literal">new</span> Circle(<span class="number">1</span><span class="number">0</span>);
System.<span class="ST2">out</span>.println(circle1.compareTo(circle2));
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,60 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestGeometricObject.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.literal {color: #cc7832}
.ST2 {font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.number {color: #6897bb}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST3 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Assignments/MP5_CalebFontenot/src/main/java/com/calebfontenot/mp5_calebfontenot/TestGeometricObject.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> com.calebfontenot.mp5_calebfontenot;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> TestGeometricObject {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
<span class="comment">// Create two comparable Circles</span>
Circle circle1 = <span class="literal">new</span> Circle(<span class="number">5</span>);
Circle circle2 = <span class="literal">new</span> Circle(<span class="number">4</span>);
<span class="comment">// Display the max Circle</span>
Circle circle = (Circle) GeometricObject.<span class="ST2">max</span>(circle1, circle2);
System.<span class="ST3">out</span>.println(<span class="string">&quot;</span><span class="string">The max Circle&#39;s radius is </span><span class="string">&quot;</span> + circle.getRadius());
System.<span class="ST3">out</span>.println(circle);
<span class="comment">// Create two comparable rectangles</span>
Rectangle r1 = <span class="literal">new</span> Rectangle(<span class="number">5</span>, <span class="number">4</span>);
Rectangle r2 = <span class="literal">new</span> Rectangle(<span class="number">4</span>, <span class="number">5</span>);
System.<span class="ST3">out</span>.println(r1.compareTo(r2));
System.<span class="ST3">out</span>.println(<span class="string">&quot;</span><span class="string">The max rectangle is </span><span class="string">&quot;</span> + (Rectangle) Rectangle.<span class="ST2">max</span>(r1, r2));
System.<span class="ST3">out</span>.println(<span class="string">&quot;</span><span class="string">The max geometric object is </span><span class="string">&quot;</span> + GeometricObject.<span class="ST2">max</span>(circle1, r2));
}
}
</pre></body>
</html>