Initial Commit

This commit is contained in:
Isaac Shoebottom 2022-10-07 00:22:46 -03:00
commit bdcf6d3e1c
465 changed files with 15466 additions and 0 deletions

View File

@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../:\JavaProjects\JavaYear1\Assignment1\.idea/dataSources/
/dataSources.local.xml
# Zeppelin ignored files
/ZeppelinRemoteNotebooks/
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,25 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
</JetCodeStyleSettings>
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment1.iml" filepath="$PROJECT_DIR$/Assignment1.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,13 @@
/** @author Isaac Ray Shoebottom (3429069) **/
import java.util.Scanner;
public class InputAndOutput{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("My name is TOM. What is your name?");
String userName = sc.nextLine();
System.out.println("Pleased to meet you, " + userName);
System.out.println("In which program are you enrolled?");
String userEnrollment = sc.nextLine();
System.out.println("Oh? So you're " + userName + ", currently enrolled in " + userEnrollment + '!');
}
}

View File

@ -0,0 +1,6 @@
/** @author Isaac Ray Shoebottom (3429069) **/
public class MyFirstJavaProgram {
public static void main(String[]args) {
System.out.println("Hello World");
}
}

View File

@ -0,0 +1,14 @@
/** @author Isaac Ray Shoebottom (3429069) **/
public class MyInitials {
public static void main(String[] args) {
System.out.println("######### #### ");
System.out.println(" # ## ");
System.out.println(" # # ");
System.out.println(" # ## ");
System.out.println(" # ### ");
System.out.println(" # # ");
System.out.println(" # # ");
System.out.println(" # ## ");
System.out.println("######### #### ");
}
}

View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\ProgrammingProjects\JavaProjects\JavaYear1\Assignment10\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,25 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
</JetCodeStyleSettings>
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment10.iml" filepath="$PROJECT_DIR$/Assignment10.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,109 @@
/**
* Class containing the methods for conversion
* @author Isaac Shoebottom (3429069)
*/
public class Converter {
/**
* Convert hexadecimal to base 10
* @param hex String containing the hex digits
* @return returns the decimal value
*/
static long hex2Decimal(String hex) {
String hexChars = "0123456789ABCDEF";
hex = hex.toUpperCase();
long decimal = 0;
int intermediaryValue;
char index;
for (int i = hex.length(), p = 0; i != 0; i--, p++) {
index = hex.charAt(i-1);
intermediaryValue = hexChars.indexOf(index);
if (intermediaryValue == -1)
return -1;
decimal = decimal + intermediaryValue*(int)(Math.pow(16, p));
}
return decimal;
}
/**
* Converts the english text to the encoded text
* @param english String containing standard english
* @return Returns encoded text
*/
static String english2Encrypted(String english) {
english = english.toUpperCase();
if (english.length() > 1) {
english = swapFirstAndLastLettersInString(english);
}
for (int i = 0; i < english.length(); i++) {
char index = english.charAt(i);
switch (index) {
case 'E':
english = replaceInString(english, i, "A");
break;
case 'A':
english = replaceInString(english, i, "E");
break;
case 'O':
english = replaceInString(english, i, "I");
break;
case 'I':
english = replaceInString(english, i, "O");
break;
case 'U':
english = replaceInString(english, i, "Y");
break;
case 'Y':
english = replaceInString(english, i, "U");
break;
}
}
return english;
}
/**
* Replace a letter in a string
* @param str String to be modified
* @param index The character's index to be replaced
* @param replace The string that will be replacing the character
* @return The string with the string replaced
*/
private static String replaceInString(String str, int index, String replace){
return str.substring(0, index) + replace + str.substring(index+1);
}
/**
* Swaps the first and letters in every word in a string
* @param str The string to be swapped
* @return The string with letters swapped
*/
private static String swapFirstAndLastLettersInString(String str) {
StringBuilder output = new StringBuilder();
String[] splitStr = str.trim().split("\\s+");
for(int i = 0; i < splitStr.length; i++) {
if (splitStr[i].length() != 1) {
splitStr[i] = swapFirstAndLastLetterFromWord(splitStr[i]);
}
output.append(" ").append(splitStr[i]);
if (i == 0) {
output = new StringBuilder(splitStr[i]);
}
}
return output.toString();
}
/**
* Method to swap the first and last letters in a word
* @param str The string to be swapped
* @return The swapped string
*/
private static String swapFirstAndLastLetterFromWord(String str) {
return str.charAt(str.length() - 1) + str.substring(1, str.length() - 1) + str.charAt(0);
}
}

