ASDV-Java/Semester 2/Exams/PracticeExam1/Problem1.html

175 lines
13 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Problem1ArrayNames.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}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace}
table {color: #888888; background-color: #313335; font-family: monospace}
.ST3 {color: #9876aa}
.number {color: #6897bb}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.ST2 {color: #ffc66d; font-family: monospace; font-style: italic}
.ST4 {color: #9876aa; font-family: monospace; font-style: italic}
.ST1 {color: #808080; font-family: monospace; font-weight: bold}
.ST5 {color: #8a653b}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST6 {font-family: monospace; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 2/Exams/PracticeExam1/src/main/java/com/calebfontenot/practiceexam1/Problem1ArrayNames.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.practiceexam1;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Scanner;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="ST1">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Problem1ArrayNames {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span> <span class="ST2">maxNumberOfColumnsInJagged2dArray</span>(<span class="literal">char</span>[][] ar)
{
<span class="literal">int</span> maxNumberOfColumns = <span class="number">0</span>;
<span class="literal">for</span> (<span class="literal">int</span> row = <span class="number">0</span>; row &lt; ar.<span class="ST3">length</span>; ++row) {
<span class="literal">if</span> (ar[row].<span class="ST3">length</span> &gt; maxNumberOfColumns) {
maxNumberOfColumns = ar[row].<span class="ST3">length</span>;
}
}
<span class="literal">return</span> maxNumberOfColumns;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Displays</span> <span class="comment">Enter</span> <span class="comment">number</span> <span class="comment">of</span> <span class="comment">names</span> <span class="comment">or</span><span class="comment"> -1 </span><span class="comment">to</span> <span class="comment">quit</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="ST1">@return</span> <span class="comment">number</span> <span class="comment">of</span> <span class="comment">students</span> <span class="comment">or</span><span class="comment"> -1;</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">int</span> <span class="ST2">menu</span>()
{
<span class="literal">int</span> userInt = -<span class="number">1</span>;
<span class="literal">do</span> {
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Enter the numbrer of students or -1 to quit: </span><span class="string">&quot;</span>);
Scanner input = <span class="literal">new</span> Scanner(System.<span class="ST4">in</span>);
userInt = input.nextInt();
<span class="literal">if</span> (userInt == <span class="number">0</span>) {
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Input cannot be 0!</span><span class="string">&quot;</span>);
} <span class="literal">else</span> {
<span class="literal">return</span> userInt;
}
} <span class="literal">while</span> (userInt != -<span class="number">1</span>);
<span class="literal">return</span> -<span class="number">1</span>;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Reads</span> <span class="comment">form</span> <span class="comment">user</span> <span class="comment">a</span> <span class="comment">number</span> <span class="comment">of</span> <span class="comment">names</span><span class="comment">, </span><span class="comment">creates</span> <span class="comment">the</span> <span class="comment">array</span> <span class="comment">of</span> <span class="comment">names</span> <span class="comment">and</span> <span class="comment">returns</span> <span class="comment">it</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="ST1">@param</span> <span class="ST5">numberOfNames</span>
<span class="comment"> * </span><span class="ST1">@return</span> <span class="comment">array</span> <span class="comment">of</span> <span class="comment">names</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">char</span>[][] <span class="ST2">readNames</span>(<span class="literal">int</span> numOfNames)
{
<span class="literal">char</span>[][] names = <span class="literal">new</span> <span class="literal">char</span>[numOfNames][];
Scanner input = <span class="literal">new</span> Scanner(System.<span class="ST4">in</span>);
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; numOfNames; i++) {
System.<span class="ST4">out</span>.print(<span class="string">&quot;</span><span class="string">Enter a name: </span><span class="string">&quot;</span>);
names[i] = input.next().toCharArray();
}
<span class="literal">return</span> names;
}
<span class="literal">public</span> <span class="literal">static</span> String <span class="ST2">returnRowMajorOrder</span>(<span class="literal">char</span>[] ar)<span class="comment">//normal</span>
{
String returnString = <span class="string">&quot;&quot;</span>;
<span class="literal">for</span> (<span class="literal">int</span> x = <span class="number">0</span>; x &lt; ar.<span class="ST3">length</span>; ++x) {
returnString += ar[x];
}
<span class="literal">return</span> returnString;
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Sorts</span> <span class="comment">the</span> <span class="comment">array</span> <span class="comment">in</span> <span class="comment">ascending</span> <span class="comment">order</span><span class="comment">.</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="ST1">@param</span> <span class="ST5">ar</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST2">sortNames</span>(<span class="literal">char</span>[][] names)
{
<span class="literal">for</span> (<span class="literal">int</span> i = <span class="number">0</span>; i &lt; names.<span class="ST3">length</span> - <span class="number">1</span>; ++i) {
<span class="literal">for</span> (<span class="literal">int</span> j = i + <span class="number">1</span>; j &lt; names.<span class="ST3">length</span>; ++j) {
<span class="literal">char</span> compChar1 = names[i][<span class="number">0</span>], compChar2 = names[j][<span class="number">0</span>];
<span class="comment">// Reoder entire row</span>
<span class="literal">for</span> (<span class="literal">int</span> rowIterate = <span class="number">1</span>; rowIterate &lt; <span class="ST6">maxNumberOfColumnsInJagged2dArray</span>(names); ++rowIterate) {
<span class="literal">if</span> (Character.<span class="ST6">toLowerCase</span>(compChar1) == Character.<span class="ST6">toLowerCase</span>(compChar2)) {
<span class="literal">try</span> {
compChar1 = names[i][rowIterate];
compChar2 = names[j][rowIterate];
} <span class="literal">catch</span> (Exception ex) {
<span class="comment">// If it&#39;s failed, the index has gone out of range.</span>
<span class="comment">// Check the length of the arrays and swap the larger one with the smaller one.</span>
<span class="literal">if</span> (names[i].<span class="ST3">length</span> &gt; names[j].<span class="ST3">length</span>) {
System.<span class="ST4">out</span>.println(names[i].<span class="ST3">length</span> + <span class="string">&quot;</span> <span class="string">&quot;</span> + names[j].<span class="ST3">length</span>);
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Swapping </span><span class="string">&quot;</span> + <span class="ST6">returnRowMajorOrder</span>(names[i]) + <span class="string">&quot;</span><span class="string"> with </span><span class="string">&quot;</span> + <span class="ST6">returnRowMajorOrder</span>(names[j]));
<span class="literal">char</span>[] temp = names[i];
names[i] = names[j];
names[j] = temp;
}
<span class="literal">break</span>;
}
}
<span class="literal">if</span> (Character.<span class="ST6">toLowerCase</span>(compChar1) &gt; Character.<span class="ST6">toLowerCase</span>(compChar2)) {
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Swapping </span><span class="string">&quot;</span> + <span class="ST6">returnRowMajorOrder</span>(names[i]) + <span class="string">&quot;</span><span class="string"> with </span><span class="string">&quot;</span> + <span class="ST6">returnRowMajorOrder</span>(names[j]));
<span class="literal">char</span>[] temp = names[i];
names[i] = names[j];
names[j] = temp;
<span class="literal">break</span>;
}
}
}
}
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">Prints</span> <span class="comment">the</span> <span class="comment">array</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="ST1">@param</span> <span class="ST5">ar</span> <span class="comment">is</span> <span class="comment">printed</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST2">print</span>(<span class="literal">char</span>[][] ar)
{
<span class="literal">for</span> (<span class="literal">char</span>[] nested : ar) {
System.<span class="ST4">out</span>.println(Arrays.<span class="ST6">toString</span>(nested));
}
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST2">main</span>(String[] args)
{
<span class="literal">int</span> numOfNames = <span class="ST6">menu</span>();
<span class="literal">char</span>[][] names = <span class="literal">null</span>;
<span class="literal">while</span> (numOfNames != -<span class="number">1</span>) {
names = <span class="ST6">readNames</span>(numOfNames);
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Original Names:</span><span class="string">&quot;</span>);
<span class="ST6">print</span>(names);
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Sorted Names:</span><span class="string">&quot;</span>);
<span class="ST6">sortNames</span>(names);
<span class="ST6">print</span>(names);
numOfNames = <span class="ST6">menu</span>();
}
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">goodbye!</span><span class="string">&quot;</span>);
}
}
</pre></body>
</html>