[Solved] COSC2452 Assignment2
5.0
1 customer review
Digital download
Digital download
$25.00
Upload assignment
| 4.2) Code+Justification Requirements (15 marks):To receive marks for Code+Justification requirements, you must use the following code concepts to make a functionally cohesive program that also meets the functional requirements. You must only use concepts explained and demonstrated in the weekly live lectures held by Gayan (typically held on Monday nights). If you require the use of some additional concepts, please seek clarification through the CanvasAssignmentsAssignment 2 forum. Your work cannot be simply a renamed version of an example shown in class. Code without justification in the required format would attract no more than 50% of the mark allocated for that component. Comments without code will not attract any marks.An important note on Java code validity: A program with even one red dot (compilation error) cannot be tested and therefore will attract 0 marks for this section. | ||
| Code concept | Requirements (15 marks when justified as required) No partial marks for dot points | |
| CJ1) Single-class object oriented code using provided template with 13=3 marks | Appropriate name for java file (must not use names like Assignment2.java); Follows conventions shown in IIE solution lectures, other standard class materials and common ones in the Java API. The main method should have only one line to create an object of the main application class (refer to startup code and week 6+ weekly live lecture examples). Consistent code and comments formatting, with comments start on the line before the documented block/statement (e.g. not on lines with code). Only relevant, reachable code+comments included. No uses of return in middle of methods, break, continue, System.exit or similar branching (spaghetti code) anywhere in the code. | |
| CJ2) Variables0.52=1 mark | Some of which are object member variables (may include arrays). These are explicitly private, non-static and there should be no = signs near declarations. Every reference to an object member variable from a method starts with this. (i.e. | |
| this dot, e.g. this.gt). Descriptive variable names used and does not use vague names (e.g. numRecords) Used in place of duplicated literals. Demonstrates understanding of primitive data types vs. class types where relevant. | ||
| CJ3) Constructor 11=1 mark | The class has only one constructor and all object member variables, arrays, etc. declarations are explicitly initialised in this constructor before any other operations. | |
| CJ4) Methods 12=2 marks | All methods are explicitly public and non-static. Methods are created when absolutely necessary or when it reduces duplication of code. One or more methods created by student must take parameters and one or more methods created by student must return values. Both could be demonstrated using the same method. | |
| CJ5) Multi window user interface using GTerm13=3 marks | Uses GTerm exclusively for inputs. Most, if not all, user inputs must be taken via either text fields or text areas (vs.getInputString). May use password fields and dialogue boxes. Uses GTerm exclusively for outputs. Must use tables with headings and columns. Minimal use of .showDialog methods to display outputs. Uses GTerms methods setXY, addImageIcon, setFontSize, etc. to improve presentation. Uses GTerm buttons. Performs operations on rows selected from tables. | |
| CJ6) Conditional execution and repetition 12=2 marks | Uses if/else/else if appropriately and exclusively for non-repeating conditional execution and at least one reachable else if statement. Conditions do not include tautologies. Every code block in every if/else/else if/while structure is reachable. Uses while-loops appropriately and exclusively for repetition. Loop condition describes all situations under which the loop will repeat and condition fails eventually. Conditions do not include tautologies. Pathways are not redundant. | |
| CJ7) Arrays 13=3 marks | Uses multiple arrays of primitive or shown Java API classes to maintain records. Only standard Java arrays used. (e.g.does not use ArrayLists, etc.) Array lengths are determined at run-time (e.g. based on how many records the user wants to store). All array manipulation performed by student using while-loops, if-statements, etc. without using other classes. | |
| Justification RequirementsNote: You will not receive full marks allocated for the CJ requirements above unless each occurrence is justified as required below. | ||
| Type of code | Evaluate and justify your choice over other possible alternative | |
| Declarations(also applies to method definitions) | Identifier names Data typesLocalities of declaration (why object-level vs. parameter-level vs. method-level vs. block-level, etc.). | |
| Contents of code blocks | Formulations (is there a simpler way to meet requirements without creating this code block?)Inclusions (what you have added and why?)Sequences (why are these in this order?)Exclusions (what you havent added and why) | |
| Conditions | Formations of the logic (e.g. is glass half full vs. is glass half empty, etc.) | |
| Template/Start-up codeIn the most initial form, your code must take the following organisation: | ||
| public class Assignment2RenameThisClass {private GTerm gtMain; private GTerm gtSub;public Assignment2RenameThisClass() { this.gtMain = new GTerm(600, 400); this.gtSub = new GTerm(400, 600);}// The main method must only perform the included operation.// Do not add any other code to the main method.public static void main(String[] args) {Assignment2RenameThisClass a2obj = new Assignment2RenameThisClass();}} | ||
| You can rename identifiers to suit. You can create the second GTerm object later but it still must be initialised in the constructor. | ||