View File

@ -0,0 +1,65 @@
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
/**
* GUI Class
* @author Isaac Shoebottom (3429069)
*/
public class Driver extends Application {
FlowPane flowPane = new FlowPane();
Text textInstructions = new Text("Enter a hex value or English word or phrase:");
TextField textFieldMain = new TextField("");
Button buttonH2D= new Button("Hex To Decimal");
Button buttonE2E = new Button("English to Encrypted");
Text textResult = new Text("Welcome to the Converter App!");
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Package Calculator");
flowPane.setPadding(new Insets(10, 10, 10, 10));
flowPane.setHgap(10);
flowPane.setVgap(15);
flowPane.setAlignment(Pos.CENTER);
buttonH2D.setOnAction(this::calculateHex);
buttonE2E.setOnAction(this::calculateEncrypted);
textFieldMain.setPrefWidth(150);
flowPane.getChildren().addAll(
textInstructions,
textFieldMain,
buttonH2D, buttonE2E,
textResult
);
primaryStage.setScene(new Scene(flowPane, 250, 200));
primaryStage.setResizable(false);
primaryStage.show();
}
private void calculateHex(ActionEvent actionEvent) {
long input = Converter.hex2Decimal(textFieldMain.getText());
if (input == -1) {
textResult.setText("Invalid input");
}
else {
textResult.setText(Long.toString(input));
}
}
private void calculateEncrypted(ActionEvent actionEvent) {
textResult.setText(Converter.english2Encrypted(textFieldMain.getText()));
}
}

View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\ProgrammingProjects\JavaProjects\JavaYear1\Assignment11\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1 @@
<html>Simple <b>Java</b> application that includes a class with <code>main()</code> method</html>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,10 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="133" name="Java" />
</Languages>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectKey">
<option name="state" value="project://e2804f05-5315-4fc6-a121-c522a6c26470" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment11.iml" filepath="$PROJECT_DIR$/Assignment11.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,3 @@
<template>
<input-field default="com.company">IJ_BASE_PACKAGE</input-field>
</template>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,50 @@
import java.util.Scanner;
/**
* Simple test stats
* @author Isaac Shoebottom (3429069)
*/
public class ClassGrades {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long testScore;
long numberOfA = 0;
long numberOfB = 0;
long numberOfC = 0;
long numberOfD = 0;
long numberOfF = 0;
do {
System.out.print("Enter test score: ");
testScore = scan.nextLong();
if (testScore > 100) {
System.out.println("Please enter a test score within the range 0-100");
}
else {
if (testScore >= 85) {
numberOfA++;
}
else if (testScore >= 70) {
numberOfB++;
}
else if (testScore >= 55) {
numberOfC++;
}
else if (testScore >= 45) {
numberOfD++;
}
else if (testScore >= 0) {
numberOfF++;
}
}
} while (testScore >= 0);
System.out.println("Number of A's: " + numberOfA);
System.out.println("Number of B's: " + numberOfB);
System.out.println("Number of C's: " + numberOfC);
System.out.println("Number of D's: " + numberOfD);
System.out.println("Number of F's: " + numberOfF);
}
}

View File

