Department of Electrical Engineering and Electronics
ELEC362
Assignment Investment analysis programme
Module ELEC362
Coursework name
Assignment
Component weight 10%
Semester
1
HE Level 6
Lab location
3rd floor labs , library or personal computers/laptops
Work Individually
*Estimated time to finish
8-10 hours (code only)
Assessment method Individual, formal word-processed report
Submission format
Online via VITAL
Submission deadline 11.59 pm on the 27th October, 2019
Late submission
Standard university penalty applies
Resit opportunity None except for extenuating circumstance
Marking policy
Marked and moderated independently
Anonymous marking No (the marker needs to link the code to the report)
Feedback
via VITAL GradeMark / Turnitin Feedback Studio
Expected release of marks date 10 business days from the deadline
Learning outcomes
LO1: Using C++ to implement a console-based application.
*Note: This estimate may vary based on the need to debug your code. Make sure you start working on the assignment as soon as possible.
Page 1 of 4
The assignment
Design and implement a console-based C++ programme that reads a data file containing investments for a fiscal year by investors in a company. The file template will look as follows:
Where the number of rows depends on the input file, the investment can be positive or negative. The programme should add two extra columns to the data file after the Current years investment column, the first added column should show the relative contribution of the investor to the budget of that year, calculated as follows:
R = Current Investment of the investor 100% Investment All Investments
The second added column should be the expected profit, which is zero for investors with negative investment. For investors with positive investment it is given by:
Profit = 0.2Rinvestment (All investments)
If the sum of all investments is not positive, the second added column will be zero for
everyone.
You should write a C++ programme that implements the tasks described above. When developing your code, you should:
test your code for different cases with test files of your own,
maximise the use of functions in your code,
consider potential run-time errors and how to handle them,
look at C++ documentation to see if there are any commands that can make your
code easier to implement.
Additionally, you should add lines to your code to measure its execution time. The start of the counter/timer should be after the user has input the data file to the programme. The end of the counter/timer should be the end of the programme.
Finally, you should make the programme as professional as possible.
Page 2 of 4
The deliverables
Every submission should consist of source file + an executable file + brief report. It must have the students name and the student ID on the cover. The report does not need an introduction or a conclusion, it must have the following sections:
How the programme works (explain the idea of the algorithm)
User instructions (how should the user use it)
Testing and verification attempts
Appendix: source code (must be in machine readable format).
Mapping the assignment to modules material:
Aspect
Where it is covered
Creating an executable file
Lecture 1
Reading and writing to a file
Lecture 2, Lab session 2
Mathematical operations
Lecture 3
Control structures
Lecture 4
Measuring execution time of a code
Lecture 2
Writing functions
Lecture 5, lab session 3
Memory management
Lecture 5, lab session 3
Dealing with run-time errors
Lecture 5
Handling arrays, variable sized arrays, or vectors
Lecture 3, Lecture 5, or Lecture 10
Further reading/tutorials
http://www.cplusplus.com/reference/fstream/fstream/ http://www.cplusplus.com/doc/tutorial/files/
Page 3 of 4
Marking Criteria
Criteria (weight %)
Verification and
What does it mean?
Is the code well organised? Are the variables named properly? Is the code well commented? Does it use the most suitable datatypes for the variables?
Indicative characteristics
Algorithm and design of the programme (25%)
Does the programme do what it is designed to do? Does the programme handle memory efficiently? Does the programme make a good use of control structures?
Adequate / pass
(40%)
Very good / Excellent
Code and implementation (25%)
The programme does what it designed to do with clear shortcoming.
The use of memory is completely inefficient but is working.
Control structures are barely used.
The code runs for a long time to process few lines in the data file.
The programme does what it designed to do without any flaws.
The memory management is very efficient.
The code runs relatively fast.
Has the code been
Thecodeshowsthe steps but is difficult to understand what it does.
Poorlycommented code.
Thenamingofthe variables is arbitrary and does not give any idea on what the variables are used for.
The code is written in very organised way that is easy to follow.
The code is very well documented.
The variable naming is appropriate and follows professional naming roles.
Error-Handling
(25%)
Report
(25%)
tested? What does the programme do if there is a run-time error? What does the code do if the input file template is incorrect?
Is the report clear and descriptive? Is it concise? Does it have all sections? Are the user instructions given clear?
Thecodewastested for one case only.
Thecodecontains
minimal error handling.
The code has been thoroughly tested.
Error handling has been done professionally for a number of potential run-time errors and user input errors as well.
The report is well written, and all the relevant information it should contain are clearly stated.
The report is concise.
Thereportis understandable but contains many errors.
Thelengthofsome sections is inappropriate either too short or too long.
Thesourcecodeis given in the appendix but is not machine readable.
Page 4 of 4
Reviews
There are no reviews yet.