first commit

This commit is contained in:
2019-08-13 11:40:00 -05:00
commit a03be258da
155 changed files with 1145534 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="Lab 1:jar">
<output-path>$PROJECT_DIR$/out/artifacts/Lab_1_jar</output-path>
<root id="archive" name="Lab 1.jar">
<element id="module-output" name="Lab 1" />
</root>
</artifact>
</component>

18
Labs/Lab 1/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="active-configuration" value="LOCAL_FILE:C:/Users/barnestr/OneDrive - Milwaukee School of Engineering/Documents/2018-2019/CS 2852/CS2852_checkStyle-v2.xml:MSOE-2852" />
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="location-2" value="LOCAL_FILE:C:/Users/barnestr/OneDrive - Milwaukee School of Engineering/Documents/2018-2019/CS 2852/CS2852_checkStyle-v2.xml:MSOE-2852" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

View File

@@ -0,0 +1,6 @@
This folder contains libraries copied from the "Lab 1" project.
It is managed by the CheckStyle-IDEA IDE plugin.
Do not modify this folder while the IDE is running.
When the IDE is stopped, you may delete this folder at any time. It will be recreated as needed.
In order to prevent the CheckStyle-IDEA IDE plugin from creating this folder,
uncheck the "Copy libraries from project directory" option in the CheckStyle-IDEA settings dialog.

6
Labs/Lab 1/.idea/misc.xml generated Normal file
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>

8
Labs/Lab 1/.idea/modules.xml generated Normal file
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$/Lab 1.iml" filepath="$PROJECT_DIR$/Lab 1.iml" />
</modules>
</component>
</project>

664
Labs/Lab 1/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,664 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ArtifactsWorkspaceSettings">
<artifacts-to-build>
<artifact name="Lab 1:jar" />
</artifacts-to-build>
</component>
<component name="BookmarkManager">
<bookmark url="file://$PROJECT_DIR$/src/barnestr/Picture.java" line="220" />
</component>
<component name="ChangeListManager">
<list default="true" id="76fcb0d6-a8a2-49bd-b95a-769e5cc600ba" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/Lab_1$Dot2Dot.coverage" NAME="Dot2Dot Coverage Results" MODIFIED="1537831713217" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false">
<FILTER>barnestr.*</FILTER>
</SUITE>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Dot2Dot.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Dot2DotController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="32" column="15" selection-start-line="32" selection-start-column="15" selection-end-line="32" selection-end-column="15" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Picture.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Dot.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret line="6" column="3" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="FxmlFile" />
<option value="Class" />
</list>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/barnestr/Dot.java" />
<option value="$PROJECT_DIR$/src/barnestr/Dot2DotController.java" />
<option value="$PROJECT_DIR$/src/barnestr/Dot2Dot.java" />
<option value="$PROJECT_DIR$/src/barnestr/Dot2DotController.fxml" />
<option value="$PROJECT_DIR$/src/barnestr/Picture.java" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths />
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-7" />
<option name="y" value="-7" />
<option name="width" value="2062" />
<option name="height" value="1166" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="AndroidView" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Lab 1" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 1" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 1" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 1" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 1" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 1" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="barnestr" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../Lab 5" />
<property name="project.structure.last.edited" value="Artifacts" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="org.infernus.idea.checkstyle.CheckStyleConfigurable" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="Applet" factoryName="Applet">
<option name="HEIGHT" value="0" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="WIDTH" value="0" />
</configuration>
<configuration name="Dot2Dot" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="barnestr.Dot2Dot" />
<module name="Lab 1" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="barnestr.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<patterns />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<properties />
<listeners />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file id="idea.log" enabled="true" />
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="76fcb0d6-a8a2-49bd-b95a-769e5cc600ba" name="Default" comment="" />
<created>1536069491966</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1536069491966</updated>
<workItem from="1536069495966" duration="35574000" />
<workItem from="1537147453015" duration="3592000" />
<workItem from="1537151224117" duration="30184000" />
<workItem from="1537831853813" duration="21067000" />
<workItem from="1537988605146" duration="22025000" />
<workItem from="1538486036499" duration="100000" />
<workItem from="1538525839554" duration="867000" />
<workItem from="1538526890151" duration="2473000" />
<workItem from="1538530822551" duration="3387000" />
<workItem from="1538534364189" duration="16000" />
<workItem from="1538582090524" duration="3151000" />
<workItem from="1538695364795" duration="4272000" />
<workItem from="1538703267622" duration="601000" />
<workItem from="1538956108181" duration="3387000" />
<workItem from="1538959596583" duration="871000" />
<workItem from="1538960879326" duration="4124000" />
<workItem from="1538977587586" duration="253000" />
<workItem from="1539007452644" duration="117000" />
<workItem from="1539015453005" duration="7546000" />
<workItem from="1539030343993" duration="26000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="145707000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" />
<layout>
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="right" id="Palette&#9;" order="3" />
<window_info id="Image Layers" order="2" />
<window_info anchor="right" id="Capture Analysis" order="3" />
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="right" id="Maven Projects" order="3" />
<window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Terminal" order="7" />
<window_info id="Capture Tool" order="2" />
<window_info id="Designer" order="2" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1015625" />
<window_info anchor="right" id="Database" order="3" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" />
<window_info anchor="right" id="Theme Preview" order="3" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="CheckStyle" order="7" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Find" order="1" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="39" />
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="cv" language="JAVA" />
<watch expression="dots" language="JAVA" />
<watch expression="original.dots" language="JAVA" />
</configuration>
</watches-manager>
</component>
<component name="debuggerHistoryManager">
<expressions id="watch">
<expression>
<expression-string>cv</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
</expressions>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="33" column="15" lean-forward="true" selection-start-line="33" selection-start-column="15" selection-end-line="33" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="459">
<caret line="37" selection-start-line="37" selection-end-line="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2601">
<caret line="172" selection-start-line="172" selection-end-line="172" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="59" selection-start-line="59" selection-end-line="59" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2584">
<caret line="179" column="42" lean-forward="true" selection-start-line="179" selection-start-column="42" selection-end-line="179" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="629">
<caret line="37" selection-start-line="37" selection-end-line="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2958">
<caret line="201" column="7" lean-forward="true" selection-start-line="201" selection-start-column="7" selection-end-line="201" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2601">
<caret line="172" lean-forward="true" selection-start-line="172" selection-end-line="172" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="833">
<caret line="59" selection-start-line="59" selection-end-line="59" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="714">
<caret line="60" column="34" lean-forward="true" selection-start-line="60" selection-start-column="34" selection-end-line="60" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="969">
<caret line="70" column="97" lean-forward="true" selection-start-line="70" selection-start-column="97" selection-end-line="70" selection-end-column="97" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="13" column="44" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="16" column="17" selection-start-line="16" selection-start-column="17" selection-end-line="16" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="20" selection-start-line="20" selection-end-line="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="37" column="36" selection-start-line="37" selection-start-column="36" selection-end-line="37" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="13" column="44" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="26" column="24" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="16" column="17" selection-start-line="16" selection-start-column="17" selection-end-line="16" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1071">
<caret line="63" lean-forward="true" selection-start-line="63" selection-end-line="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="13" column="44" lean-forward="true" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="26" column="24" lean-forward="true" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="16" column="17" selection-start-line="16" selection-start-column="17" selection-end-line="16" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1139">
<caret line="67" lean-forward="true" selection-end-line="67" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/Scanner.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/lang/Float.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/jre/lib/rt.jar!/sun/misc/FloatingDecimal.class" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/fxml/FXMLLoader.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/event/Event.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/Scene.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/control/MenuItem.java" />
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1071">
<caret line="63" selection-start-line="63" selection-end-line="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="13" column="44" selection-start-line="13" selection-start-column="44" selection-end-line="13" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="16" column="17" selection-start-line="16" selection-start-column="17" selection-end-line="16" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="18" column="9" lean-forward="true" selection-start-line="18" selection-start-column="9" selection-end-line="18" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/Scanner.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/lang/Float.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/jre/lib/rt.jar!/sun/misc/FloatingDecimal.class" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/control/MenuItem.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/Scene.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/ArrayList.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/Node.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/event/Event.java" />
<entry file="file://$PROJECT_DIR$/Homework2Results.txt" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/fxml/FXMLLoader.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/javafx-src.zip!/javafx/scene/control/RadioMenuItem.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_181/src.zip!/java/util/ArrayList.java" />
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret line="6" column="3" selection-start-line="6" selection-start-column="3" selection-end-line="6" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2Dot.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Dot2DotController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="32" column="15" selection-start-line="32" selection-start-column="15" selection-end-line="32" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Picture.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="23" column="13" selection-start-line="23" selection-start-column="13" selection-end-line="23" selection-end-column="13" />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<last-edited>Lab 1:jar</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
<option value="0.5" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>Lab 1</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

18
Labs/Lab 1/Lab 1.iml Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map>
<entry key="active-configuration" value="LOCAL_FILE:C:/Users/barnestr/OneDrive - Milwaukee School of Engineering/Documents/2018-2019/CS 2852/CS2852_checkStyle-v2.xml:MSOE-2852" />
</map>
</option>
</component>
<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>

4355
Labs/Lab 1/balloon.dot Normal file

File diff suppressed because it is too large Load Diff

100
Labs/Lab 1/balloon100.dot Normal file
View File

@@ -0,0 +1,100 @@
0.472, 0.25
0.296, 0.5660000000000001
0.286, 0.622
0.306, 0.7
0.38, 0.65
0.402, 0.6619999999999999
0.478, 0.64
0.51, 0.6599999999999999
0.606, 0.64
0.638, 0.6639999999999999
0.674, 0.6659999999999999
0.684, 0.652
0.73, 0.69
0.76, 0.69
0.716, 0.774
0.684, 0.776
0.664, 0.758
0.614, 0.76
0.596, 0.742
0.528, 0.758
0.53, 0.76
0.476, 0.756
0.462, 0.742
0.456, 0.752
0.388, 0.754
0.356, 0.774
0.306, 0.698
0.306, 0.712
0.402, 0.8200000000000001
0.444, 0.808
0.466, 0.8180000000000001
0.476, 0.802
0.562, 0.812
0.566, 0.806
0.614, 0.8160000000000001
0.616, 0.81
0.628, 0.8220000000000001
0.654, 0.8200000000000001
0.714, 0.778
0.636, 0.8260000000000001
0.53, 0.844
0.414, 0.8220000000000001
0.412, 0.8160000000000001
0.412, 0.8200000000000001
0.494, 0.84
0.408, 0.778
0.376, 0.6759999999999999
0.49, 0.236
0.512, 0.236
0.508, 0.272
0.504, 0.272
0.502, 0.30600000000000005
0.498, 0.30600000000000005
0.46, 0.734
0.508, 0.844
0.556, 0.83
0.598, 0.5880000000000001
0.558, 0.242
0.59, 0.244
0.692, 0.654
0.67, 0.752
0.6, 0.8280000000000001
0.568, 0.84
0.624, 0.836
0.7, 0.792
0.766, 0.6719999999999999
0.762, 0.544
0.572, 0.274
0.49, 0.268
0.468, 0.31799999999999995
0.596, 0.32399999999999995
0.464, 0.31999999999999995
0.33, 0.482
0.478, 0.22999999999999998
0.472, 0.22999999999999998
0.49, 0.15200000000000002
0.582, 0.15000000000000002
0.592, 0.242
0.74, 0.504
0.596, 0.238
0.474, 0.236
0.476, 0.21799999999999997
0.588, 0.21799999999999997
0.558, 0.16400000000000003
0.492, 0.21999999999999997
0.484, 0.20799999999999996
0.532, 0.16200000000000003
0.52, 0.16200000000000003
0.576, 0.21799999999999997
0.58, 0.20799999999999996
0.538, 0.16200000000000003
0.578, 0.16200000000000003
0.518, 0.21599999999999997
0.476, 0.21599999999999997
0.512, 0.16200000000000003
0.492, 0.16200000000000003
0.546, 0.21199999999999997
0.578, 0.19199999999999995
0.542, 0.21599999999999997
0.488, 0.17000000000000004

View File

@@ -0,0 +1,56 @@
0.286, 0.622
0.306, 0.7
0.478, 0.64
0.684, 0.652
0.76, 0.69
0.716, 0.7739999999999999
0.356, 0.7739999999999999
0.306, 0.698
0.402, 0.8200000000000002
0.7139999999999999, 0.7779999999999999
0.53, 0.844
0.412, 0.8160000000000002
0.494, 0.84
0.408, 0.7779999999999999
0.37600000000000006, 0.6759999999999999
0.49, 0.23599999999999993
0.512, 0.23599999999999993
0.45999999999999996, 0.734
0.508, 0.844
0.556, 0.8300000000000001
0.558, 0.24200000000000002
0.59, 0.24400000000000008
0.692, 0.654
0.67, 0.7520000000000001
0.568, 0.84
0.7, 0.792
0.766, 0.6719999999999999
0.762, 0.544
0.572, 0.27399999999999997
0.49, 0.26800000000000007
0.468, 0.3179999999999999
0.596, 0.32399999999999995
0.4640000000000001, 0.31999999999999995
0.33, 0.48199999999999993
0.49, 0.15200000000000008
0.582, 0.15
0.74, 0.504
0.596, 0.23800000000000002
0.474, 0.23599999999999993
0.476, 0.21800000000000005
0.588, 0.21800000000000005
0.558, 0.16400000000000006
0.492, 0.21999999999999997
0.48400000000000004, 0.208
0.532, 0.16199999999999998
0.52, 0.16199999999999998
0.576, 0.21800000000000005
0.538, 0.16199999999999998
0.578, 0.16199999999999998
0.476, 0.21599999999999997
0.512, 0.16199999999999998
0.492, 0.16199999999999998
0.546, 0.212
0.578, 0.192
0.542, 0.21599999999999997
0.48800000000000004, 0.17000000000000012

361
Labs/Lab 1/circle.dot Normal file
View File