@ -0,0 +1,74 @@
import java.util.Scanner;
/**
* Sideways histogram for tests
* @author Isaac Shoebottom (3429069)
*/
public class ClassGradesHistogram {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long testScore;
long numberOfA = 0;
long numberOfB = 0;
long numberOfC = 0;
long numberOfD = 0;
long numberOfF = 0;
do {
System.out.print("Enter test score: ");
testScore = scan.nextLong();
if (testScore > 100) {
System.out.println("Please enter a test score within the range 0-100");
} else {
if (testScore >= 85) {
numberOfA++;
} else if (testScore >= 70) {
numberOfB++;
} else if (testScore >= 55) {
numberOfC++;
} else if (testScore >= 45) {
numberOfD++;
} else if (testScore >= 0) {
numberOfF++;
}
}
} while (testScore >= 0);
System.out.println("Scores");
System.out.print("A\t\t|");
while (numberOfA > 0) {
System.out.print('*');
numberOfA--;
}
System.out.println();
System.out.print("B\t\t|");
while (numberOfB > 0) {
System.out.print('*');
numberOfB--;
}
System.out.println();
System.out.print("C\t\t|");
while (numberOfC > 0) {
System.out.print('*');
numberOfC--;
}
System.out.println();
System.out.print("D\t\t|");
while (numberOfD > 0) {
System.out.print('*');
numberOfD--;
}
System.out.println();
System.out.print("F\t\t|");
while (numberOfF > 0) {
System.out.print('*');
numberOfF--;
}
System.out.println();
System.out.println("\t\t" + "===============================");
System.out.println("\t\t" + "+ + + +");
System.out.println("\t\t" + "0 10 20 30");
}
}

View File

@ -0,0 +1,82 @@
import java.util.Scanner;
/**
* Vertical histogram for tests
* @author Isaac Shoebottom (3429069)
*/
public class ClassGradesHistogramVertical {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long testScore;
long numberOfA = 0;
long numberOfB = 0;
long numberOfC = 0;
long numberOfD = 0;
long numberOfF = 0;
do {
System.out.print("Enter test score: ");
testScore = scan.nextLong();
if (testScore > 100) {
System.out.println("Please enter a test score within the range 0-100");
} else {
if (testScore >= 85) {
numberOfA++;
} else if (testScore >= 70) {
numberOfB++;
} else if (testScore >= 55) {
numberOfC++;
} else if (testScore >= 45) {
numberOfD++;
} else if (testScore >= 0) {
numberOfF++;
}
}
} while (testScore >= 0);
for (int i = 30; i > 0; i--) {
if (i == 30 | i == 20 | i == 10)
System.out.print(i+ "+");
System.out.print("\t| ");
if (numberOfA >= i) {
System.out.print('*');
}
else {
System.out.print(' ');
}
System.out.print(' ');
if (numberOfB >= i) {
System.out.print('*');
}
else {
System.out.print(' ');
}
System.out.print(' ');
if (numberOfC >= i) {
System.out.print('*');
}
else {
System.out.print(' ');
}
System.out.print(' ');
if (numberOfD >= i) {
System.out.print('*');
}
else {
System.out.print(' ');
}
System.out.print(' ');
if (numberOfF >= i) {
System.out.print('*');
}
else {
System.out.print(' ');
}
System.out.print(' ');
System.out.println();
}
System.out.println("0+\t===========");
System.out.println("\t A B C D F");
}
}

View File

@ -0,0 +1,67 @@
/**
* Array utils for ints
* @author Isaac Shoebottom (3429069)
*/
public class IntArrayUtil {
/**
* Appends an array to another array
* @param arrA First array in append
* @param arrB Second array in append
* @return Appended array
*/
public static int[] append (int[] arrA, int[] arrB) {
int appendedLength = arrA.length + arrB.length;
int[] appended = new int[appendedLength];
for(int i = 0; i < arrA.length; i++) {
appended[i] = arrA[i];
}
for(int i = 0; i < arrB.length; i++) {
appended[i + arrA.length] = arrB[i];
}
return appended;
}
/**
* Reverse the order of elements in a string
* @param arr The array to be reversed
* @return The reversed array
*/
public static int[] reverse (int[] arr) {
int[] reversed = new int[arr.length];
for(int i =0; i<arr.length; i++ ) {
reversed[i] = arr[i];
}
for(int i = 0; i < arr.length/2; i++) {
int temp = reversed[i];
reversed[i] = arr[(arr.length-1) - i];
reversed[(arr.length-1) - i] = temp;
}
return reversed;
}
/**
* Subtracts every odd index from a string from every even index
* @param arr The array to perform math on
* @return The alternating sum of the array
*/
public static int alternatingSum (int[] arr) {
int positives = 0;
int negatives = 0;
boolean isPos = true;
for (int j : arr)
if (isPos) {
positives += j;
isPos = false;
} else {
negatives += j;
isPos = true;
}
return positives-negatives;
}
}

