COSC1284 Programming Techniques
编程代写 For this assignment, you will take on the role of a freelance programmer who has been given a small program to write.
Programming Assignment 编程代写
|
Assessment Type: Individual assignment; no group work.
Submit online via Canvas→Assignments→Programming Assignment. Marks awarded for meeting requirements as closely as possible. Clarifications/updates may be made via announcements/relevant discussion forums. |
|
Due date: 11:59pm, 03/April/2020.
Deadlines will not be advanced, but they may be extended under exceptional circumstances. 编程代写 Please check Canvas→Syllabus or via Canvas→Assignments→Programming Assignment for the most up to date information. As this is a major assignment in which you demonstrate your understanding, a university standard late penalty of 10% per each working day applies for up to 5 working days late, unless special consideration has been granted. |
|
Weighting: 25 marks |
1.Overview 编程代写
A programmer can take fundamental programming concepts and, with the experience they have gained from analysis, evaluation and problem solving, put them together to solve new problems.
For this assignment, you will take on the role of a freelance programmer who has been given a small program to write. The program will present a menu to the user with two functions:
- BasicCalculator
- Lotto Checker
The requirements for the menu and the two functions are reported in detail below.
Menu 编程代写
The menu presents the user with a choice of running either the Basic Calculator or the Lotto Checker. The user inputs required by the user are presented as part of the menu display.
The implementation of this method must abide by these constraints:
- Themenu will run as a once-off, and it should not be re-displayed again as the program will terminate after any function has been completed. COSC1284代写
- An incorrect input will cause the program to display an error message to the user (e.g., “The input was not correct!”) and then
- A correct input will cause theprogram:
- To execute the chosenfunction;
- To require the user input of their three parameters from theconsole;
- To display the output of the chosen function;
- To finally terminate.
Basic Calculator 编程代写
This method will be declared as such: private double calculate(double number1, double number2, int operation)
The method performs one of five predetermined mathematical operations: Addition, Subtraction, Multiplication and Division. Each of these operations are represented by an integer: Addition (0), Subtraction (1), Multiplication (2), and Division (3).
The implementation of this method must abide by these constraints:
- Three parameters must be taken as input 编程代写
- The first and second parameter should be the numbers an operation is executed on.
- The third parameter takes values in the range 0 – 3, and it indicates the type of operation to be
- The numbers passed to the function must be positive (0 orgreater).
- The method returns only the result of the
- The method returns -1.0, if the operation supplied is
- The method returns -2.0, if a zero is passed in as the second parameter of a division
Lotto Checker
This method will be declared as such: private String checkLotto(int chosen1, int chosen2, int chosen3)
The implementation of this method must abide by these constraints:
- Lotto numbers are drawn in the range between 1 and 24.
- A number may be drawn one or more times in any single draw.
- This method should receive 3 number picks from a user that represent the numbers chosen by a player.
- The numbers chosen by the player must fall within the range of the field of numbers being drawn.
- Each time the method is called it will generate eight random numbers within the predefined range(1-24). 编程代写
- The method should return a string that informs the user of the results of the draw including the drawn numbers, the numbers chosen by the player, which numbers were correct guesses by the player and how many correct guesses occurred in the draw.
- The method should also notify of any error e.g., if the number picked by the user fall outside the prescribed range.
This program will demonstrate the following key skills:
- Creating a small program to demonstrate what you have learned as a developer.
- Analysing a problem and developing an algorithm to solve the problem.
- Converting an algorithm to computer code.
- Writing code using best practices (within the limitations placed on you by thisspecification)
- Documenting your program. 编程代写
Read the requirements thoroughly!
There are specific constraints that have been placed on you for this assignment to force you to work within defined parameters. The ability to work within a pre-defined set of parameters is a fundamental skill required by any software developer.
You will also need to debug code on your own.
You are given marks on your ability to fulfil all requirements of this document.
Develop this assignment in an iterative fashion, as opposed to completing it in one sitting. 编程代写
You should get started now as there are concepts even from the week 1 lessons that you can incorporate into your program. Any questions regarding this assignment must be asked via the relevant Canvas discussion forums only (no emails to teaching staff, please) in a general manner.
2.Assessment Criteria 编程代写
This assessment will assess several skills:
- Following coding conventions and behavioural requirements provided in this document and in the lessons.
- Independently solving a problem by using programming concepts taught over the first four weeks of the course.
- Writing and debugging Java code independently. COSC1284代写
- Documenting code.
- Providing references where due.
- Meeting deadlines.
- Seeking clarifications from your teaching team, when needed, via discussionforums.
- Creating a program by recalling concepts taught in class, understanding and applying concepts relevant to the solution, analysing components of the problem, and evaluating different approaches.
3.Learning Outcomes
This assessment is relevant to the following Course Learning Outcomes (CLOs), as per published course guide:
CLO1. Demonstrate (through small programming exercises) knowledge and skills with concepts of program design and acceptable coding standards.
CLO2. Use Java programming language as a vehicle to demonstrate good software development practices. COSC1284代写
CLO3. Use arrays and control structures to demonstrate skills of basic algorithms and data structures.
CLO5. Analyse requirements for a small-scale programming project.
CLO6. Design and implement small-scale software systems.
CLO8. Demonstrate skills for self-directed learning.
4.Assessmentdetails
Note: Please ensure that you have read sections 1-3 of this document before going further.
Your code must meet the following code requirements (section 4.1) and documentation requirements (section 4.2).
4.1) Coding Requirements (15 marks)
The following code requirements must be applied similarly to what has been shown in lesson materials. Also, refer to corresponding rows in the rubric (see Section 9).
C1. Code presentation and format:
The program must be written in exactly two files. One file should contain your ‘main method’ and should only be responsible for starting the program. The name of the class (file) with the ‘main’ method must be called ‘Driver.java’.
The second file should contain the program logic. The name of the second class (file) must be called Assignment1.java. Code is formatted consistently and follows the standard Java coding conventions. 编程代写
You must not include any unused/irrelevant code (even inside comments); The code you submit must be considered the final product.
The code should be submitted as a Visual Studio Code Java project.
C2. Data types, user inputs and program outputs:
You must use the Scanner class for any user input related functions.
Variables and constants should reflect the most appropriate data type for the data they are representing. Variables and constants should not be defined at the class level i.e. only defined locally with a method.
Constants should be used for any fixed values even if only used once in the program to increase readability of your code. 编程代写
You should avoid the use of ‘hard coded’ (magic numbers) values when used they must be defined as a constant. Formatting of output to the console must be done using the printf method and not via escaped tab sequences or manual spacing.
You are not permitted to use ArrayLists or any other data structures. All your variables and constants must be a primitive type or a String data type.
C3. Conditional Logic:
You should use if/else if/else (or switch/case) appropriately and exclusively for non-repeating conditional execution. Contains at least one reachable else if statement.
Every code block in every if/else – if/else (or switch/case) structure must be reachable. You must not have any redundant conditions.
C4. Repetition
You are not permitted to use any type of loop in this program.
Any code repetition should be reduced by writing cohesive methods.
C5. Algorithm development and method implementations
You must not use static anywhere in the program except in the main method.
Methods should be cohesive and used to represent each step in an algorithm in order to keep each method as small as possible. 编程代写
There is at least one method in addition to the ‘main’ method.
Methods are used to reduce code repetition. Every created method is used in the program. Methods are appropriately private or public.
Control/execution within each method always reaches the very last statement of that method (no spaghetti code e.g., please, avoid return statements in the middle of the method).
Methods may contain parameters and/or return values.
In places where this specification may not tell you how exactly you should implement a certain feature, the programmer (you) need to use your judgment to choose and apply the most appropriate concepts from class materials. Follow answers given by your instructors under Canvas→Discussions→’Programming Assignment’ when in doubt.
4.2) Documentation requirements (10 marks)
D1. The files (classes) in your program must be FULLY documented. This means that you should have class level comments, method level comments and inline comments. The class level comments should specify the name of the class, your name, your student number and a short description of the purpose of the class.
Method level comments should include a short description of the method and the steps of the algorithm that the method is implementing. You must also include a description of any parameters that the method takes and the return value of the method. 编程代写
Your variable, constant and method names should also be named appropriately to represent a ‘self-documenting’ style of programming.
Every method must have a method level comment regardless of its size/complexity. You may use inline comments sparingly where it helps the readability of your program.
D2. Explain any code requirements that you have not met and all bugs (situations that might cause the program to crash or behave abnormally) in the approximate locations they originate within your code. 编程代写
Bugs imposed by limitations in the lesson topics such as input type mismatches need not be corrected in code, but they still must be documented, if they exist. If you do not have bugs, you must explicitly say that there are none.
Tip: A good programmer knows the limits of their program.
5.Referencing guidelines 编程代写
What: This is an individual assignment, and all submitted content must be your own. If you have used sources of information other than the content directly under Canvas→Modules, you must acknowledge the sources and give references using IEEE referencing style.
Where: Add a code comment near the work to be referenced and include the reference in the IEEE style. COSC1284代写
How: To generate a valid IEEE style reference, please use the citethisforme tool, if unfamiliar with this style. Add the detailed reference before any relevant code (within code comments).
For example:
6.Submission format
Submit a zipped archive of a Visual Studio Code project that contains two .java files via Canvas→Assignments→Programming Assignment.
It is the responsibility of the student to correctly submit their files. Please verify that your submission was correctly submitted by downloading it and checking its content. Failure to check your submission will mean that you receive a zero grade for an empty, corrupted or unreadable submission. 编程代写
7.Academic integrity and plagiarism (standardwarning)
Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others while developing your own insights, knowledge and ideas. You should take extreme care that you have:
Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly copied), summarised, paraphrased, discussed or mentioned in your assessment through the appropriate referencing methods,
·Provided a reference list of the publication details so your reader can locate the source if necessary. This includes material taken from Internet sites.编程代写
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of inappropriate behaviours, including:
- Failure to properly document asource
- Copyright material from the internet ordatabases
- Collusion between students
For further information on our policies and procedures, please refer to the University website.
8.Assessment declaration
When you submit work electronically, you agree to the assessment declaration.
9.Rubric/assessment criteria formarking
Code must be valid, runnable Java to be given a mark (code that cannot be compiled such as JavaScript, pseudocode, incomplete Java code cannot be marked). Run-time errors will incur up to a 50% penalty (run-time errors due to data type mismatches in inputs are acceptable). 编程代写
Inadequate | Partial | Complete (Uses only the concepts covered in class materials for meeting stated criteria) | |
C1 | More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
The program must be written in exactly two files.
One file should contain your ‘main method’ and should only be responsible for starting the program. The name of the class (file) with the ‘main’ method must be called ‘Driver.java’. The second file should contain the program logic. The name of the second class (file) must be called A1.java. Code is formatted consistently and follows the standard Java coding conventions. You must not include any unused/irrelevant code (even inside comments); The code you submit must be considered the final product. The code should be submitted as a Visual Studio Code project. 编程代写 |
C2 |
More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
You must use the Scanner class for any user input related functions.
Variables and constants should reflect the most appropriate data type for the data they are representing. Variables and constants should not be defined at the class level i.e. only defined locally with a method. Constants should be used for any fixed values even if only used once in the program to increase readability of your code. You should avoid the use of ‘hard coded’ (magic numbers) values when used they must be defined as a constant. Formatting of output to the console must be done through the use of the printf method and not via the use of escaped tab sequences or manual spacing. You are not permitted to use ArrayLists or any other data structures. All your variables and constants must be a primitive type or a String data type. |
C3 | More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
Uses if/else if/else (or switch/case) appropriately and exclusively for non-repeating conditional execution. 编程代写
Contains at least one reachable else if statement. Every code block in every if/else – if/else (or switch/case) structure is reachable. Must not have any redundant conditions. |
C4 |
More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
You are not permitted to use any type of loop in this program.
Any code repetition should be reduced by writing cohesive methods. |
C5 | More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
Must not use static anywhere in the program except in the main method.
Methods should be cohesive and used to represent each step in an algorithm in order to keep each method as small as practical. 编程代写 Has at least one method in addition to the ‘main’ method. Methods used in ways to reduce code repetition. Every created method is used in the program. Methods are explicitly appropriately private or public. |
Control/execution within each method always reaches the very last statement of that method (no spaghetti code; avoids return statements in the middle of the method).
Methods may contain parameters and/or return values. |
|||
D1 |
More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
Evaluates strategies used to meet requirements and compares the quality of one approach to another approach. Has an even spread of the above near code blocks and important variables are named in plain English when possible.
The files (classes) in your program must be FULLY documented. This means that you should have class level comments, method level comments and inline comments. The class level comments should specify the name of the class, your name, your student number and a short description of the purpose of the class. 编程代写
Analyses each method with method level comments that include a short description of the method and the steps of the algorithm that the method is implementing. You must also include a description of any parameters that the method takes and the return value of the method.
Your variable, constant and method names should also be named appropriately to represent a ‘self- documenting’ style of programming.
Every method must have a method level comment regardless of its size/complexity. You may use inline comments sparingly where it helps the readability of your program. |
D2 | More than one of the criteria in the ‘complete’ level missing/incorrect. | Any one of the criteria in the ‘complete’
level missing/incorrect. |
Includes a readme file that contains the following:
Evaluate and explain any code requirements that have not been met including situations that might cause the program to crash or behave abnormally.
Identifies and explains the parts of the code that could be improved using repetitive algorithms (loops) and/or data structures that are able to hold more than one value. |
其他代写:代写CS C++代写 java代写 matlab代写 web代写 app代写 物理代写 数学代写 考试助攻 paper代写 r代写 金融经济统计代写 cs作业代写 CS代写