@@ -0,0 +1,361 @@
0.9, 0.5
0.8999390780625565, 0.5069809625749134
0.8997563308076384, 0.5139597986810004
0.8994518139018295, 0.5209343824971775
0.8990256201039297, 0.5279025894976501
0.8984778792366983, 0.5348622970990633
0.8978087581473093, 0.5418113853070614
0.8970184606565288, 0.548747737362059
0.8961072274966282, 0.5556692403840262
0.8950753362380551, 0.5625737860160923
0.8939231012048832, 0.5694592710667721
0.8926508733790657, 0.576323598150618
0.8912590402935223, 0.5831646763271037
0.8897480259140942, 0.589980421737546
0.8881182905103986, 0.5967687582398671
0.8863703305156274, 0.6035276180410083
0.8845046783753276, 0.6102549423267997
0.8825219023852142, 0.6169486818890947
0.8804226065180614, 0.623606797749979
0.8782074302397267, 0.6302272617828627
0.8758770483143634, 0.6368080573302675
0.8734321705988808, 0.6433471798181201
0.8708735418267151, 0.6498426373663648
0.8682019413809762, 0.6562924513957095
0.8654181830570404, 0.6626946572303201
0.8625231148146599, 0.6690473046962798
0.8595176185196669, 0.675348458715631
0.8564026096753472, 0.6815961998958187
0.8531790371435708, 0.6877886251143563
0.8498478828557583, 0.6939238480985348
0.8464101615137756, 0.7
0.842866920280845, 0.7060152299640217
0.8392192384625704, 0.7119677056932819
0.8354682271781697, 0.7178556140060108
0.8316150290220167, 0.7236771613882987
0.8276608177155967, 0.7294305745404184
0.823606797749979, 0.7351141009169893
0.8194542040189172, 0.7407260092608193
0.8152043014426889, 0.7462645901302633
0.8108583845827884, 0.751728156419935
0.8064177772475912, 0.7571150438746157
0.8018838320891089, 0.7624236115962029
0.7972579301909577, 0.7676522425435433
0.7925414806476683, 0.7727993440249994
0.7877359201354606, 0.7778633481835989
0.7828427124746191, 0.782842712474619
0.777863348183599, 0.7877359201354605
0.7727993440249994, 0.7925414806476683
0.7676522425435433, 0.7972579301909577
0.7624236115962029, 0.8018838320891089
0.7571150438746157, 0.8064177772475912
0.751728156419935, 0.8108583845827884
0.7462645901302634, 0.8152043014426889
0.7407260092608193, 0.8194542040189172
0.7351141009169893, 0.823606797749979
0.7294305745404184, 0.8276608177155967
0.7236771613882987, 0.8316150290220168
0.7178556140060108, 0.8354682271781696
0.7119677056932819, 0.8392192384625705
0.7060152299640218, 0.842866920280845
0.7000000000000001, 0.8464101615137755
0.6939238480985348, 0.8498478828557583
0.6877886251143563, 0.8531790371435708
0.6815961998958188, 0.8564026096753472
0.675348458715631, 0.8595176185196669
0.6690473046962798, 0.8625231148146599
0.6626946572303201, 0.8654181830570404
0.6562924513957096, 0.8682019413809761
0.6498426373663648, 0.8708735418267151
0.6433471798181202, 0.8734321705988808
0.6368080573302676, 0.8758770483143634
0.6302272617828627, 0.8782074302397267
0.623606797749979, 0.8804226065180614
0.6169486818890947, 0.8825219023852142
0.6102549423267997, 0.8845046783753276
0.6035276180410083, 0.8863703305156274
0.5967687582398672, 0.8881182905103986
0.589980421737546, 0.8897480259140942
0.5831646763271038, 0.8912590402935223
0.576323598150618, 0.8926508733790657
0.5694592710667722, 0.8939231012048832
0.5625737860160924, 0.8950753362380551
0.5556692403840263, 0.8961072274966282
0.548747737362059, 0.8970184606565288
0.5418113853070614, 0.8978087581473093
0.5348622970990633, 0.8984778792366983
0.5279025894976502, 0.8990256201039297
0.5209343824971776, 0.8994518139018295
0.5139597986810004, 0.8997563308076384
0.5069809625749133, 0.8999390780625565
0.5, 0.9
0.4930190374250866, 0.8999390780625565
0.4860402013189997, 0.8997563308076384
0.47906561750282256, 0.8994518139018295
0.4720974105023499, 0.8990256201039297
0.4651377029009367, 0.8984778792366983
0.45818861469293864, 0.8978087581473093
0.45125226263794105, 0.8970184606565288
0.44433075961597385, 0.8961072274966282
0.4374262139839076, 0.895075336238055
0.43054072893322787, 0.8939231012048832
0.42367640184938204, 0.8926508733790657
0.41683532367289633, 0.8912590402935223
0.41001957826245405, 0.8897480259140942
0.40323124176013286, 0.8881182905103986
0.39647238195899165, 0.8863703305156274
0.3897450576732004, 0.8845046783753276
0.3830513181109053, 0.8825219023852142
0.37639320225002104, 0.8804226065180615
0.3697727382171374, 0.8782074302397267
0.36319194266973254, 0.8758770483143634
0.3566528201818799, 0.8734321705988808
0.35015736263363517, 0.8708735418267151
0.34370754860429054, 0.8682019413809762
0.33730534276967994, 0.8654181830570404
0.3309526953037203, 0.86252311481466
0.324651541284369, 0.8595176185196668
0.3184038001041813, 0.8564026096753472
0.31221137488564377, 0.8531790371435708
0.3060761519014652, 0.8498478828557583
0.30000000000000004, 0.8464101615137756
0.2939847700359783, 0.842866920280845
0.28803229430671806, 0.8392192384625705
0.28214438599398917, 0.8354682271781697
0.2763228386117013, 0.8316150290220168
0.2705694254595816, 0.8276608177155969
0.26488589908301075, 0.823606797749979
0.25927399073918067, 0.8194542040189171
0.25373540986973664, 0.8152043014426889
0.2482718435800651, 0.8108583845827884
0.24288495612538424, 0.8064177772475912
0.23757638840379697, 0.8018838320891087
0.2323477574564567, 0.7972579301909577
0.22720065597500066, 0.7925414806476683
0.2221366518164012, 0.7877359201354606
0.217157287525381, 0.7828427124746191
0.2122640798645395, 0.7778633481835988
0.20745851935233178, 0.7727993440249994
0.20274206980904236, 0.7676522425435434
0.19811616791089115, 0.7624236115962029
0.19358222275240883, 0.7571150438746158
0.1891416154172117, 0.7517281564199352
0.1847956985573112, 0.7462645901302634
0.18054579598108278, 0.7407260092608192
0.17639320225002103, 0.7351141009169893
0.17233918228440337, 0.7294305745404186
0.16838497097798333, 0.7236771613882987
0.1645317728218303, 0.7178556140060107
0.1607807615374296, 0.7119677056932819
0.15713307971915508, 0.7060152299640218
0.15358983848622448, 0.7
0.1501521171442417, 0.6939238480985349
0.14682096285642926, 0.6877886251143565
0.14359739032465285, 0.6815961998958188
0.14048238148033315, 0.6753484587156309
0.13747688518534001, 0.6690473046962798
0.13458181694295968, 0.6626946572303202
0.13179805861902394, 0.6562924513957097
0.12912645817328505, 0.6498426373663649
0.12656782940111927, 0.6433471798181201
0.12412295168563664, 0.6368080573302676
0.1217925697602733, 0.6302272617828628
0.11957739348193858, 0.6236067977499791
0.11747809761478578, 0.6169486818890948
0.11549532162467252, 0.6102549423267999
0.1136296694843727, 0.6035276180410084
0.11188170948960141, 0.5967687582398671
0.11025197408590587, 0.589980421737546
0.10874095970647768, 0.5831646763271037
0.10734912662093438, 0.576323598150618
0.10607689879511678, 0.5694592710667721
0.10492466376194493, 0.5625737860160924
0.10389277250337187, 0.5556692403840263
0.1029815393434712, 0.5487477373620591
0.10219124185269068, 0.5418113853070615
0.10152212076330175, 0.5348622970990634
0.10097437989607028, 0.5279025894976502
0.10054818609817046, 0.5209343824971775
0.10024366919236166, 0.5139597986810003
0.10006092193744348, 0.5069809625749134
0.09999999999999998, 0.5
0.10006092193744348, 0.49301903742508674
0.10024366919236166, 0.48604020131899967
0.10054818609817046, 0.47906561750282256
0.10097437989607028, 0.47209741050235005
0.10152212076330175, 0.4651377029009368
0.10219124185269063, 0.45818861469293876
0.1029815393434712, 0.4512522626379409
0.10389277250337187, 0.4443307596159738
0.10492466376194487, 0.4374262139839077
0.10607689879511678, 0.4305407289332278
0.10734912662093438, 0.4236764018493821
0.10874095970647768, 0.4168353236728964
0.11025197408590587, 0.410019578262454
0.11188170948960136, 0.403231241760133
0.11362966948437259, 0.39647238195899187
0.11549532162467241, 0.3897450576732004
0.11747809761478578, 0.3830513181109054
0.11957739348193858, 0.37639320225002093
0.1217925697602733, 0.3697727382171373
0.12412295168563658, 0.36319194266973254
0.12656782940111927, 0.3566528201818798
0.129126458173285, 0.35015736263363517
0.13179805861902383, 0.34370754860429054
0.13458181694295956, 0.33730534276968005
0.13747688518533996, 0.3309526953037203
0.1404823814803331, 0.3246515412843691
0.14359739032465274, 0.31840380010418146
0.1468209628564292, 0.31221137488564366
0.15015211714424165, 0.3060761519014652
0.15358983848622454, 0.29999999999999993
0.15713307971915502, 0.29398477003597834
0.16078076153742954, 0.28803229430671806
0.16453177282183035, 0.28214438599398917
0.16838497097798322, 0.2763228386117013
0.17233918228440315, 0.2705694254595816
0.17639320225002098, 0.26488589908301075
0.18054579598108278, 0.2592739907391808
0.1847956985573111, 0.25373540986973686
0.18914161541721164, 0.24827184358006493
0.19358222275240872, 0.2428849561253843
0.1981161679108912, 0.23757638840379702
0.2027420698090423, 0.2323477574564567
0.20745851935233178, 0.22720065597500066
0.21226407986453955, 0.22213665181640102
0.21715728752538094, 0.217157287525381
0.22213665181640102, 0.21226407986453966
0.22720065597500044, 0.20745851935233195
0.23234775745645658, 0.20274206980904236
0.2375763884037969, 0.19811616791089132
0.2428849561253842, 0.19358222275240883
0.24827184358006515, 0.18914161541721153
0.25373540986973675, 0.18479569855731115
0.25927399073918067, 0.18054579598108284
0.2648858990830107, 0.17639320225002103
0.2705694254595814, 0.17233918228440337
0.2763228386117011, 0.16838497097798344
0.28214438599398917, 0.16453177282183035
0.28803229430671795, 0.1607807615374296
0.2939847700359782, 0.15713307971915513
0.2999999999999998, 0.1535898384862246
0.30607615190146525, 0.15015211714424165
0.31221137488564366, 0.1468209628564292
0.31840380010418123, 0.14359739032465285
0.3246515412843689, 0.14048238148033326
0.33095269530372, 0.13747688518534007
0.33730534276967994, 0.13458181694295956
0.3437075486042904, 0.13179805861902388
0.35015736263363506, 0.12912645817328505
0.3566528201818797, 0.12656782940111933
0.3631919426697322, 0.1241229516856367
0.3697727382171373, 0.12179256976027325
0.376393202250021, 0.11957739348193858
0.38305131811090515, 0.11747809761478584
0.38974505767320045, 0.11549532162467241
0.39647238195899176, 0.11362966948437264
0.40323124176013286, 0.11188170948960141
0.4100195782624539, 0.11025197408590592
0.4168353236728961, 0.10874095970647774
0.4236764018493818, 0.10734912662093443
0.43054072893322787, 0.10607689879511678
0.4374262139839076, 0.10492466376194493
0.444330759615974, 0.10389277250337181
0.45125226263794116, 0.10298153934347115
0.45818861469293864, 0.10219124185269063
0.4651377029009367, 0.10152212076330175
0.47209741050234977, 0.10097437989607028
0.4790656175028223, 0.10054818609817046
0.48604020131899933, 0.10024366919236172
0.4930190374250866, 0.10006092193744348
0.49999999999999994, 0.09999999999999998
0.5069809625749132, 0.10006092193744348
0.5139597986810005, 0.10024366919236166
0.5209343824971776, 0.10054818609817046
0.5279025894976501, 0.10097437989607028
0.5348622970990632, 0.10152212076330175
0.5418113853070612, 0.10219124185269063
0.5487477373620591, 0.1029815393434712
0.5556692403840262, 0.10389277250337181
0.5625737860160923, 0.10492466376194487
0.569459271066772, 0.10607689879511673
0.5763235981506177, 0.10734912662093432
0.5831646763271034, 0.10874095970647768
0.589980421737546, 0.11025197408590587
0.596768758239867, 0.11188170948960136
0.6035276180410085, 0.1136296694843727
0.6102549423267998, 0.11549532162467246
0.6169486818890947, 0.11747809761478578
0.6236067977499788, 0.11957739348193852
0.6302272617828626, 0.1217925697602732
0.6368080573302672, 0.12412295168563658
0.6433471798181198, 0.12656782940111916
0.6498426373663648, 0.129126458173285
0.6562924513957094, 0.13179805861902377
0.6626946572303203, 0.13458181694295968
0.6690473046962798, 0.13747688518534007
0.675348458715631, 0.14048238148033315
0.6815961998958187, 0.1435973903246528
0.6877886251143561, 0.14682096285642915
0.6939238480985346, 0.15015211714424154
0.7000000000000001, 0.15358983848622454
0.7060152299640217, 0.15713307971915502
0.7119677056932818, 0.16078076153742954
0.7178556140060106, 0.1645317728218303
0.7236771613882985, 0.16838497097798316
0.7294305745404184, 0.17233918228440326
0.7351141009169891, 0.17639320225002098
0.7407260092608192, 0.18054579598108278
0.7462645901302634, 0.18479569855731126
0.751728156419935, 0.18914161541721164
0.7571150438746157, 0.19358222275240872
0.7624236115962029, 0.19811616791089115
0.7676522425435431, 0.20274206980904214
0.7727993440249992, 0.20745851935233156
0.7778633481835986, 0.21226407986453927
0.7828427124746189, 0.21715728752538094
0.7877359201354603, 0.22213665181640097
0.7925414806476683, 0.22720065597500066
0.7972579301909577, 0.23234775745645675
0.8018838320891089, 0.23757638840379702
0.8064177772475911, 0.24288495612538413
0.8108583845827882, 0.24827184358006488
0.8152043014426886, 0.2537354098697364
0.8194542040189172, 0.25927399073918067
0.823606797749979, 0.26488589908301063
0.8276608177155966, 0.2705694254595814
0.8316150290220166, 0.27632283861170104
0.8354682271781697, 0.28214438599398917
0.8392192384625702, 0.2880322943067177
0.8428669202808449, 0.2939847700359782
0.8464101615137753, 0.2999999999999998
0.8498478828557583, 0.3060761519014652
0.8531790371435708, 0.31221137488564366
0.8564026096753472, 0.31840380010418123
0.8595176185196669, 0.3246515412843692
0.8625231148146599, 0.33095269530371996
0.8654181830570404, 0.33730534276967994
0.8682019413809761, 0.3437075486042901
0.870873541826715, 0.35015736263363506
0.8734321705988806, 0.3566528201818797
0.8758770483143634, 0.36319194266973254
0.8782074302397267, 0.36977273821713696
0.8804226065180614, 0.37639320225002093
0.8825219023852142, 0.3830513181109055
0.8845046783753274, 0.3897450576732001
0.8863703305156274, 0.3964723819589917
0.8881182905103986, 0.40323124176013286
0.8897480259140941, 0.41001957826245383
0.8912590402935223, 0.41683532367289605
0.8926508733790657, 0.42367640184938216
0.8939231012048832, 0.4305407289332275
0.895075336238055, 0.4374262139839076
0.8961072274966282, 0.4443307596159736
0.8970184606565288, 0.45125226263794077
0.8978087581473093, 0.45818861469293864
0.8984778792366983, 0.4651377029009367
0.8990256201039297, 0.4720974105023501
0.8994518139018295, 0.4790656175028222
0.8997563308076384, 0.48604020131899967
0.8999390780625565, 0.49301903742508624
0.9, 0.4999999999999999