View File

@ -0,0 +1,21 @@
import java.util.Arrays;
public class IntArrayUtilDriver {
public static void main(String[] args) {
int[] array1 = {1, 4 ,9, 16};
int[] array2 = {9, 7, 4, 9 ,11};
int[] array3 = IntArrayUtil.append(array1, array2);
System.out.println("These are the original strings");
System.out.println(Arrays.toString(array1));
System.out.println(Arrays.toString(array2));
System.out.println(Arrays.toString(array3));
System.out.println("These are the modified strings");
System.out.println(Arrays.toString(IntArrayUtil.append(array1, array2)));
System.out.println(Arrays.toString(IntArrayUtil.reverse(array3)));
System.out.println(IntArrayUtil.alternatingSum(array3));
}
}

View File

@ -0,0 +1,11 @@
public class Pattern {
public static void main(String[] args) {
for (int i = 10; i > 0; i--) {
for (int j = 1; j <= i; j++) {
System.out.print('*');
}
System.out.println();
}
}
}

View File

@ -0,0 +1,19 @@
/**
* Inverted Stairs
* @author Isaac Shoebottom (3429069)
*/
public class PatternInverted {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int a = 9; a > i; a--) {
System.out.print(' ');
}
for (int j = 1; j <= i; j++) {
System.out.print('*');
}
System.out.println();
}
}
}

View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\ProgrammingProjects\JavaProjects\JavaYear1\Assignment12\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment12.iml" filepath="$PROJECT_DIR$/Assignment12.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resource" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,13 @@
5
rrrcfieeeindtsndedogxceht
3
kcnanaehrduowahtrelilngaaxyttnipsivofct
7
mehnteeoumtaotpelunosisrcinmnozbozktageshsoeorlrpeowtnuo
4
xdutenkyeevnotomhooxxnyioweuoerymessngot
6
xnodithbonttchonyecneieejplmaompilro
2
aoerniewlltnroiryounfmawibeargadct
0

View File

@ -0,0 +1,73 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
* Decodes encrypted text in a specific format
* @author Isaac Shoebottom (3429069)
*/
public class Decoder {
public static void main(String[] args) throws FileNotFoundException {
Scanner scanFile = new Scanner(new File(args[0]));
int cycleCount = 0;
scanFile.useDelimiter("\\A");
String in = scanFile.next();
String[] codes = in.split("\\r?\\n");
for (String i: codes) {
if (i.length() > 1) {
int columns = Integer.parseInt(codes[cycleCount * 2]);
int rows = codes[cycleCount * 2 + 1].length() / columns;
char[][] decode = new char[rows][columns];
char[] chars = i.toCharArray();
int charCounter = 0;
for (int k = 0; k < columns; k++) {
if (k % 2 != 0) {
for (int j = 0; j < rows; j++) {
decode[j][k] = chars[charCounter];
charCounter++;
}
}
else {
for (int j = rows - 1; j > -1; j--) {
decode[j][k] = chars[charCounter];
charCounter++;
}
}
}
charCounter = 0;
char[] decodedChar = new char[i.length()];
for (int j = 0; j < rows; j++) {
if (j % 2 == 0) {
for (int k = 0; k < columns; k++) {
decodedChar[charCounter] = decode[j][k];
charCounter++;
}
}
else {
for (int k = columns - 1; k > -1; k--) {
decodedChar[charCounter] = decode[j][k];
charCounter++;
}
}
}
cycleCount++;
String output = String.valueOf(decodedChar);
System.out.println(output);
}
else if (i.equals("0")) {
break;
}
}
}
}