213
Labs/Lab 1/d2d.txt Normal file
View File

@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2018-10-08T00:47:20</date>
<millis>1538977640377</millis>
<sequence>0</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>14</thread>
<message>File successfully loaded</message>
</record>
<record>
<date>2018-10-08T00:47:48</date>
<millis>1538977668878</millis>
<sequence>1</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.341</message>
</record>
<record>
<date>2018-10-08T00:48:31</date>
<millis>1538977711661</millis>
<sequence>2</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:01.1006</message>
</record>
<record>
<date>2018-10-08T00:48:37</date>
<millis>1538977717041</millis>
<sequence>3</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:01.1120</message>
</record>
<record>
<date>2018-10-08T00:48:43</date>
<millis>1538977723693</millis>
<sequence>4</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.962</message>
</record>
<record>
<date>2018-10-08T00:48:53</date>
<millis>1538977733827</millis>
<sequence>5</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>14</thread>
<message>No file was selected to be opened</message>
</record>
<record>
<date>2018-10-08T00:48:53</date>
<millis>1538977733827</millis>
<sequence>6</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>14</thread>
<message>File successfully loaded</message>
</record>
<record>
<date>2018-10-08T00:49:38</date>
<millis>1538977778209</millis>
<sequence>7</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:49:41</date>
<millis>1538977781035</millis>
<sequence>8</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:49:44</date>
<millis>1538977784416</millis>
<sequence>9</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:49:45</date>
<millis>1538977785001</millis>
<sequence>10</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:49:49</date>
<millis>1538977789519</millis>
<sequence>11</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>14</thread>
<message>File successfully loaded</message>
</record>
<record>
<date>2018-10-08T00:49:52</date>
<millis>1538977792318</millis>
<sequence>12</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.193</message>
</record>
<record>
<date>2018-10-08T00:49:59</date>
<millis>1538977799871</millis>
<sequence>13</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.52</message>
</record>
<record>
<date>2018-10-08T00:50:03</date>
<millis>1538977803952</millis>
<sequence>14</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.61</message>
</record>
<record>
<date>2018-10-08T00:50:07</date>
<millis>1538977807155</millis>
<sequence>15</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:50:11</date>
<millis>1538977811905</millis>
<sequence>16</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:50:15</date>
<millis>1538977815642</millis>
<sequence>17</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
<record>
<date>2018-10-08T00:50:16</date>
<millis>1538977816457</millis>
<sequence>18</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>changeDotAmount</method>
<thread>14</thread>
<message>Run Time for selected operation00:00:00.0</message>
</record>
</log>

14
Labs/Lab 1/d2d.txt.1 Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2018-10-03T11:01:39</date>
<millis>1538582499712</millis>
<sequence>1</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>14</thread>
<message>File successfully loaded</message>
</record>

0
Labs/Lab 1/d2d.txt.1.lck Normal file
View File

1917
Labs/Lab 1/dove.dot Normal file

File diff suppressed because it is too large Load Diff

2241
Labs/Lab 1/magician.dot Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2018-09-16T21:47:06</date>
<millis>1537152426017</millis>
<sequence>0</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>13</thread>
<message>No file was selected to be opened</message>
</record>
<record>
<date>2018-09-16T21:47:21</date>
<millis>1537152441178</millis>
<sequence>1</sequence>
<logger>d2d</logger>
<level>INFO</level>
<class>barnestr.Dot2DotController</class>
<method>load</method>
<thread>13</thread>
<message>No file was selected to be opened</message>
</record>
</log>

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: barnestr.Dot2Dot

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.RadioMenuItem?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="780.0" prefWidth="720.0" xmlns="http://javafx.com/javafx/8.0.181" xmlns:fx="http://javafx.com/fxml/1" fx:controller="barnestr.Dot2DotController">
<children>
<MenuBar>
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" onAction="#load" text="Open" />
<MenuItem mnemonicParsing="false" onAction="#save" text="Save" />
<MenuItem mnemonicParsing="false" onAction="#close" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Draw">
<items>
<MenuItem fx:id="linesMenuItem" disable="true" mnemonicParsing="false" onAction="#linesOnly" text="Lines Only" />
<MenuItem fx:id="dotsMenuItem" disable="true" mnemonicParsing="false" onAction="#dotsOnly" text="Dots Only" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="List">
<items>
<RadioMenuItem fx:id="radioArrayList" mnemonicParsing="false" selected="true" text="ArrayList">
<toggleGroup>
<ToggleGroup fx:id="toggleList" />
</toggleGroup></RadioMenuItem>
<RadioMenuItem fx:id="radioLinkedList" mnemonicParsing="false" text="LinkedList" toggleGroup="$toggleList" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Remove">
<items>
<RadioMenuItem fx:id="radioIndexOnly" mnemonicParsing="false" selected="true" text="Index Only">
<toggleGroup>
<ToggleGroup fx:id="toggleRemove" />
</toggleGroup></RadioMenuItem>
<RadioMenuItem fx:id="radioIteratorOnly" mnemonicParsing="false" text="Iterator Only" toggleGroup="$toggleRemove" />
</items>
</Menu>
</menus>
</MenuBar>
<HBox alignment="CENTER" minHeight="35.0" minWidth="720.0" prefHeight="35.0" prefWidth="720.0">
<children>
<Label text="Number of Dots:">
<HBox.margin>
<Insets />
</HBox.margin>
</Label>
<TextField fx:id="numDotsField" onAction="#changeDotAmount">
<HBox.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</HBox.margin>
</TextField>
<Button fx:id="buttonChange" disable="true" mnemonicParsing="false" onAction="#changeDotAmount" text="Change Dots" />
<Label fx:id="labelTime" alignment="CENTER_RIGHT" text="Run Time:" textAlignment="CENTER">
<padding>
<Insets left="5.0" />
</padding>
</Label>
</children>
<VBox.margin>
<Insets />
</VBox.margin>
</HBox>
<Canvas fx:id="canvas" height="720.0" width="720.0" />
</children>
</VBox>

Binary file not shown.

Binary file not shown.

Binary file not shown.

10272
Labs/Lab 1/skull.dot Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: barnestr.Dot2Dot

View File

@@ -0,0 +1,59 @@
/*
* CS2852
* Fall 2018
* Lab 3 - Connect the Dots Generator Revisited
* Name: Trevor Barnes
* Created: 9/11/18
*/
package barnestr;
/**
* A class named Dot that holds all of the data and
* methods for a dot to be drawn on a JavaFX canvas.
*
* @author Trevor Barnes
* @version 1.0
*/
public class Dot {
private double x;
private double y;
/**
* The constructor for a Dot which requires an X and Y coordinate
*
* @param x the X coordinate of the Dot
* @param y the Y coordinate of the Dot
*/
public Dot(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
/**
* Returns the critical value of a dot by calculating the distances between the
* previous and next dot in the List.
*
* @param previous the previous Dot object in the List
* @param next the next Dot object in the List
* @return the calculated critical value as a double
*/
public double calculateCriticalValue(Dot previous, Dot next) {
double p = Math.sqrt(Math.pow((previous.getX() - getX()), 2) +
Math.pow((previous.getY() - getY()), 2));
double n = Math.sqrt(Math.pow((next.getX() - getX()), 2) +
Math.pow((next.getY() - getY()), 2));
double pn = Math.sqrt(Math.pow((previous.getX() - next.getX()), 2) +
Math.pow((previous.getY() - next.getY()), 2));
return p + n - pn;
}
}

View File

@@ -0,0 +1,37 @@
/*
* CS2852
* Fall 2018
* Lab 3 - Connect the Dots Generator Revisited
* Name: Trevor Barnes
* Created: 9/11/18
*/
package barnestr;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
/**
* The main class for Lab 1. Launches the JavaFX Application
*
* @author Trevor Barnes
* @version 1.0
*/
public class Dot2Dot extends Application {
/**
* Loads the Dot2DotController.fxml file with its controller.
*
* @param primaryStage the stage in which the application runs
* @throws Exception if there is a problem launching the program
*/
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Dot2DotController.fxml"));
primaryStage.setTitle("Dot to Dot");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.RadioMenuItem?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="780.0" prefWidth="720.0" xmlns="http://javafx.com/javafx/8.0.181" xmlns:fx="http://javafx.com/fxml/1" fx:controller="barnestr.Dot2DotController">
<children>
<MenuBar>
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" onAction="#load" text="Open" />
<MenuItem mnemonicParsing="false" onAction="#save" text="Save" />
<MenuItem mnemonicParsing="false" onAction="#close" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Draw">
<items>
<MenuItem fx:id="linesMenuItem" disable="true" mnemonicParsing="false" onAction="#linesOnly" text="Lines Only" />
<MenuItem fx:id="dotsMenuItem" disable="true" mnemonicParsing="false" onAction="#dotsOnly" text="Dots Only" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="List">
<items>
<RadioMenuItem fx:id="radioArrayList" mnemonicParsing="false" selected="true" text="ArrayList">
<toggleGroup>
<ToggleGroup fx:id="toggleList" />
</toggleGroup></RadioMenuItem>
<RadioMenuItem fx:id="radioLinkedList" mnemonicParsing="false" text="LinkedList" toggleGroup="$toggleList" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Remove">
<items>
<RadioMenuItem fx:id="radioIndexOnly" mnemonicParsing="false" selected="true" text="Index Only">
<toggleGroup>
<ToggleGroup fx:id="toggleRemove" />
</toggleGroup></RadioMenuItem>
<RadioMenuItem fx:id="radioIteratorOnly" mnemonicParsing="false" text="Iterator Only" toggleGroup="$toggleRemove" />
</items>
</Menu>
</menus>
</MenuBar>
<HBox alignment="CENTER" minHeight="35.0" minWidth="720.0" prefHeight="35.0" prefWidth="720.0">
<children>
<Label text="Number of Dots:">
<HBox.margin>
<Insets />
</HBox.margin>
</Label>
<TextField fx:id="numDotsField" onAction="#changeDotAmount">
<HBox.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</HBox.margin>
</TextField>
<Button fx:id="buttonChange" disable="true" mnemonicParsing="false" onAction="#changeDotAmount" text="Change Dots" />
<Label fx:id="labelTime" alignment="CENTER_RIGHT" text="Run Time:" textAlignment="CENTER">
<padding>
<Insets left="5.0" />
</padding>
</Label>
</children>
<VBox.margin>
<Insets />
</VBox.margin>
</HBox>
<Canvas fx:id="canvas" height="720.0" width="720.0" />
</children>
</VBox>

View File

@@ -0,0 +1,184 @@
/*
* CS2852
* Fall 2018
* Lab 3 - Connect the Dots Generator Revisited
* Name: Trevor Barnes
* Created: 9/11/18
*/
package barnestr;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.*;
import javafx.stage.FileChooser;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.LinkedList;
import java.util.ResourceBundle;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* The controller that handles all of the UI components of the Dot to Dot window
*
* @author Trevoer Barnes
* @version 3.0
*/
public class Dot2DotController implements Initializable {
private Logger logger = Logger.getLogger("d2d");
private Picture picture;
private Picture original;
@FXML
private MenuItem linesMenuItem;
@FXML
private MenuItem dotsMenuItem;
@FXML
private RadioMenuItem radioLinkedList;
@FXML
private RadioMenuItem radioIndexOnly;
@FXML
private Label labelTime;
@FXML
private Canvas canvas = new Canvas();
@FXML
private TextField numDotsField;
@FXML
private Button buttonChange;
@FXML
void changeDotAmount(ActionEvent event) {
long timeNano;
try {
if (radioIndexOnly.isSelected()) {
timeNano = picture.removeDots(Integer.parseInt(numDotsField.getText()));
} else {
timeNano = picture.removeDots2(Integer.parseInt(numDotsField.getText()));
}
picture.clearCanvas(canvas);
picture.drawDots(canvas);
picture.drawLines(canvas);
long millis = timeNano /1000000;
long second = (millis / 1000) % 60;
long minute = (millis / (1000 * 60)) % 60;
long hour = (millis / (1000 * 60 * 60)) % 24;
String time = String.format("%02d:%02d:%02d.%d", hour, minute, second, millis);
labelTime.setText("Run Time: " + time);
logger.log(Level.INFO, "Run Time for selected operation" + time);
} catch (NumberFormatException e) {
logger.log(Level.WARNING, "The input amount was not formatted correctly");
} catch (NullPointerException e) {
logger.log(Level.WARNING, "No picture is loaded to be changed");
}
}
@FXML
void close(ActionEvent event) {
Platform.exit();
}
@FXML
void dotsOnly(ActionEvent event) {
picture.clearCanvas(canvas);
picture.drawDots(canvas);
}
@FXML
void linesOnly(ActionEvent event) {
picture.clearCanvas(canvas);
picture.drawLines(canvas);
}
@FXML
void load(ActionEvent event) {
try {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Dot File");
fileChooser.getExtensionFilters()
.add(new FileChooser.ExtensionFilter("Dot Files", "*.dot"));
fileChooser.setInitialDirectory(new File(System.getProperty("user.dir")));
if (radioLinkedList.isSelected()) {
original = new Picture(new LinkedList<>());
picture = new Picture(original, new LinkedList<>());
} else {
original = new Picture(new ArrayList<>());
picture = new Picture(original, new ArrayList<>());
}
picture.load(fileChooser.showOpenDialog(null));
picture.clearCanvas(canvas);
linesMenuItem.setDisable(false);
dotsMenuItem.setDisable(false);
buttonChange.setDisable(false);
picture.drawDots(canvas);
picture.drawLines(canvas);
} catch (NullPointerException e) {
logger.log(Level.INFO, "No file was selected to be opened");
} catch (InputMismatchException e) {
logger.log(Level.WARNING, "The input data from the file was not formatted correctly");
} catch (NumberFormatException e) {
logger.log(Level.WARNING,
"The number input data from the file was not formatted correctly");
} catch (FileNotFoundException e) {
logger.log(Level.WARNING, "No file was selected to be opened");
}
logger.log(Level.INFO, "File successfully loaded");
}
@FXML
void save(ActionEvent event) {
try {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Save Dot File");
fileChooser.getExtensionFilters()
.add(new FileChooser.ExtensionFilter("Dot Files", "*.dot"));
fileChooser.setInitialDirectory(new File(System.getProperty("user.dir")));
picture.save(fileChooser.showSaveDialog(null));
} catch (FileNotFoundException e) {
logger.log(Level.WARNING, "No file location was selected to be saved to");
} catch (NullPointerException e) {
logger.log(Level.WARNING, "No picture is loaded to be saved");
}
logger.log(Level.INFO, "File successfully saved");
}
/**
* Initializes the logger file
*
* @param location location URL
* @param resources resources ResourceBundle
*/
@Override
public void initialize(URL location, ResourceBundle resources) {
try {
FileHandler handler = new FileHandler(System.getProperty("user.dir") +
File.separator + "d2d.txt");
logger.addHandler(handler);
} catch (IOException e) {
logger.severe("Could not create log file");
}
logger.setUseParentHandlers(false);
}
}

View File

@@ -0,0 +1,259 @@
/*
* CS2852
* Fall 2018
* Lab 3 - Connect the Dots Generator Revisited
* Name: Trevor Barnes
* Created: 9/11/18
*/
package barnestr;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.*;
/**
* A class named Picture that represents the entire image drawn on a JavaFX Canvas.
* This class has an ArrayList of dots loaded in from a .dot file.
* Dots and lines can also be drawn with the methods in this class.
*
* @author Trevor Barnes
* @version 3.0
*/
public class Picture {
private static final int CANVAS_SIZE = 720;
private static final int DOT_SIZE = 8;
private List<Dot> dots;
private Picture original;
/**
* The constructor for Picture that initializes the dots list
*
* @param emptyList the list of dots passed in
*/
public Picture(List<Dot> emptyList) {
this.dots = emptyList;
}
/**
* The constructor for Picture that initializes the dots list and original Picture object
*
* @param original the original Picture with the original dots
* @param emptyList the list of dots passed in
*/
public Picture(Picture original, List<Dot> emptyList) {
this.dots = emptyList;
this.original = original;
}
/**
* Loads in a .dot file's data into the ArrayList of Dots.
*
* @param file the .dot file with dot coordinates
* @throws FileNotFoundException if file is not found
*/
public void load(File file) throws FileNotFoundException {
try (Scanner in = new Scanner(file)) {
do {
String coord = in.nextLine();
double x = Double.parseDouble(coord.substring(0, coord.indexOf(","))) *
CANVAS_SIZE;
double y = Math.abs((Double.parseDouble(coord.
substring(coord.indexOf(",") + 1)) * CANVAS_SIZE) - CANVAS_SIZE);
dots.add(new Dot(x, y));
original.dots.add(new Dot(x, y));
} while (in.hasNext());
}
}
/**
* Saves the data of the dots ArrayList in a given file location as a .dot file
*
* @param file the file to be saved to
* @throws FileNotFoundException if file is not found
*/
public void save(File file) throws FileNotFoundException {
try (PrintWriter pw = new PrintWriter(file)) {
for (int i = 0; i < dots.size(); i++) {
pw.append(String.valueOf((dots.get(i).getX()) / CANVAS_SIZE));
pw.append(", ");
pw.append(String.valueOf(Math.abs(dots.get(i).getY() - CANVAS_SIZE) /
CANVAS_SIZE));
pw.append("\r\n");
}
}
}
/**
* Draws the dots using the Canvas's GraphicsContext
*
* @param canvas the canvas to be drawn on
*/
public void drawDots(Canvas canvas) {
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.BLACK);
for (int i = dots.size() - 1; i > 0; i--) {
gc.fillOval(dots.get(i).getX() - (DOT_SIZE / 2),
dots.get(i).getY() - (DOT_SIZE / 2), DOT_SIZE, DOT_SIZE);
}
}
/**
* Sets the number of dots on the image by each dots determined critical values by
* using indexed methods. The dot with the lowest critical value is removed until the number of
* desired dots is reached.
*
* @param numberDesired the number of dots requested by the user
* @return the amount of time, in nanoseconds, the operation took to complete
*/
public long removeDots(int numberDesired) {
long initialTime = System.nanoTime();
dots.clear();
for (Dot dot : original.dots) {
dots.add(dot);
}
if (numberDesired > 3) {
int removedCount = dots.size() - numberDesired;
//recalculates critical values until the removed count has been reached
for (int i = 0; i < removedCount; i++) {
//creates a double array with critical values with the new dots list size
double[] cv = new double[dots.size()];
//setting critical values for dots at each index
for (int j = 0; j < dots.size(); j++) {
//first dot
if (j == 0) {
cv[j] = dots.get(j).calculateCriticalValue(dots
.get(dots.size() - 1), dots.get(j + 1));
//last dot
} else if (j == dots.size() - 1) {
cv[j] = dots.get(j).calculateCriticalValue(dots
.get(j - 1), dots.get(0));
//all dots in between
} else {
cv[j] = dots.get(j).calculateCriticalValue(dots
.get(j - 1), dots.get(j + 1));
}
}
int index = 0;
//sets the first dot as the "default" lowest critical value
double minCValue = cv[index];
//for the length of the array, the index is set to the lowest critical value
for (int k = 0; k < cv.length; k++) {
if (cv[k] < minCValue) {
minCValue = cv[k];
index = k;
}
}
//dot with lowest CV in the list is removed at the same index as the CV in
// the CV array
dots.remove(index);
}
}
return System.nanoTime() - initialTime;
}
/**
* Sets the number of dots on the image by each dots determined critical values by
* using iterators. The dot with the lowest critical value is removed until the number of
* desired dots is reached.
*
* @param numberDesired the number of dots requested by the user
* @return the amount of time, in nanoseconds, the operation took to complete
*/
public long removeDots2(int numberDesired) {
long initialTime = System.nanoTime();
dots.clear();
for (Dot dot : original.dots) {
dots.add(dot);
}
if (numberDesired >= 3) {
int removedCount = dots.size() - numberDesired;
for (int i = 0; i < removedCount; i++) {
Iterator<Dot> iterCurrent = dots.iterator();
Iterator<Dot> iterPrev = dots.iterator();
Iterator<Dot> iterNext = dots.iterator();
Collection<Double> cv = new ArrayList<>();
iterNext.next();
for (int j = 0; iterCurrent.hasNext(); j++) {
if (j == 0) {
Iterator<Dot> iterLast = dots.iterator();
Dot lastDot = new Dot(0, 0);
while (iterLast.hasNext()) {
lastDot = iterLast.next();
}
cv.add(iterCurrent.next()
.calculateCriticalValue(lastDot, iterNext.next()));
} else if (!iterNext.hasNext()) {
Iterator<Dot> first = dots.iterator();
cv.add(iterCurrent.next()
.calculateCriticalValue(iterPrev.next(), first.next()));
} else {
cv.add(iterCurrent.next()
.calculateCriticalValue(iterPrev.next(), iterNext.next()));
}
}
Iterator<Double> iterCV = cv.iterator();
int location = 0;
double minCValue = Integer.MAX_VALUE;
for (int k = 0; iterCV.hasNext(); k++) {
double current = iterCV.next();
if (current < minCValue) {
minCValue = current;
location = k;
}
}
Iterator<Dot> iterRemove = dots.iterator();
iterRemove.next();
for (int j = 0; j < location; j++) {
iterRemove.next();
}
iterRemove.remove();
}
}
return System.nanoTime() - initialTime;
}
/**
* Draws the lines of one dot to the next in the ArrayList using the Canvas's GraphicsContext.
*
* @param canvas the canvas to be drawn on
*/
public void drawLines(Canvas canvas) {
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.beginPath();
for (int i = dots.size() - 1; i > 0; i--) {
gc.beginPath();
gc.moveTo(dots.get(i).getX(), dots.get(i).getY());
if (i + 1 < dots.size()) {
gc.lineTo(dots.get(i + 1).getX(), dots.get(i + 1).getY());
} else {
gc.lineTo(dots.get(1).getX(), dots.get(1).getY());
}
gc.closePath();
gc.stroke();
}
}
/**
* Clears the canvas by using the clearReact method for GraphicsContext.
*
* @param canvas the canvas to be cleared
*/
public void clearCanvas(Canvas canvas) {
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.clearRect(0, 0, CANVAS_SIZE, CANVAS_SIZE);
}
}

Binary file not shown.

Binary file not shown.

16
Labs/Lab 4/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

6
Labs/Lab 4/.idea/misc.xml generated Normal file
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>

8
Labs/Lab 4/.idea/modules.xml generated Normal file
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$/Lab 4.iml" filepath="$PROJECT_DIR$/Lab 4.iml" />
</modules>
</component>
</project>

124
Labs/Lab 4/.idea/uiDesigner.xml generated Normal file
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>

450
Labs/Lab 4/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,450 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="f8e91468-5a28-4878-ace1-d7486cd14b6e" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/AutoCompleter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/IndexArrayStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="e#232#233#0" expanded="true" />
<element signature="e#259#260#0" expanded="true" />
<element signature="e#315#316#0" expanded="true" />
<element signature="e#339#340#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/IndexLinkedStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/ForEachArrayStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="561">
<caret line="39" selection-start-line="39" selection-end-line="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4Controller.fxml">
<provider selected="true" editor-type-id="text-editor" />
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4Controller.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="717">
<caret line="58" selection-start-line="58" selection-end-line="58" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#906#907#0" expanded="true" />
<element signature="e#937#938#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/words.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="8" selection-start-line="11" selection-start-column="8" selection-end-line="11" selection-end-column="8" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/2000words.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="10" selection-start-line="8" selection-start-column="10" selection-end-line="8" selection-end-column="10" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/ForEachLinkedStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="e#235#236#0" expanded="true" />
<element signature="e#262#263#0" expanded="true" />
<element signature="e#318#319#0" expanded="true" />
<element signature="e#342#343#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="4" selection-start-line="4" selection-end-line="4" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Interface" />
<option value="FxmlFile" />
<option value="Class" />
</list>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/barnestr/Lab4Controller.fxml" />
<option value="$PROJECT_DIR$/src/barnestr/Lab4.java" />
<option value="$PROJECT_DIR$/src/barnestr/AutoCompleter.java" />
<option value="$PROJECT_DIR$/src/barnestr/ForEachLinkedStrategy.java" />
<option value="$PROJECT_DIR$/src/barnestr/IndexArrayStrategy.java" />
<option value="$PROJECT_DIR$/src/barnestr/IndexLinkedStrategy.java" />
<option value="$PROJECT_DIR$/src/barnestr/Lab4Controller.java" />
<option value="$PROJECT_DIR$/src/barnestr/ForEachArrayStrategy.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="953" />
<option name="width" value="974" />
<option name="height" value="1047" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Lab 4" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 4" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 4" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 4" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 4" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 4" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="barnestr" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../../2017-2018/SE 1021/Spring 2018/Lab 8 (Final Project)" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="Applet">
<option name="HEIGHT" value="0" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="WIDTH" value="0" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="TestNG">
<option name="TEST_OBJECT" value="CLASS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<properties />
<listeners />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file enabled="true" id="idea.log" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="f8e91468-5a28-4878-ace1-d7486cd14b6e" name="Default" comment="" />
<created>1538522829072</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1538522829072</updated>
<workItem from="1538522832788" duration="4678000" />
<workItem from="1538534385097" duration="2663000" />
<workItem from="1538959545398" duration="48000" />
<workItem from="1538965139317" duration="1147000" />
<workItem from="1538966507977" duration="1919000" />
<workItem from="1540438816153" duration="106000" />
<workItem from="1540438936215" duration="163000" />
<workItem from="1541641803362" duration="1730000" />
<workItem from="1541816570221" duration="335000" />
<workItem from="1554925574070" duration="505000" />
<workItem from="1554928091724" duration="159000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="13453000" />
</component>
<component name="ToolWindowManager">
<frame x="953" y="0" width="974" height="1047" extended-state="0" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25929978" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="CheckStyle" order="7" />
<window_info anchor="bottom" id="Version Control" order="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Terminal" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="bottom" id="Database Changes" order="11" show_stripe_button="false" />
<window_info anchor="bottom" id="Docker" order="12" show_stripe_button="false" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Capture Analysis" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Database" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Maven Projects" order="8" />
<window_info anchor="right" id="Maven" order="9" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="UnknownFeatures">
<option featureType="com.intellij.fileTypeFactory" implementationName="*.csv" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/../Lab 6/Lab 6.iml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/AutoCompleter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/IndexArrayStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="e#232#233#0" expanded="true" />
<element signature="e#259#260#0" expanded="true" />
<element signature="e#315#316#0" expanded="true" />
<element signature="e#339#340#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/IndexLinkedStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/ForEachArrayStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="561">
<caret line="39" selection-start-line="39" selection-end-line="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/words.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="8" selection-start-line="11" selection-start-column="8" selection-end-line="11" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/2000words.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="10" selection-start-line="8" selection-start-column="10" selection-end-line="8" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/ForEachLinkedStrategy.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" selection-start-line="7" selection-end-line="7" />
<folding>
<element signature="e#235#236#0" expanded="true" />
<element signature="e#262#263#0" expanded="true" />
<element signature="e#318#319#0" expanded="true" />
<element signature="e#342#343#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="4" selection-start-line="4" selection-end-line="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4Controller.fxml">
<provider selected="true" editor-type-id="text-editor" />
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab4Controller.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="717">
<caret line="58" selection-start-line="58" selection-end-line="58" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#906#907#0" expanded="true" />
<element signature="e#937#938#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

11
Labs/Lab 4/Lab 4.iml Normal file
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>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
package barnestr;
import java.util.List;
public interface AutoCompleter {
void initialize(String filename);
List allThatBeginsWith(String prefix);
long getLastOperationTime();
}

View File

@@ -0,0 +1,39 @@
package barnestr;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ForEachArrayStrategy implements AutoCompleter{
ArrayList<String> entries = new ArrayList<>();
@Override
public void initialize(String filename) {
//TODO
try(Scanner in = new Scanner(new File(filename))) {
while(in.hasNext()) {
if (filename.endsWith(".csv")) {
String[] line = in.nextLine().split(",");
entries.add()
} else if (filename.endsWith(".txt")) {
entries.add(in.next());
}
}
} catch (FileNotFoundException e) {
}
}
@Override
public List allThatBeginsWith(String prefix) {
return null;
}
@Override
public long getLastOperationTime() {
return 0;
}
}

View File

@@ -0,0 +1,20 @@
package barnestr;
import java.util.List;
public class ForEachLinkedStrategy implements AutoCompleter{
@Override
public void initialize(String filename) {
}
@Override
public List allThatBeginsWith(String prefix) {
return null;
}
@Override
public long getLastOperationTime() {
return 0;
}
}

View File

@@ -0,0 +1,20 @@
package barnestr;
import java.util.List;
public class IndexArrayStrategy implements AutoCompleter{
@Override
public void initialize(String filename) {
}
@Override
public List allThatBeginsWith(String prefix) {
return null;
}
@Override
public long getLastOperationTime() {
return 0;
}
}

View File

@@ -0,0 +1,20 @@
package barnestr;
import java.util.List;
public class IndexLinkedStrategy implements AutoCompleter{
@Override
public void initialize(String filename) {
}
@Override
public List allThatBeginsWith(String prefix) {
return null;
}
@Override
public long getLastOperationTime() {
return 0;
}
}

View File

@@ -0,0 +1,7 @@
package barnestr;
public class Lab4 {
public static void main(String[] args) {
}
}

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.RadioMenuItem?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="360.0" prefWidth="360.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="barnestr.Lab4Controller">
<children>
<MenuBar>
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Strategy">
<items>
<RadioMenuItem fx:id="radioArrayListIndex" mnemonicParsing="false" selected="true" text="ArrayList Index">
<toggleGroup>
<ToggleGroup fx:id="strategy" />
</toggleGroup>
</RadioMenuItem>
<RadioMenuItem fx:id="radioLinkedListIndex" mnemonicParsing="false" text="LinkedList Index" toggleGroup="$strategy" />
<RadioMenuItem fx:id="radioArrayListFor" mnemonicParsing="false" text="ArrayList For-Each" toggleGroup="$strategy" />
<RadioMenuItem fx:id="radioLinkedListFor" mnemonicParsing="false" text="LinkedList For-Each" toggleGroup="$strategy" />
</items>
</Menu>
</menus>
</MenuBar>
<VBox prefHeight="330.0" prefWidth="340.0">
<children>
<Label text="Search:" />
<TextField fx:id="textSearch" prefWidth="300.0">
<font>
<Font size="16.0" />
</font>
</TextField>
<Label text="Matches:">
<padding>
<Insets top="5.0" />
</padding>
</Label>
<TextArea fx:id="textMatches" prefHeight="230.0" prefWidth="340.0">
<font>
<Font size="16.0" />
</font>
</TextArea>
<BorderPane prefHeight="25.0" prefWidth="340.0">
<left>
<Label fx:id="labelTime" text="Time Required:" BorderPane.alignment="CENTER" />
</left>
<right>
<Label fx:id="labelMatches" text="Matches found:" textAlignment="CENTER" BorderPane.alignment="CENTER" />
</right>
</BorderPane>
</children>
<VBox.margin>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</VBox.margin>
</VBox>
</children>
</VBox>

View File

@@ -0,0 +1,65 @@
package barnestr;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.stage.FileChooser;
import java.net.URL;
import java.util.ResourceBundle;
public class Lab4Controller implements Initializable{
@FXML
private RadioMenuItem radioArrayListIndex;
@FXML
private RadioMenuItem radioLinkedListIndex;
@FXML
private RadioMenuItem radioArrayListFor;
@FXML
private RadioMenuItem radioLinkedListFor;
@FXML
private ToggleGroup strategy;
@FXML
private TextField textSearch;
@FXML
private TextArea textMatches;
@FXML
private Label labelTime;
@FXML
private Label labelMatches;
@Override
public void initialize(URL location, ResourceBundle resources) {
}
@FXML
void close(ActionEvent event) {
Platform.exit();
}
@FXML
void load(ActionEvent event) {
try {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Dictionary File");
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Dictionary Files","*txt", "*.csv"));
}catch(Exception e) {
}
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

16
Labs/Lab 5/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

6
Labs/Lab 5/.idea/misc.xml generated Normal file
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>

8
Labs/Lab 5/.idea/modules.xml generated Normal file
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$/Lab 5.iml" filepath="$PROJECT_DIR$/Lab 5.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,534 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b01dc15d-e986-4519-a903-a216e6989901" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Guitar.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="113" column="33" lean-forward="true" selection-start-line="113" selection-start-column="33" selection-end-line="113" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#2137#2138#0" expanded="true" />
<element signature="e#2168#2169#0" expanded="true" />
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Lab5.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="430">
<caret line="30" column="57" lean-forward="false" selection-start-line="30" selection-start-column="57" selection-end-line="30" selection-end-column="57" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ballGame.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" column="11" lean-forward="true" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SimpleAudio.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-447">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
<folding>
<element signature="e#1941#1942#0" expanded="true" />
<element signature="e#1982#1983#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Note.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/barnestr/Lab5.java" />
<option value="$PROJECT_DIR$/src/barnestr/Guitar.java" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-7" />
<option name="width" value="974" />
<option name="height" value="1047" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="AndroidView" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="barnestr" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="audio" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\barnestr\OneDrive - Milwaukee School of Engineering\Documents\2018-2019\CS 2852\Labs\Lab 5" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Application.Lab5">
<configuration name="Lab5" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
<pattern>
<option name="PATTERN" value="barnestr.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="MAIN_CLASS_NAME" value="barnestr.Lab5" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="Lab 5" />
<envs />
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<module />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file id="idea.log" enabled="true" />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
</configuration>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Application.Lab5" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b01dc15d-e986-4519-a903-a216e6989901" name="Default" comment="" />
<created>1538486252885</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1538486252885</updated>
<workItem from="1538486254227" duration="5546000" />
<workItem from="1539018547784" duration="5163000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="10709000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="0" width="974" height="1047" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32869378" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="CheckStyle" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1920668" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39507493" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
<layout-to-restore>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.39507493" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32869378" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="CheckStyle" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1920668" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
</layout-to-restore>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/barnestr/Lab5.java</url>
<line>30</line>
<properties />
<option name="timeStamp" value="4" />
</line-breakpoint>
</breakpoints>
<option name="time" value="5" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1054">
<caret line="69" column="40" lean-forward="false" selection-start-line="69" selection-start-column="40" selection-end-line="69" selection-end-column="40" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#2137#2138#0" expanded="true" />
<element signature="e#2168#2169#0" expanded="true" />
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
<folding>
<element signature="e#1941#1942#0" expanded="true" />
<element signature="e#1982#1983#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/Scanner.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="177">
<caret line="1370" column="0" lean-forward="false" selection-start-line="1370" selection-start-column="0" selection-end-line="1370" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-447">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
<folding>
<element signature="e#1941#1942#0" expanded="true" />
<element signature="e#1982#1983#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="430">
<caret line="30" column="57" lean-forward="false" selection-start-line="30" selection-start-column="57" selection-end-line="30" selection-end-column="57" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" column="11" lean-forward="true" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="113" column="33" lean-forward="true" selection-start-line="113" selection-start-column="33" selection-end-line="113" selection-end-column="33" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#2137#2138#0" expanded="true" />
<element signature="e#2168#2169#0" expanded="true" />
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

812
Labs/Lab 5/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,812 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b01dc15d-e986-4519-a903-a216e6989901" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Guitar.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="116" column="0" lean-forward="false" selection-start-line="116" selection-start-column="0" selection-end-line="116" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Lab5.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="28" column="36" lean-forward="false" selection-start-line="28" selection-start-column="36" selection-end-line="28" selection-end-column="36" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ballGame.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SimpleAudio.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Note.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/ballGame.txt" />
<option value="$PROJECT_DIR$/src/barnestr/Guitar.java" />
<option value="$PROJECT_DIR$/src/barnestr/Lab5.java" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-7" />
<option name="width" value="974" />
<option name="height" value="1047" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="AndroidView" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="barnestr" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 5" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 5" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="audio" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../Lab 6" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\barnestr\OneDrive - Milwaukee School of Engineering\Documents\2018-2019\CS 2852\Labs\Lab 5" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Application.Lab5">
<configuration name="Lab5" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" runner="idea">
<pattern>
<option name="PATTERN" value="barnestr.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="MAIN_CLASS_NAME" value="barnestr.Lab5" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="Lab 5" />
<envs />
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<option name="HEIGHT" value="0" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="WIDTH" value="0" />
<module />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file id="idea.log" enabled="true" />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
</configuration>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Application.Lab5" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b01dc15d-e986-4519-a903-a216e6989901" name="Default" comment="" />
<created>1538486252885</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1538486252885</updated>
<workItem from="1538486254227" duration="5546000" />
<workItem from="1539018547784" duration="5154000" />
<workItem from="1539030371538" duration="4827000" />
<workItem from="1539053022740" duration="638000" />
<workItem from="1539124221144" duration="15174000" />
<workItem from="1539181646370" duration="867000" />
<workItem from="1539353653082" duration="37000" />
<workItem from="1540161021693" duration="101000" />
<workItem from="1540439224239" duration="444000" />
<workItem from="1540439707051" duration="599000" />
<workItem from="1542404490203" duration="2494000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="35881000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="0" width="974" height="1047" extended-state="0" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32976446" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="CheckStyle" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="27" />
</breakpoint-manager>
<watches-manager>
<configuration name="Application">
<watch expression="samples" language="JAVA" />
<watch expression="periodSamples" language="JAVA" />
<watch expression="numberOfSamples" language="JAVA" />
<watch expression="notes" language="JAVA" />
</configuration>
</watches-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1768">
<caret line="116" column="0" lean-forward="false" selection-start-line="116" selection-start-column="0" selection-end-line="116" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="28" column="36" lean-forward="false" selection-start-line="28" selection-start-column="36" selection-end-line="28" selection-end-column="36" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1768">
<caret line="116" column="0" lean-forward="false" selection-start-line="116" selection-start-column="0" selection-end-line="116" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="26" column="44" lean-forward="false" selection-start-line="26" selection-start-column="44" selection-end-line="26" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1768">
<caret line="114" column="0" lean-forward="false" selection-start-line="114" selection-start-column="0" selection-end-line="114" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="26" column="44" lean-forward="false" selection-start-line="26" selection-start-column="44" selection-end-line="26" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1734">
<caret line="114" column="0" lean-forward="false" selection-start-line="114" selection-start-column="0" selection-end-line="114" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="26" column="44" lean-forward="false" selection-start-line="26" selection-start-column="44" selection-end-line="26" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1666">
<caret line="110" column="0" lean-forward="false" selection-start-line="110" selection-start-column="0" selection-end-line="110" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="37" column="78" lean-forward="false" selection-start-line="37" selection-start-column="78" selection-end-line="37" selection-end-column="78" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="30" column="57" lean-forward="false" selection-start-line="30" selection-start-column="57" selection-end-line="30" selection-end-column="57" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" column="11" lean-forward="false" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="30" column="57" lean-forward="false" selection-start-line="30" selection-start-column="57" selection-end-line="30" selection-end-column="57" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" column="11" lean-forward="false" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1768">
<caret line="113" column="33" lean-forward="true" selection-start-line="113" selection-start-column="33" selection-end-line="113" selection-end-column="33" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="30" column="57" lean-forward="false" selection-start-line="30" selection-start-column="57" selection-end-line="30" selection-end-column="57" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" column="11" lean-forward="true" selection-start-line="20" selection-start-column="11" selection-end-line="20" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1054">
<caret line="69" column="40" lean-forward="false" selection-start-line="69" selection-start-column="40" selection-end-line="69" selection-end-column="40" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="22" column="13" lean-forward="false" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
<caret line="32" column="7" lean-forward="false" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/Scanner.java" />
<entry file="file://$PROJECT_DIR$/../../../../2017-2018/SE 1021/Spring 2018/Lab 1/src/barnestr/Lab1.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="15" column="3" lean-forward="true" selection-start-line="15" selection-start-column="3" selection-end-line="15" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/Note.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="38" column="0" lean-forward="false" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/edu/msoe/taylor/audio/SimpleAudio.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1173">
<caret line="82" column="0" lean-forward="false" selection-start-line="82" selection-start-column="0" selection-end-line="82" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ballGame.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="2" lean-forward="false" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Lab5.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="28" column="36" lean-forward="false" selection-start-line="28" selection-start-column="36" selection-end-line="28" selection-end-column="36" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/Guitar.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="116" column="0" lean-forward="false" selection-start-line="116" selection-start-column="0" selection-end-line="116" selection-end-column="0" />
<folding>
<element signature="method#write#0;class#Guitar#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

11
Labs/Lab 5/Lab 5.iml Normal file
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>

60
Labs/Lab 5/ballGame.txt Normal file
View File

@@ -0,0 +1,60 @@
C4 400 // Take
C5 200 // me
A4 200 // out
G4 200 // to
E4 250 // the
G4 600 // ball
D4 600 // game
C4 400 // Take
C5 200 // me
A4 200 // out
G4 200 // with
E4 200 // the
G4 1000 // crowd
A4 200 // buy
G#4 200 // me
A4 200 // some
E4 200 // pea
F4 200 //nuts
G4 200 //and
A4 400 //crac
F4 200 //er
D4 600 //jack
A4 400 //I
A4 200 //don't
A4 200 //care
B4 200 //if
C5 200 //we
D5 200 //ev
B4 200 //er
A4 200 //get
G4 200 //back
E4 200 //let
D4 200 //me
C4 400 //root
C5 200 // root
A4 200 // root
G4 200 // for
E4 200 // the
G4 800 // home
D4 400 // team
D4 200 //If
C4 400 //They
D4 200 //don't
E4 200 //win
F4 200 //it's
G4 200 //a
A4 800 //shame
A4 200 //for
B4 200 //its
C5 600 //one,
C5 600 //two,
C5 200 //three
B4 200 //strikes,
A4 200 //you're
G4 200 //out
F#4 200 //at
G4 200 //the
A4 600 //old
B4 600 //ball
C5 1000 //game

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,169 @@
package barnestr;
import java.io.File;
import java.io.IOException;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Queue;
import java.util.List;
import javax.sound.sampled.*;
import edu.msoe.taylor.audio.Note;
import edu.msoe.taylor.audio.SimpleAudio;
/**
* The Guitar class generates guitar sounds based on user input.
* <p>
* In order to use this class correctly, one must create a Guitar
* object, add all of the desired notes to the object, and then
* call the play() method. The play() method will generate a
* list of samples for all of the notes to be played (by calling
* an internal method (jaffeSmith())) and then send them to the
* audio output stream.
*
* @author t a y l o r@msoe.edu
* @version 2018.03.26_2.3
*/
public class Guitar {
/**
* Default sample rate in Hz
*/
private static final int DEFAULT_SAMPLE_RATE = 8000;
/**
* Maximum sample rate in Hz
*/
private static final int MAX_SAMPLE_RATE = 48000;
/**
* Default decay rate
*/
private static final float DEFAULT_DECAY_RATE = 0.99f;
/**
* Queue of notes
*/
private Queue<Note> notes = new ArrayDeque<>();
/**
* Sample rate in samples per second
*/
private int sampleRate;
/**
* Decay rate
*/
private float decayRate;
/**
* Constructs a new Guitar object with the default sample rate
* and decay rate.
*/
public Guitar() {
sampleRate = DEFAULT_SAMPLE_RATE;
decayRate = DEFAULT_DECAY_RATE;
}
/**
* Constructs a new Guitar object with the specified parameters.
* If an invalid sampleRate or decayRate is specified, the
* default value will be used and an error message is sent to
* System.err.
*
* @param sampleRate sample rate (between 8000 Hz and 48000 Hz)
* @param decayRate decay rate (between 0.0f and 1.0f)
*/
public Guitar(int sampleRate, float decayRate) {
this.sampleRate = sampleRate;
this.decayRate = decayRate;
}
/**
* Adds the specified note to this Guitar.
*
* @param note Note to be added.
*/
public void addNote(Note note) {
notes.add(note);
}
/**
* Generates the audio samples for the notes listed in the
* current Guitar object by calling the jaffeSmith algorithm and
* sends the samples to the speakers.
*
* @throws LineUnavailableException If audio line is unavailable.
* @throws IOException If any other input/output problem is encountered.
*/
public void play() throws LineUnavailableException, IOException {
SimpleAudio audio = new SimpleAudio();
audio.play(jaffeSmith());
}
/**
* Uses the Jaffe-Smith algorithm to generate the audio samples.
* <br />Implementation note:<br />
* Use Jaffe-Smith algorithm described on the assignment page
* to generate a sequence of samples for each note in the list
* of notes.
*
* @return List of samples comprising the pluck sound(s).
*/
private List<Float> jaffeSmith() {
List<Float> samples = new ArrayList<>();
for (Note note : notes) {
// INITIALIZATION PHASE
// Calculate samplesPerPeriod
float samplesPerPeriod = sampleRate / note.getFrequency();
// Calculate the numberOfSamples
int numberOfSamples = (sampleRate / 1000) * (int) (note.getDuration());
// Initialize a Queue<Float> of periodSamples
Queue<Float> periodSamples = new ArrayDeque<>(numberOfSamples);
for (int j = 0; j < samplesPerPeriod; j++) {
periodSamples.offer((float) ((Math.random() * 2) - 1));
}
float previousSample = 0;
// LOOPING PHASE
// Loop numberOfSamples times
for (int j = 0; j < numberOfSamples; j++) {
// Dequeue the current off of the periodSamples queue
if (!(periodSamples.peek() == null)) {
float currentSample = periodSamples.poll();
// Calculate the new sample value
float newSample = ((previousSample + currentSample) / 2) * decayRate;
samples.add(newSample);
periodSamples.offer(newSample);
previousSample = currentSample;
}
}
}
return samples;
}
/**
* Returns an array containing all the notes in this Guitar.
* OPTIONAL
*
* @return An array of Notes in the Guitar object.
*/
public Note[] getNotes() {
throw new UnsupportedOperationException("Optional method not implemented");
}
/**
* Creates a new file and writes to that file.
* OPTIONAL
*
* @param file File to write to.
* @throws IOException If any other input/output problem is encountered.
*/
public void write(File file) throws IOException {
throw new UnsupportedOperationException("Optional method not implemented");
}
}

View File

@@ -0,0 +1,66 @@
package barnestr;
import edu.msoe.taylor.audio.Note;
import javax.sound.sampled.LineUnavailableException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
/**
* Driver program for Data Structures lab assignment
*
* @author t a y l o r@msoe.edu
* @version 2018.03.26
*/
public class Lab5 {
/**
* Program that reads in notes from a text file and plays a song
* using the Guitar class to generate the sounds which are then
* played by a SimpleAudio object.
*
* @param args Ignored
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter the name of the file to be played: ");
Guitar guitar = new Guitar();
try (Scanner sc = new Scanner(new File(in.nextLine()))) {
int lineCount = 0;
while (sc.hasNextLine()) {
lineCount++;
try {
guitar.addNote(parseNote(sc.nextLine()));
} catch (NumberFormatException e) {
sc.nextLine();
System.out.println("Warning: IncorrectNumberFormat on line " + lineCount + ". Line skipped.");
}
}
guitar.play();
} catch (FileNotFoundException e) {
System.out.println("FileNotFoundException Thrown");
} catch (NumberFormatException e) {
System.out.println("NumberFormatException Thrown");
} catch (LineUnavailableException e) {
System.out.println("LineUnavailableException Thrown");
} catch (IOException e) {
System.out.println("IOException Thrown");
}
}
/**
* Returns a new Note initialized to the value represented by the specified String
*
* @param line Description of a note with scientific pitch followed by duration in milliseconds.
* @return Note represented by the String passed in. Returns null if it is unable to parse
* the note data correctly.
*/
private static Note parseNote(String line) {
Scanner input = new Scanner(line);
return new Note(input.next(), Float.parseFloat(input.next()));
}
}

Binary file not shown.

View File

@@ -0,0 +1,136 @@
package edu.msoe.taylor.audio;
/**
* The Note class describes a note. Each note must have duration and either a
* pitch specified in scientific pitch notation or a frequency. If scientific
* pitch is specified, the frequency is calculated.
*
* @see <a href="http://en.wikipedia.org/wiki/Scientific_pitch_notation">Scientific Pitch Notation</a>
*
* @author t a y l o r@msoe.edu
* @version 2018.03.26.3
*/
public class Note {
/**
* Name of note in scientific pitch notation.
*/
private final String name;
/**
* Frequency of note in cycles per second.
*/
private final float frequency;
/**
* Duration of note in milliseconds.
*/
private final float duration;
/**
* Frequency for A0
*/
private static final float A0 = 27.5f;
/**
* Constructs a new Note object with the specified pitch and duration.
* @param name Scientific pitch notation for the note
* @param duration Duration of the note in milliseconds
*/
public Note(String name, float duration) {
this.name = name;
frequency = getFrequency(name);
if(duration<0) {
throw new IllegalArgumentException("Invalid duration (cannot be negative).");
}
this.duration = duration;
}
/**
* Constructs a new Note object with the specified frequency and duration.
* @param frequency Frequency in hertz
* @param duration Duration in milliseconds
*/
public Note(float frequency, float duration) {
this.name = null;
if(frequency<0) {
throw new IllegalArgumentException("Invalid frequency (cannot be negative).");
}
this.frequency = frequency;
if(duration<0) {
throw new IllegalArgumentException("Invalid duration (cannot be negative).");
}
this.duration = duration;
}
/**
* Returns the frequency of the specified scientific pitch
* For example: ("C4") specifies middle C on a standard piano (~262Hz)
* @param scientificPitch Note from A-G, including sharps (#) with octave
* specified as "A4", "A#4", "B4", ...
* @return The frequency of the specified note.
* @see <a href="http://en.wikipedia.org/wiki/Note">wikipedia Note entry</a>
*/
private float getFrequency(String scientificPitch) {
String note = "";
int octave;
if(scientificPitch.charAt(1) == '#') {
note = scientificPitch.substring(0,2);
octave = Integer.parseInt(scientificPitch.substring(2));
} else {
note = scientificPitch.substring(0,1);
octave = Integer.parseInt(scientificPitch.substring(1));
}
double power = 0;
note = note.toUpperCase();
if(note.equals("C")) {
power = (12.0*octave-9)/12;
} else if(note.equals("C#")) {
power = (12.0*octave-8)/12;
} else if(note.equals("D")) {
power = (12.0*octave-7)/12;
} else if(note.equals("D#")) {
power = (12.0*octave-6)/12;
} else if(note.equals("E")) {
power = (12.0*octave-5)/12;
} else if(note.equals("F")) {
power = (12.0*octave-4)/12;
} else if(note.equals("F#")) {
power = (12.0*octave-3)/12;
} else if(note.equals("G")) {
power = (12.0*octave-2)/12;
} else if(note.equals("G#")) {
power = (12.0*octave-1)/12;
} else if(note.equals("A")) {
power = octave;
} else if(note.equals("A#")) {
power = (12.0*octave+1)/12;
} else if(note.equals("B")) {
power = (12.0*octave+2)/12;
} else {
throw new IllegalArgumentException("Note note in scientific pitch notation: " + note);
}
return A0*(float)Math.pow(2,power);
}
/**
* Returns the frequency (in Hz) of this note.
* @return frequency in hertz
*/
public float getFrequency() {
return frequency;
}
/**
* Returns the duration of this note.
* @return duration in milliseconds
*/
public float getDuration() {
return duration;
}
/**
* Returns a string representation of the note.
*/
public String toString() {
return "" + (name == null ? frequency : name) + " " + duration;
}
}

View File

@@ -0,0 +1,145 @@
package edu.msoe.taylor.audio;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.File;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
import java.util.List;
/**
* A facade class that simplifies interaction with the Java sound
* library. The class provides functionality for creating and playing
* sounds and saving the sounds as .wav files.
* @author t a y l o r@msoe.edu
* @version 2018.03.26.3
*/
public class SimpleAudio {
/**
* BITS_PER_SAMPLE number of bits used to represent an audio sample.
*/
private static final int BITS_PER_SAMPLE = 16;
/**
* CHANNELS number of audio channels.
*/
private static final int CHANNELS = 1;
/**
* SIGNED_BYTES are the audio samples signed.
*/
private static final boolean SIGNED_BYTES = true;
/**
* BIGENDIAN byte order format for audio samples.
*/
private static final boolean BIGENDIAN = true;
/**
* BUFFER_SIZE size of the buffer used by SimpleAudio objects.
*/
private static final int BUFFER_SIZE = 64000;
/**
* BUFFER_SIZE size of the buffer used by SimpleAudio objects.
*/
private static final int DEFAULT_SAMPLE_RATE = 8000;
/**
* format audio format information.
*/
private AudioFormat format;
/**
* Constructor
* @param sampleRate number of audio samples per second
*/
public SimpleAudio(float sampleRate) {
format = new AudioFormat(sampleRate, BITS_PER_SAMPLE, CHANNELS,
SIGNED_BYTES, BIGENDIAN);
}
/**
* Default constructor which uses the default sample rate.
*/
public SimpleAudio() {
this(DEFAULT_SAMPLE_RATE);
}
/**
* Send audio samples to the the speakers.
* @param samples Audio samples to be sent to the speakers.
* @throws LineUnavailableException
* @throws IOException
*/
public void play(List<Float> samples) throws LineUnavailableException, IOException {
AudioInputStream audioIS = toAudioInputStream(samples);
DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, format);
if(AudioSystem.isLineSupported(dataLineInfo)) {
try (SourceDataLine line = (SourceDataLine)AudioSystem.getLine(dataLineInfo)) {
line.open(format);
line.start();
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = 0;
int offset = 0;
while(bytesRead != -1) {
bytesRead = audioIS.read(buffer);
if(bytesRead>0) {
line.write(buffer, offset, bytesRead);
}
}
line.drain();
}
}
}
/**
* Save audio samples to a file using the .wav format.
* @param file File to receive the audio samples.
* @param samples Audio samples to be written to the file.
* @throws IOException
*/
public void saveWAV(File file, List<Float> samples) throws IOException {
AudioInputStream audioIS = toAudioInputStream(samples);
AudioSystem.write(audioIS, AudioFileFormat.Type.WAVE, file);
}
/**
* Convert the audio samples into an audio input stream.
* @param samples Audio samples to be used.
* @return An audio input stream containing the audio samples.
*/
private AudioInputStream toAudioInputStream(List<Float> samples) {
byte[] data = toBytes(samples);
ByteArrayInputStream byteStream = new ByteArrayInputStream(data);
long numOfFrames = data.length / format.getFrameSize();
return new AudioInputStream(byteStream, format, numOfFrames);
}
/**
* Convert the audio samples into a byte array that can be used
* to populate an AudioInputStream.
* @param samples Audio samples to be used.
* @return A byte array representation of the audio samples.
*/
private byte[] toBytes(List<Float> samples) {
byte[] byteArray = new byte[samples.size()*2];
int index = 0;
for(float sample : samples) {
sample = Math.min(1.0f, Math.max(-1.0f, sample));
int quantized = Math.round(sample * 32767.0f);
byte high = (byte)((quantized>>8) & 0xff);
byte low = (byte)(quantized & 0xff);
byteArray[index++] = high;
byteArray[index++] = low;
}
return byteArray;
}
}

16
Labs/Lab 6/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

6
Labs/Lab 6/.idea/misc.xml generated Normal file
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>

8
Labs/Lab 6/.idea/modules.xml generated Normal file
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$/Lab 6.iml" filepath="$PROJECT_DIR$/Lab 6.iml" />
</modules>
</component>
</project>

286
Labs/Lab 6/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,286 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="21e926f9-529f-43a8-8440-6c9783336547" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/Tester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1285">
<caret line="218" selection-start-line="218" selection-end-line="218" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/ArrayList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1598">
<caret line="110" selection-start-line="110" selection-end-line="110" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/LinkedList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2057">
<caret line="132" column="13" selection-start-line="132" selection-start-column="13" selection-end-line="132" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/barnestr/LinkedList.java" />
<option value="$PROJECT_DIR$/src/barnestr/Tester.java" />
<option value="$PROJECT_DIR$/src/barnestr/ArrayList.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-7" />
<option name="width" value="1294" />
<option name="height" value="1092" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane" />
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../../2017-2018/SE 1021/Spring 2018/Lab 7" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="Applet">
<option name="HEIGHT" value="0" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="WIDTH" value="0" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Tester" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="barnestr.Tester" />
<module name="Lab 6" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="barnestr.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="TestNG">
<option name="TEST_OBJECT" value="CLASS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<properties />
<listeners />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file enabled="true" id="idea.log" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="21e926f9-529f-43a8-8440-6c9783336547" name="Default" comment="" />
<created>1539091617637</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1539091617637</updated>
<workItem from="1539091621986" duration="5447000" />
<workItem from="1539124194948" duration="24000" />
<workItem from="1539623094436" duration="3705000" />
<workItem from="1540161124567" duration="6321000" />
<workItem from="1540438611626" duration="203000" />
<workItem from="1541640190668" duration="8000" />
<workItem from="1541732743102" duration="607000" />
<workItem from="1541816906710" duration="166000" />
<workItem from="1542116269451" duration="18000" />
<workItem from="1542404479186" duration="10000" />
<workItem from="1549338976965" duration="607000" />
<workItem from="1554943052694" duration="135000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="17251000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="0" width="1294" height="1092" extended-state="0" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24959481" />
<window_info id="Structure" order="1" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="CheckStyle" order="7" />
<window_info anchor="bottom" id="Terminal" order="8" />
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="10" show_stripe_button="false" />
<window_info anchor="right" id="Maven" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Capture Analysis" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Database" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Maven Projects" order="8" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$USER_HOME$/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/XUYNBAHD/LinkedList.java" />
<entry file="file://$USER_HOME$/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/XUYNBAHD/ArrayList.java" />
<entry file="file://$USER_HOME$/AppData/Local/Microsoft/Windows/INetCache/Content.Outlook/XUYNBAHD/Tester.java" />
<entry file="file://$PROJECT_DIR$/src/barnestr/Tester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1285">
<caret line="218" selection-start-line="218" selection-end-line="218" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/ArrayList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1598">
<caret line="110" selection-start-line="110" selection-end-line="110" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/LinkedList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2057">
<caret line="132" column="13" selection-start-line="132" selection-start-column="13" selection-end-line="132" selection-end-column="13" />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

11
Labs/Lab 6/Lab 6.iml Normal file
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.

View File

@@ -0,0 +1,201 @@
/*
* CS2852
* Spring 2018
* Lab 6 - Recursion
* Name:
* Created: 4/13/2018
*/
package barnestr;
import java.util.List;
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.RandomAccess;
/**
* A partial implementation of an array-based List to be used
* to practice implementing recursive methods.
*
* @param <E> The type of objects stored in the list
*/
public class ArrayList<E> implements List<E>, RandomAccess {
private Object[] data;
/**
* Constructs a list containing the elements of the specified collection,
* in the order they are returned by the collection's iterator.
* @param collection the collection whose elements are to be placed into this list
* @throws NullPointerException - if the specified collection is null
*/
public ArrayList(Collection<? extends E> collection) {
data = new Object[collection.size()];
int index = 0;
for(E element : collection) {
data[index++] = element;
}
}
/**
* Returns the number of elements in this list.
* @return the number of elements in this list.
*/
@Override
public int size() {
return data.length;
}
/**
* Returns true if this list contains the specified element.
* <p></p>
* More formally, returns <tt>true</tt> if and only if this list
* contains at least one element <tt>e</tt> such that
* <tt>(target==null ? e==null : target.equals(e))</tt>.
* @param target element whose presence in the list is to be tested
* @return true if the list contains the specified element
*/
@Override
public boolean contains(Object target) {
boolean found = false;
for(int i=0; !found && i<size(); ++i) {
found = target==null ? data[i]==null : target.equals(data[i]);
}
return found;
}
// TODO
private boolean contains(Object target, int position) {
if (position > size()) {
return false;
} else {
contains(target, position + 1);
}
return true;
}
/**
* Returns the index of the first occurrence of the specified element
* in this list, or -1 if this list does not contain the element.
* <p></p>
* More formally, returns the lowest index <tt>i</tt> such that
* <tt>(target==null ? get(i)==null : target.equals(get(i)))</tt>,
* or <tt>-1</tt> if there is no such index.
* @param target element to search for
* @return the index of the first occurrence of the specified element in this
* list, or <tt>-1</tt> if this list does not contain the element
*/
@Override
public int indexOf(Object target) {
int index = -1;
for(int i=0; index==-1 && i<size(); ++i) {
if((target==null ? data[i]==null : target.equals(data[i]))) {
index = i;
}
}
return index;
}
@Override
public boolean isEmpty() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public void clear() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public E get(int index) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public E set(int index, E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean add(E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public void add(int index, E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public E remove(int index) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean remove(Object target) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public Object[] toArray() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public Iterator<E> iterator() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public <T> T[] toArray(T[] a) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean containsAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean addAll(Collection<? extends E> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean removeAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean retainAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public int lastIndexOf(Object o) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public ListIterator<E> listIterator() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public ListIterator<E> listIterator(int index) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
throw new UnsupportedOperationException("Not implemented");
}
}

View File

@@ -0,0 +1,267 @@
/*
* CS2852
* Spring 2018
* Lab 6 - Recursion
* Name:
* Created: 4/13/2018
*/
package barnestr;
import java.util.List;
import java.util.ListIterator;
import java.util.Collection;
import java.util.Iterator;
/**
* A partial implementation of a singly linked list to be used
* to practice implementing recursive methods.
*
* @param <E> The type of objects stored in the list
*/
public class LinkedList<E> implements List<E> {
private Node<E> head;
private Node<E> tail;
/**
* Inner class that describes a node in the singly linked list.
*/
private static class Node<E> {
E value;
Node<E> next;
/**
* Constructs a node with a specified value and reference to the next node
*
* @param value Value of the element to be stored in the node
* @param next Reference to the next element in the singly linked list
*/
private Node(E value, Node<E> next) {
this.value = value;
this.next = next;
}
/**
* Constructs a node with a specified value
*
* @param value Value of the element to be stored in the node
*/
private Node(E value) {
this(value, null);
}
}
/**
* Constructs a list containing the elements of the specified collection, in
* the order they are returned by the collection's iterator.
*
* @param collection the collection whose elements are to be placed into this list
* @NullPointerException if the specified collection is <tt>null</tt>
*/
public LinkedList(Collection<? extends E> collection) {
Iterator<? extends E> itr = collection.iterator();
if (itr.hasNext()) {
head = new Node(itr.next());
tail = head;
}
Node<E> walker = head;
while (itr.hasNext()) {
walker.next = new Node(itr.next());
walker = walker.next;
}
tail = walker;
}
/**
* Returns the number of elements in this list
*
* @return the number of elements in this list
*/
@Override
public int size() {
int size = 0;
Node<E> walker = head;
while (walker != null) {
++size;
walker = walker.next;
}
return size;
}
//
/**
* Returns true if this list contains the specified element.
* <p></p>
* More formally, returns <tt>true</tt> if and only if this list contains
* at least one element <tt>e</tt> such that <tt>(o==null ? e==null : o.equals(e))</tt>.
*
* @param target element whose presence in this list is to be tested
* @return true if this list contains the specified element
*/
@Override
public boolean contains(Object target) {
Node<E> walker = head;
boolean found = false;
while (walker != null && !found) {
found = target == null ? walker.value == null : target.equals(walker.value);
walker = walker.next;
}
return found;
}
// TODO
private boolean contains(Object target, Node<E> position) {
if (position == null) {
}
return false;
}
/**
* Returns the index of the first occurrence of the specified element in this list,
* or <tt>-1</tt> if this list does not contain the element.
* <p></p>
* More formally, returns the lowest index <tt>i</tt> such that
* <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>,
* or <tt>-1</tt> if there is no such index.
*
* @param target element to search for
* @return the index of the first occurrence of the specified element in this list,
* or <tt>-1</tt> if this list does not contain the element
*/
@Override
public int indexOf(Object target) {
Node<E> walker = head;
int index = -1;
int counter = 0;
while (walker != null && index == -1) {
if (target == null ? walker.value == null : target.equals(walker.value)) {
index = counter;
}
++counter;
walker = walker.next;
}
return index;
}
/**
* Returns the element at the specified position in this list.
*
* @param index index of the element to return
* @return the element at the specified position in this list
* @throws IndexOutOfBoundsException if the index is out of range
* (index<0 || index>=size())
*/
@Override
public E get(int index) {
if (index < 0) {
throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size());
}
try {
Node<E> walker = head;
for (int i = 0; i < index; ++i) {
walker = walker.next;
}
return walker.value;
} catch (NullPointerException e) {
throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size());
}
}
@Override
public E set(int index, E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean add(E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean remove(Object target) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public void add(int index, E element) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public E remove(int index) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public void clear() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean isEmpty() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public Iterator<E> iterator() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public Object[] toArray() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public <T> T[] toArray(T[] a) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean containsAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean addAll(Collection<? extends E> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean removeAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public boolean retainAll(Collection<?> c) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public int lastIndexOf(Object o) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public ListIterator<E> listIterator() {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public ListIterator<E> listIterator(int index) {
throw new UnsupportedOperationException("Not implemented");
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
throw new UnsupportedOperationException("Not implemented");
}
}

View File

@@ -0,0 +1,218 @@
/*
* CS2852
* Spring 2017
* Lab 6 - Recursion
* Name:
* Created: 3/30/2017
*/
package barnestr;
import javax.print.attribute.IntegerSyntax;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Tests the ArrayList and LinkedList implementations for the
* CS2852 Lab 6 assignment.
*/
public class Tester {
private final static String[] EMPTY_STRINGS = {};
private final static String[] STRINGS1 = {"this"};
private final static String[] STRINGS2 = {"this", "will"};
private final static String[] STRINGS3 = {"this", "will", "be"};
private final static String[] STRINGS4 = {"this", "will", "be", "interesting"};
private final static String[] STRINGS5 = {"this", null, "will", "be", "interesting"};
private final static int[] EMPTY_INTS = {};
private final static int[] INTS1 = {-1};
private final static int[] INTS2 = {-1, 2};
private final static int[] INTS3 = {-1, 2, 8};
private final static int[] INTS4 = {-1, 2, 8, Integer.MAX_VALUE};
/**
* Calls all of the test methods
* @param ignored Not used
*/
public static void main(String[] ignored) {
String description = "ArrayList constructor collection of Strings of size: ";
test(description + 0, stringConstructor(EMPTY_STRINGS));
test(description + 1, stringConstructor(STRINGS1));
test(description + 2, stringConstructor(STRINGS2));
test(description + 3, stringConstructor(STRINGS3));
test(description + 4, stringConstructor(STRINGS4));
test(description + 5, stringConstructor(STRINGS5));
description = "ArrayList constructor collection of Integers of size: ";
test(description + 0, intConstructor(EMPTY_INTS));
test(description + 1, intConstructor(INTS1));
test(description + 2, intConstructor(INTS2));
test(description + 3, intConstructor(INTS3));
test(description + 4, intConstructor(INTS4));
description = "ArrayList contains method for ArrayList of Integers of size: ";
test(description + 0, arrayListContains(EMPTY_INTS));
test(description + 1, arrayListContains(INTS1));
test(description + 2, arrayListContains(INTS2));
test(description + 3, arrayListContains(INTS3));
test(description + 4, arrayListContains(INTS4));
description = "ArrayList indexOf method for ArrayList of Integers of size: ";
test(description + 0, arrayListIndexOf(EMPTY_INTS));
test(description + 1, arrayListIndexOf(INTS1));
test(description + 2, arrayListIndexOf(INTS2));
test(description + 3, arrayListIndexOf(INTS3));
test(description + 4, arrayListIndexOf(INTS4));
description = "LinkedList size method for LinkedList of Integers of size: ";
test(description + 0, linkedListSize(EMPTY_INTS));
test(description + 1, linkedListSize(INTS1));
test(description + 2, linkedListSize(INTS2));
test(description + 3, linkedListSize(INTS3));
test(description + 4, linkedListSize(INTS4));
description = "LinkedList contains method for LinkedList of Integers of size: ";
test(description + 0, linkedListContains(EMPTY_INTS));
test(description + 1, linkedListContains(INTS1));
test(description + 2, linkedListContains(INTS2));
test(description + 3, linkedListContains(INTS3));
test(description + 4, linkedListContains(INTS4));
description = "LinkedList indexOf method for LinkedList of Integers of size: ";
test(description + 0, linkedListIndexOf(EMPTY_INTS));
test(description + 1, linkedListIndexOf(INTS1));
test(description + 2, linkedListIndexOf(INTS2));
test(description + 3, linkedListIndexOf(INTS3));
test(description + 4, linkedListIndexOf(INTS4));
description = "LinkedList get method method for LinkedList of Integers of size: ";
test(description + 0, linkedListGet(EMPTY_INTS));
test(description + 1, linkedListGet(INTS1));
test(description + 2, linkedListGet(INTS2));
test(description + 3, linkedListGet(INTS3));
test(description + 4, linkedListGet(INTS4));
}
/**
* Displays an error if the test fails
* @param description Description of the test
* @param passed true if the test passed
*/
private static void test(String description, boolean passed) {
if(!passed) {
System.out.println("Test failed: " + description);
}
}
/**
* Tests the constructor that accepts a collection of elements.
* After the ArrayList is instantiated, the size is compared with
* the size of the collection.
* @param strings An array of Strings to be added to the ArrayList
* @return true if test passed
*/
private static boolean stringConstructor(String[] strings) {
Collection<String> input = new java.util.ArrayList<>();
for(String string : strings) {
input.add(string);
}
List<String> list = new ArrayList<>(input);
return list.size()==input.size();
}
/**
* Tests the constructor that accepts a collection of elements.
* After the ArrayList is instantiated, the size is compared with
* the size of the collection.
* @param numbers An array of ints to be added to the ArrayList
* @return true if test passed
*/
private static boolean intConstructor(int[] numbers) {
Collection<Integer> input = new java.util.ArrayList<>();
for(int number : numbers) {
input.add(number);
}
List<Integer> list = new ArrayList<>(input);
return list.size()==input.size();
}
private static boolean arrayListContains(int[] numbers) {
List<Integer> input = new java.util.ArrayList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new ArrayList<>(input);
for (int i = 0; i < list.size(); i++) {
if (!(input.contains(input.get(i)) ||
list.contains(list.get(i)))) {
return false;
}
}
return true;
}
private static boolean arrayListIndexOf(int[] numbers) {
List<Integer> input = new java.util.ArrayList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new barnestr.ArrayList<>(input);
for (int i = 0; i < list.size(); i++) {
return list.indexOf(list.get(i)) == input.indexOf(input.get(i));
}
return false;
}
private static boolean linkedListSize(int[] numbers) {
Collection<Integer> input = new java.util.LinkedList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new LinkedList<>(input);
return list.size() == input.size();
}
private static boolean linkedListContains(int[] numbers) {
List<Integer> input = new java.util.LinkedList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new LinkedList<>(input);
for (int i = 0; i < list.size(); i++) {
if (!(input.contains(input.get(i)) ||
list.contains(list.get(i)))) {
return false;
}
}
return true;
}
private static boolean linkedListIndexOf(int[] numbers) {
List<Integer> input = new java.util.LinkedList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new LinkedList<>(input);
for (int i = 0; i < list.size(); i++) {
return list.indexOf(list.get(i)) == input.indexOf(input.get(i));
}
return false;
}
private static boolean linkedListGet(int[] numbers) {
java.util.LinkedList<Integer> input = new java.util.LinkedList<>();
for (int num : numbers) {
input.add(num);
}
List<Integer> list = new LinkedList<>(input);
for (int i = 0; i < list.size(); i++) {
if (input.get(i) != list.get(i)) {
return false;
}
}
return false;
}
}

Binary file not shown.

18
Labs/Lab 7/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="active-configuration" value="LOCAL_FILE:C:/Users/barnestr/OneDrive - Milwaukee School of Engineering/Documents/2018-2019/CS 2852/CS2852_checkStyle-v2.xml:CS2852" />
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="location-2" value="LOCAL_FILE:C:/Users/barnestr/OneDrive - Milwaukee School of Engineering/Documents/2018-2019/CS 2852/CS2852_checkStyle-v2.xml:CS2852" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

View File

@@ -0,0 +1,6 @@
This folder contains libraries copied from the "Lab 7" project.
It is managed by the CheckStyle-IDEA IDE plugin.
Do not modify this folder while the IDE is running.
When the IDE is stopped, you may delete this folder at any time. It will be recreated as needed.
In order to prevent the CheckStyle-IDEA IDE plugin from creating this folder,
uncheck the "Copy libraries from project directory" option in the CheckStyle-IDEA settings dialog.

6
Labs/Lab 7/.idea/misc.xml generated Normal file
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>

8
Labs/Lab 7/.idea/modules.xml generated Normal file
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$/Lab 7.iml" filepath="$PROJECT_DIR$/Lab 7.iml" />
</modules>
</component>
</project>

424
Labs/Lab 7/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,424 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="921bb292-4a58-430b-a166-45e1ef0a2c70" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CheckStyle-IDEA-workspace">
<option name="configuration">
<map>
<entry key="last-active-plugin-version" value="5.22.1" />
</map>
</option>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/barnestr/MorseTree.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1479">
<caret line="97" column="51" selection-start-line="97" selection-start-column="51" selection-end-line="97" selection-end-column="51" />
<folding>
<element signature="e#0#3552#0" expanded="true" />
<element signature="e#1282#1283#0" expanded="true" />
<element signature="e#1337#1338#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/barnestr/MorseDecoder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="147">
<caret line="30" column="41" selection-start-line="30" selection-start-column="41" selection-end-line="30" selection-end-column="41" />
<folding>
<element signature="e#0#3191#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/encoded.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="1" selection-start-line="1" selection-start-column="1" selection-end-line="1" selection-end-column="1" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/decoded.txt">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/decoded.txt" />
<option value="$PROJECT_DIR$/src/barnestr/MorseTree.java" />
<option value="$PROJECT_DIR$/src/barnestr/MorseDecoder.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-7" />
<option name="width" value="974" />
<option name="height" value="1047" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Lab 7" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 7" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 7" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 7" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Lab 7" type="b2602c69:ProjectViewProjectNode" />
<item name="Lab 7" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="barnestr" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../../2017-2018/SE 1021/Spring 2018/Lab 4" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="org.infernus.idea.checkstyle.CheckStyleConfigurable" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="Applet">
<option name="HEIGHT" value="0" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="WIDTH" value="0" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="MorseDecoder" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="barnestr.MorseDecoder" />
<module name="Lab 7" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="barnestr.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="TestNG">
<option name="TEST_OBJECT" value="CLASS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<properties />
<listeners />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
<option name="PROGRAM_PARAMETERS" />
<predefined_log_file enabled="true" id="idea.log" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.MorseDecoder" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="921bb292-4a58-430b-a166-45e1ef0a2c70" name="Default" comment="" />
<created>1539697034625</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1539697034625</updated>
<workItem from="1539697039819" duration="2145000" />
<workItem from="1540251868903" duration="1859000" />
<workItem from="1540439100664" duration="570000" />
<workItem from="1540439687457" duration="2836000" />
<workItem from="1540504632645" duration="1221000" />
<workItem from="1540767969830" duration="599000" />
<workItem from="1540907626332" duration="88000" />
<workItem from="1541274631394" duration="23937000" />
<workItem from="1541373040628" duration="70000" />
<workItem from="1541443643737" duration="21696000" />
<workItem from="1541723696733" duration="1430000" />
<workItem from="1541725268498" duration="1325000" />
<workItem from="1555010978779" duration="46000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="57822000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.07193959" />
<window_info id="Structure" order="1" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Database Changes" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.3254818" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39721626" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="CheckStyle" order="7" />
<window_info anchor="bottom" id="Version Control" order="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Terminal" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="11" weight="0.32976446" />
<window_info anchor="right" id="Maven" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Capture Analysis" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Database" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Maven Projects" order="8" />
</layout>
<layout-to-restore>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19624217" />
<window_info id="Structure" order="1" weight="0.25" />
<window_info id="Capture Tool" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Image Layers" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.32869378" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39721626" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="8" weight="0.32976446" />
<window_info anchor="bottom" id="Version Control" order="9" show_stripe_button="false" />
<window_info anchor="bottom" id="CheckStyle" order="10" />
<window_info anchor="bottom" id="Terminal" order="11" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Maven Projects" order="4" />
<window_info anchor="right" id="Database" order="5" />
<window_info anchor="right" id="Palette&#9;" order="6" />
<window_info anchor="right" id="Capture Analysis" order="7" />
<window_info anchor="right" id="Theme Preview" order="8" />
</layout-to-restore>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="XDebuggerManager">
<watches-manager>
<configuration name="Application">
<watch expression="tree" language="JAVA" />
<watch expression="root" language="JAVA" />
<watch expression="token" language="JAVA" />
<watch expression="sc.next()" language="JAVA" />
</configuration>
</watches-manager>
</component>
<component name="editorHistoryManager">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/lang/String.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_144/src.zip!/java/util/Scanner.java" />
<entry file="file://$PROJECT_DIR$/morsecode.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="502">
<caret line="36" column="11" selection-start-line="36" selection-start-column="11" selection-end-line="36" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tree.decode(token)" />
<entry file="file://$PROJECT_DIR$/src/barnestr/MorseTree.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1479">
<caret line="97" column="51" selection-start-line="97" selection-start-column="51" selection-end-line="97" selection-end-column="51" />
<folding>
<element signature="e#0#3552#0" expanded="true" />
<element signature="e#1282#1283#0" expanded="true" />
<element signature="e#1337#1338#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/encoded.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="1" selection-start-line="1" selection-start-column="1" selection-end-line="1" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/decoded.txt">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/barnestr/MorseDecoder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="147">
<caret line="30" column="41" selection-start-line="30" selection-start-column="41" selection-end-line="30" selection-end-column="41" />
<folding>
<element signature="e#0#3191#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>Lab 7</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

11
Labs/Lab 7/Lab 7.iml Normal file
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>

5
Labs/Lab 7/decoded.txt Normal file
View File

@@ -0,0 +1,5 @@
A SPACE SHOULD BE PLACED BETWEEN EACH ENCODED CHARACTER.
A SHOULD BE PLACED BETWEEN EACH WORD.
LINE BREAKS IN THE INPUT FILE SHOULD BE REPLICATED IN THE ENCODED FILE.

5
Labs/Lab 7/encoded.txt Normal file
View File

@@ -0,0 +1,5 @@
.- | ... .--. .- -.-. . | ... .... --- ..- .-.. -.. | -... . | .--. .-.. .- -.-. . -.. | -... . - .-- . . -. | . .- -.-. .... | . -. -.-. --- -.. . -.. | -.-. .... .- .-. .- -.-. - . .-. .-.-.- |
.- | * | ... .... --- ..- .-.. -.. | -... . | .--. .-.. .- -.-. . -.. | -... . - .-- . . -. | . .- -.-. .... | .-- --- .-. -.. .-.-.- |
.-.. .. -. . | -... .-. . .- -.- ... | .. -. | - .... . | .. -. .--. ..- - | ..-. .. .-.. . | ... .... --- ..- .-.. -.. | -... . | .-. . .--. .-.. .. -.-. .- - . -.. | .. -. | - .... . | . -. -.-. --- -.. . -.. | ..-. .. .-.. . .-.-.- |

40
Labs/Lab 7/morsecode.txt Normal file
View File

@@ -0,0 +1,40 @@
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
. .-.-.-
, --..--
/ -..-.
? ..--..

View File

@@ -0,0 +1,88 @@
/*
* CS 2852
* Fall 2018
* Lab 7 - Morse Code Decoder
* Name: Trevor Barnes
* Created: 10/15/18
*/
package barnestr;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
* The main class that builds a morse tree and decodes an encoded file.
* This decoded data is then written out to another file
*
* @author Trevor Barnes
* @version 2.0
*/
public class MorseDecoder {
private static MorseTree<Character> tree = new MorseTree<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
loadDecoder(new File("morsecode.txt"));
System.out.println("Enter an input filename:");
String inputFile = in.nextLine();
System.out.println("Enter an output filename:");
String outputFile = in.nextLine();
decodeFile(inputFile, outputFile);
System.out.println("Encoded file saved in project directory");
}
/**
* Loads in a file with morse code data and builds a Morse Code decoding tree.
* @param file the Morse Code "key" file
*/
public static void loadDecoder(File file) {
try (Scanner sc = new Scanner(file)) {
while (sc.hasNext()) {
String line = sc.nextLine();
String code = line.substring(2, Math.max(line.lastIndexOf('.'),
line.lastIndexOf('-')) + 1);
tree.add(line.charAt(0), code);
}
} catch (FileNotFoundException e) {
System.out.println("Warning! File not found!");
}
}
/**
* Accepts the file location of an encoded file then decodes the data in a file
* @param inputFileName the name of the file to be decoded
* (assuming it is located in the project directory)
* @param outputFileName the name given name for the encoded output file
*/
public static void decodeFile(String inputFileName, String outputFileName) {
File encodedFile = new File(inputFileName);
File decodedFile = new File(outputFileName);
try (Scanner sc = new Scanner(encodedFile)) {
try (PrintWriter pw = new PrintWriter(decodedFile)) {
while (sc.hasNextLine()) {
StringTokenizer line = new StringTokenizer(sc.nextLine());
while (line.hasMoreTokens()) {
String token = line.nextToken();
if (token.equals("|")) {
pw.append(" ");
} else {
try {
char symbol = tree.decode(token);
pw.append(symbol);
} catch (IllegalArgumentException e) {
System.out.println("Warning! Skipping: " + token);
}
}
}
pw.append("\n");
}
}
} catch (FileNotFoundException e) {
System.out.println("Warning! File not found!");
}
}
}

View File

@@ -0,0 +1,116 @@
/*
* CS 2852
* Fall 2018
* Lab 7 - Morse Code Decoder
* Name: Trevor Barnes
* Created: 10/15/18
*/
package barnestr;
/**
* A class that represents a BinaryTree used to decode Morse Code files
*
* @param <E> the generic value used to construct the tree
*/
public class MorseTree<E> {
private static class Node<E> {
private E data;
private Node<E> left;
private Node<E> right;
private Node(E data) {
this.data = data;
left = null;
right = null;
}
@Override
public String toString() {
if (data == null) {
return null;
} else {
return data.toString();
}
}
}
private Node<E> root;
/**
* The constructor for a MorseTree that sets the root node's data to null
*/
public MorseTree() {
this.root = new Node<>(null);
}
/**
* A method that sets the passed in root to whatever result is given from
* the call to the recursive add method.
*
* @param symbol the symbol to be set at the given code location
* @param code the code that determines where a symbol will be placed in the tree
*/
public void add(E symbol, String code) {
root = addRecursive(root, symbol, code);
}
private Node<E> addRecursive(Node<E> localRoot, E symbol, String code) {
if (code.isEmpty()) {
// If the code string is empty, the symbol's location has been reached.
// Returns the new Node with the symbol as its data.
localRoot.data = symbol;
return localRoot;
}
if (code.charAt(0) == '.') {
// If the branch does not exist, add a Node with null data
if (localRoot.left == null) {
localRoot.left = new Node<>(null);
}
// Add in the left half of the localRoot's subtree
localRoot.left = addRecursive(localRoot.left, symbol, code.substring(1));
} else if (code.charAt(0) == '-') {
// If the branch does not exist, add a Node with null data
if (localRoot.right == null) {
localRoot.right = new Node<>(null);
}
// Add in the right half of the localRoot's subtree
localRoot.right = addRecursive(localRoot.right, symbol, code.substring(1));
}
// Return the localRoot Node
return localRoot;
}
/**
* A method retrieves a symbol by traversing the tree with the given
* code by calling a recursive decode method
*
* @param code the code that signifies the location of a value in the tree
* @return a generic with whatever value was decoded
* @throws IllegalArgumentException thrown when anything other than a
* dot or line is passed to it
*/
public E decode(String code) throws IllegalArgumentException {
Node<E> data = decodeRecursive(root, code);
return data.data;
}
private Node<E> decodeRecursive(Node<E> localRoot, String code) {
if (!code.startsWith(".") && !code.startsWith("-") && !code.isEmpty()) {
throw new IllegalArgumentException();
}
if (code.startsWith(".")) {
return decodeRecursive(localRoot.left, code.substring(1));
} else if (code.startsWith("-")) {
return decodeRecursive(localRoot.right, code.substring(1));
}
return localRoot;
}
}

16
Labs/Lab 8/.idea/checkstyle-idea.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="checkstyle-version" value="8.5" />
<entry key="copy-libs" value="true" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>

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