View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../:\ProgrammingProjects\JavaProjects\JavaYear1\Assignment12Q2\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment12Q2.iml" filepath="$PROJECT_DIR$/Assignment12Q2.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,47 @@
/**
* This class holds info for the lent item
* @author Isaac Shoebottom (3429069)
*/
public class LendingItem {
private final String description;
private final double price;
private final boolean recommended;
/**
* Constructor for items
* @param description Description of item
* @param price The price of the item
* @param recommended If the item is recommended or not
*/
public LendingItem(String description, double price, boolean recommended) {
this.description = description;
this.price = price;
this.recommended = recommended;
}
/**
* Gets the description of item
* @return The item description
*/
public String getDescription() {
return description;
}
/**
* Gets the price of the item
* @return The price of the item
*/
public double getPrice() {
return price;
}
/**
* Gets if the item is recommended by the book club
* @return Boolean of if the item is recommended by the book club
*/
public boolean isBookClubRecommended() {
return recommended;
}
}

View File

@ -0,0 +1,278 @@
import java.text.NumberFormat;
/**
* Test driver class to test the ResidentMember, ShortTermResidentMember
* and LendingItem classes.
*/
public class LendingLibraryTestDriver {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getCurrencyInstance();
//*********************************************************************************
System.out.println("\n*** Test case #1: Create a Tenant object & test accessors");
ResidentMember maria = new ResidentMember("Maria Melani", 152, "555-1234");
System.out.println("Name: " + maria.getName()
+ "\nAppt #: " + maria.getRoomNumber()
+ "\nPhone: " + maria.getPhoneNumber()
+ "\nMember #: " + maria.getMembershipNumber());
LendingItem[] mariasItemList = maria.getSignedOutItems();
if (mariasItemList.length == 0) {
System.out.println("Correct result: Maria has zero lending items.");
} else {
System.out.println(">> ERROR: Maria has more than zero lending items.");
}
//*********************************************************************************
System.out.println
("\n*** Test case #2: Create a ShortTermResidentMember object & test accessors");
ShortTermResidentMember tommy = new ShortTermResidentMember("Tommy Black",
302,
"555-4321",
"Dec. 15, 2020");
System.out.println("Name: " + tommy.getName()
+ "\nAppt #: " + tommy.getRoomNumber()
+ "\nPhone: " + tommy.getPhoneNumber()
+ "\nMember #: " + tommy.getMembershipNumber()
+ "\nDeparts: " + tommy.getDepartureDate());
LendingItem[] tommysItemList = tommy.getSignedOutItems();
if (tommysItemList.length == 0) {
System.out.println("Correct result: Tommy has zero lending items.");
} else {
System.out.println(">> ERROR: Tommy has more than zero lending items.");
}
//*********************************************************************************
System.out.println("\n*** Test case #3: Automatically generate a member number");
ResidentMember testMember = new ResidentMember("Test", 1, "455-1111");
if (testMember.getMembershipNumber() == 10002) {
System.out.println("Correct result: 10002 is the correct member number.");
} else {
System.out.println(">> ERROR: Invalid member number: " +
testMember.getMembershipNumber());
}
//*********************************************************************************
System.out.println
("\n*** Test case #4: Create a LendingItem object & test accessors");
// Create several LendingItem objects and test the first one
final int MAXITEMS = 8;
LendingItem[] testItemList = new LendingItem[MAXITEMS + 1];
String[] testItemDescription = {"Lean In - Sheryl Sandberg - BOOK",
"Maclean's - 23/11/2020 - MAGAZINE",
"Headstrong: 52 Women Who Changed Science and the World - Rachel Swaby - BOOK",
"The Time Machine - H.G. Wells - BOOK",
"The Confidence Code - Katty Kay & Claire Shipman - BOOK",
"The Immortal Life of Henrietta Lacks - Rebecca Skloot - BOOK",
"Grit - Angela Duckworth - BOOK",
"Yoga Journal - October 2020 - MAGAZINE",
"Wild - Cheryl Strayed - BOOK"};
for (int i = 0; i <= MAXITEMS; i++) {
testItemList[i] = new LendingItem(testItemDescription[i],
10.00 + (i * 0.25), // Made-up prices
(i % 2) == 0); // Every 2nd item is recommended
} // end for loop
System.out.println("Description: " + testItemList[0].getDescription()
+ "\nOrig. Price: " + formatter.format(testItemList[0].getPrice())
+ "\nBook Club Recommended: " + testItemList[0].isBookClubRecommended());
//*********************************************************************************
System.out.println("\n*** Test case #5: Change phone number for both Resident types");
String testPhone1 = "555-5566";
String testPhone2 = "555-1212";
maria.setPhoneNumber(testPhone1);
tommy.setPhoneNumber(testPhone2);
if (maria.getPhoneNumber().equals(testPhone1)) {
System.out.println("Correct result: Maria's phone number successfully changed.");
} else {
System.out.println(">> ERROR: Maria's phone number is incorrect: "
+ maria.getPhoneNumber());
}
if (tommy.getPhoneNumber().equals(testPhone2)) {
System.out.println("Correct result: Tommy's phone number successfully changed.");
} else {
System.out.println(">> ERROR: Tommy's phone number is incorrect: "
+ tommy.getPhoneNumber());
}
//*********************************************************************************
System.out.println("\n*** Test case #6: Sign out one LendingItem");
if (maria.signOut(testItemList[0])) {
System.out.println("Correct result: Maria signed out an item successfully.");
mariasItemList = maria.getSignedOutItems();
if (mariasItemList.length == 1) {
System.out.println("Correct result: Maria has one lending item.");
} else {
System.out.println(">> ERROR: Maria has other than one lending item.");
}
} else {
System.out.println(">> ERROR: Maria was unable to sign out an item.");
}
//*********************************************************************************
System.out.println("\n*** Test case #7: Sign out multiple LendingItems");
boolean successfulSignOut = true;
for (int i = 1; i <= 2; i++) {
successfulSignOut = successfulSignOut && maria.signOut(testItemList[i]);
}
if (successfulSignOut) {
System.out.println("Correct result: Maria signed out two more items successfully.");
mariasItemList = maria.getSignedOutItems();
if (mariasItemList.length == 3) {
System.out.println("Correct result: Maria has three lending items.");
} else {
System.out.println(">> ERROR: Maria has other than three lending items.");
}
} else {
System.out.println(">> ERROR: Maria was unable to sign out two more items.");
}
//*********************************************************************************
System.out.println("\n*** Test case #8: Intentionally exceed the sign out limit");
for (int i = 3; i < MAXITEMS; i++) {
maria.signOut(testItemList[i]);
}
if (!maria.signOut(testItemList[MAXITEMS])) {
System.out.println("Correct result: Maria was prevented from signing out more than "
+ MAXITEMS + " lending items.");
} else {
System.out.println(">> ERROR: Maria was able to sign out more than "
+ MAXITEMS + " lending items.");
}
//*********************************************************************************
System.out.println
("\n*** Test case #9: A short-term resident tries to sign out a recommended item");
LendingItem tommysItem = null;
for (int i = 0; i < 2; i++) {
if (tommy.signOut(testItemList[i])) {
tommysItem = testItemList[i]; // Remember this for Test case #10
if (testItemList[i].isBookClubRecommended()) {
System.out.println
(">> ERROR: Tommy was able to sign out a book club recommended item.");
} else {
System.out.println
("Correct result: Tommy was able to sign out a non recommended item.");
}
} else {
if (testItemList[i].isBookClubRecommended()) {
System.out.println
("Correct result: Tommy was prevented from signing out a recommended item.");
} else {
System.out.println
(">> ERROR: Tommy was prevented from signing out a non recommended item.");
}
}
}//end for
//*********************************************************************************
System.out.println
("\n*** Test case #10: Returning the only item that was signed out");
int tommyListLength = tommy.getSignedOutItems().length;
if (tommy.returnItem(tommysItem)) {
System.out.println("Correct result: Tommy's item was successfully returned.");
} else {
System.out.println(">> ERROR: Tommy's item was not successfully returned.");
}
if (tommy.getSignedOutItems().length == tommyListLength - 1) {
System.out.println("Correct result: Tommy's list length changed appropriately.");
} else {
System.out.println(">> ERROR: Tommy's list length did not change appropriately.");
}
//*********************************************************************************
System.out.println("\n*** Test case #11: Returning an item that was not signed out");
if (tommy.returnItem(testItemList[3])) {
System.out.println(">> ERROR: Returned an item that was not signed out.");
} else {
System.out.println
("Correct result: Unsuccessful attempt to return an item that was not signed out.");
}
//*********************************************************************************
System.out.println
("\n*** Test case #12: Returning the first item that was signed out");
int mariaListLength = maria.getSignedOutItems().length;
if (maria.returnItem(testItemList[0])) {
System.out.println("Correct result: Maria's first item was successfully returned.");
} else {
System.out.println(">> ERROR: Maria's first item was not successfully returned.");
}
if (maria.getSignedOutItems().length == mariaListLength - 1) {
System.out.println("Correct result: Maria's list length changed appropriately.");
} else {
System.out.println(">> ERROR: Maria's list length did not change appropriately.");
}
System.out.println
("\nConfirm return: Lean In should be absent from the following list:");
mariasItemList = maria.getSignedOutItems();
for (int i = 0; i < mariasItemList.length; i++) {
System.out.println(mariasItemList[i].getDescription());
}
//*********************************************************************************
System.out.println("\n*** Test case #13: Returning a mid-list item");
mariaListLength = maria.getSignedOutItems().length;
if (maria.returnItem(testItemList[3])) {
System.out.println("Correct result: The Time Machine was successfully returned.");
} else {
System.out.println(">> ERROR: The Time Machine was not successfully returned.");
}
if (maria.getSignedOutItems().length == mariaListLength - 1) {
System.out.println("Correct result: Maria's list length changed appropriately.");
} else {
System.out.println(">> ERROR: Maria's list length did not change appropriately.");
}
System.out.println
("\nConfirm return: The Time Machine should be absent from the following list:");
mariasItemList = maria.getSignedOutItems();
for (int i = 0; i < mariasItemList.length; i++) {
System.out.println(mariasItemList[i].getDescription());
}
//*********************************************************************************
System.out.println("\n************* End of Test Cases ***************\n");
} // end main method
} // end LendingTestDriver class

View File

@ -0,0 +1,113 @@
/**
* This class holds info for members
* @author Isaac Shoebottom (3429069)
*/
public class ResidentMember {
private static int membership = 9999;
private final String name;
private final int room;
private final LendingItem[] list;
private String phone;
private int bookCounter;
/**
* Constructor for members
* @param name Name of member
* @param room Room of member
* @param phone Phone of member
*/
public ResidentMember(String name, int room, String phone) {
this.name = name;
this.room = room;
this.phone = phone;
list = new LendingItem[8];
bookCounter = 0;
membership++;
}
/**
* Get the signed out items of a member
* @return The updated list item list
*/
public LendingItem[] getSignedOutItems() {
LendingItem[] updatedItemList = new LendingItem[bookCounter];
for (int i = 0; i < bookCounter; i++) {
updatedItemList[i] = list[i];
}
return updatedItemList;
}
/**
* Method to sign out items for members
* @param input The item to be lent
* @return Boolean for if the item was signed out or not
*/
public boolean signOut(LendingItem input) {
if (bookCounter < 8) {
list[bookCounter] = input;
bookCounter++;
return true;
}
return false;
}
/**
* Returns and item for members
* @param input The item to be returned
* @return Boolean if the item was returned
*/
public boolean returnItem(LendingItem input) {
boolean success = false;
for (int i = 0; i < bookCounter; i++) {
if (list[i] == input) {
list[i] = list[bookCounter - 1];
bookCounter--;
success = true;
}
}
return success;
}
/**
* Gets the name of member
* @return The name of member
*/
public String getName() {
return name;
}
/**
* Gets the room of member
* @return The room of member
*/
public int getRoomNumber() {
return room;
}
/**
* Gets the phone number of member
* @return The phone number of member
*/
public String getPhoneNumber() {
return phone;
}
/**
* Sets the phone of member
* @param phone
*/
public void setPhoneNumber(String phone) {
this.phone = phone;
}
/**
* Gets the membership number of member
* @return The membership number of member
*/
public int getMembershipNumber() {
return membership;
}
}

View File

@ -0,0 +1,43 @@
/**
* This class holds info for short term members
* @author Isaac Shoebottom (3429069)
*/
public class ShortTermResidentMember extends ResidentMember {
private final String departureDate;
/**
* Constructor for short term members
* @param name Name of short term member
* @param room Room of short term member
* @param phone Phone of short term member
* @param departureDate The departure date of short term members
*/
public ShortTermResidentMember(String name, int room, String phone, String departureDate) {
super(name, room, phone);
this.departureDate = departureDate;
}
/**
* Method to sign out items for short term members
* @param input The item to be signed out
* @return Boolean for if the item was signed out or not
*/
public boolean signOut(LendingItem input) {
if (input.isBookClubRecommended()) {
super.signOut(input);
return true;
}
return false;
}
/**
* Gets the departure date for short term members
* @return The departure date
*/
public String getDepartureDate() {
return departureDate;
}
}

View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../:\JavaProjects\JavaYear1\Assignment2\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -0,0 +1,25 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
</JetCodeStyleSettings>
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Assignment2.iml" filepath="$PROJECT_DIR$/Assignment2.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/info/ExampleFiles" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

View File

@ -0,0 +1,37 @@
/**
This class represents a Course.
@author Leah Bidlake
*/
public class Course{
//Instance variables:
//For each Course object, store its name, semester, year, and the
//number of students enrolled in the course so far.
private String name;
private String semester;
private int year;
private int students;
//The constructor creates a new Course object and initializes the
//instance variables.
public Course(String nameIn, String semesterIn, int yearIn){
name = nameIn;
semester = semesterIn;
year = yearIn;
students = 0; //no students have been added to the course
}
//This is a method that we can call on a Course object
//(Specifically, it is an accessor method). This method
//creates and returns a String containing all the information
//about the state of the object.
public String toString(){
return name +
" offered " + semester +
" " + year +
" Students: " + students;
}
}

View File

@ -0,0 +1,25 @@
/**
This is an example of a driver class; its purpose
is to try out the Course class.
@author Leah Bidlake
*/
public class CourseDriver{
public static void main(String[] args){
//Create some Course objects
Course course1 = new Course("CS1073", "Fall", 2020);
Course course2 = new Course("CS1083", "Winter", 2021);
Course course3 = new Course("MATH1013", "Summer", 2021);
//Now I can print out my courses to confirm they
//were created properly
System.out.println("course1: " + course1.toString());
System.out.println("course2: " + course2.toString());
System.out.println("course3: " + course3.toString());
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,37 @@
/**
This class represents a Course.
@author Leah Bidlake
*/
public class Course{
//Instance variables:
//For each Course object, store its name, semester, year, and the
//number of students enrolled in the course so far.
private String name;
private String semester;
private int year;
private int students;
//The constructor creates a new Course object and initializes the
//instance variables.
public Course(String nameIn, String semesterIn, int yearIn){
name = nameIn;
semester = semesterIn;
year = yearIn;
students = 0; //no students have been added to the course
}
//This is a method that we can call on a Course object
//(Specifically, it is an accessor method). This method
//creates and returns a String containing all the information
//about the state of the object.
public String toString(){
return name +
" offered " + semester +
" " + year +
" Students: " + students;
}
}

View File

@ -0,0 +1,25 @@
/**
This is an example of a driver class; its purpose
is to try out the Course class.
@author Leah Bidlake
*/
public class CourseDriver{
public static void main(String[] args){
//Create some Course objects
Course course1 = new Course("CS1073", "Fall", 2020);
Course course2 = new Course("CS1083", "Winter", 2021);
Course course3 = new Course("MATH1013", "Summer", 2021);
//Now I can print out my courses to confirm they
//were created properly
System.out.println("course1: " + course1.toString());
System.out.println("course2: " + course2.toString());
System.out.println("course3: " + course3.toString());
}
}

View File

@ -0,0 +1,3 @@
course1: CS1073 offered Fall 2020 Students: 0
course2: CS1083 offered Winter 2021 Students: 0
course3: MATH1013 offered Summer 2021 Students: 0

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More