Recent Question/Assignment

Read this document carefully! Any clarification should be sought at the earliest opportunity.
Information about the assignment and assistance, where necessary, will be presented during
lectures and practicals.
This is an individual investigation assignment. You will work on this in your own time and
complete the work ready for submission by the advertised deadline.
Construction Quotation Assistant
You have been approached by a local small business that specializes in the construction of
concrete retaining walls to create an application to enhance part of the core functionality of the
business. The application you are to create should automate the quotation process for pricing
the construction of retaining walls.
Each square metre of retaining wall costs a base amount of $514.72. This cost covers the
price for site preparation, supply of material and construction of wall. Issues impacting the
construction and therefore price of retaining walls include the following: difficulty of the land
where the wall is to be built (normal, sandy, limestone, bluestone), the ease of access to the
site, and the address of the walling project.
The user of the application will be able to specify the length of the wall and the height of the
start and end of the wall. Concrete sleepers are 2m in length and 200mm in height. For this
application it can be assumed that all walls are to be built from this basic size.
For this task you are asked to create a program that demonstrates the core algorithms that will
prototype the general operation of the application. It should be a text based application that
will accept user input and display the price and number of sleepers required for a retaining wall.
The output should not only provide the two values mentioned previous but should also provide
an itemized representation of each bay of sleepers. Finally you should capture all inputs for a
session and write these values out to a CSV file that could potentially be opened in a spreadsheet
application.
The following is a typical interaction session (user input is in bold):
Welcome to the Quotation Assistant
Use this application to generate the required number of sleepers for
your job and the initial quotation.
===================================================================
Would you like to generate a (N)ew quote or (R)ead in an existing file (N/R)? N
This is job number 1
What is the length of the wall (in metres)? 10
What is the start height of the wall (in metres)? 1.0
What is the end height of the wall (in metres)? 2.0
Is the wall to be built locally (Y/N)? Y
Is there adequate access to the site (Y/N)? Y
What is the difficulty of the site (N)ormal, (S)andy, (L)imestone, or (B)luestone
(N/S/L/B)? N
The wall will require 37 sleepers, will be 14.8m2 and cost $7617.86.
There will be 5 bays with the following sleeper totals:
| 5 | 6 | 7 | 9 | 10 |
COMP1102/COMP8702/ENGR1721 Computer/Engineering Programming 1, CHM & BGW, Semester 1, 2015
School of Computer Science, Engineering & Mathematics, Flinders University
Computer/Engineering Programming 1 Laboratory 2015– Laboratory Sessions
Would you like to begin a new quotation (Y/N)? Y
This is job number 2
What is the length of the wall (in metres)? 15
What is the start height of the wall (in metres)? 0.4
...
Would you like to begin a new quotation (Y/N)? N
Thank you. Goodbye.
Walls should be built with a set angle to the slope from the top of the wall to the base of the
wall. Using this fixed angle value you will be able to calculate the number of sleepers required
for each bay and the wall total.
By using trigonometry calculations you can calculate the height of individual bays. The
algorithm required is as follows:
a. Calculate the angle of the entire wall from the lowest height to the start of the highest
bay height, ie:
b. Using this angle and the known length of each bay, the number of sleepers for each bay
can be calculated. If the calculated height of a bay exceeds half the height of a sleeper
than a full sleeper is required. For example a height of 249mm for a bay will require
one sleeper; a height of 499mm will require 2 sleepers; a height of 750mm will require 4
sleepers.
c. The total number of sleepers can then be used to calculate the total metres squared
required to construct the wall, which can then be used to calculate the total cost.
You will need to ensure that the user supplies the correct input values. If incorrect values are
supplied then you should ask for them to be re-entered.
The following criteria need to be addressed when calculating the overall cost of the wall:
i. If the wall is not to be built locally then an additional 5% is added to the cost.
ii. If the site has poor access then an additional 30% is added to the cost.
iii. If the site has sandy conditions then an additional 10% is added to the cost.
iv. If the site has limestone then an additional 15% is added to the cost.
COMP1102/COMP8702/ENGR1721 Computer/Engineering Programming 1, CHM & BGW, Semester 1, 2015
School of Computer Science, Engineering & Mathematics, Flinders University
Computer/Engineering Programming 1 Laboratory 2015– Laboratory Sessions
v. If the site has bluestone then an additional 30% is added to the cost.
These costs should be compounded as necessary. The user can only specify one type of site
condition however (normal OR sandy OR limestone OR bluestone). Therefore the largest
additional percentage that could be applied to a job is an additional 65% (5% for remote +
30% for poor access + 30% for bluestone).
Finally you should also implement a capacity to read existing CSV files and display the job
details to the user. This will mean that your initial prompt to the user should look like the
following:
Welcome to the Quotation Assistant
Use this application to generate the required number of sleepers for
your job and the initial quotation.
===================================================================
Would you like to generate a (N)ew quote or (R)ead in an existing file (N/R)? R
Reading in file retainingWalls.csv
ID | Length | Sqr Face | Cost | Num Slpr | Slpr Breakdown
1 | 10 | 14.8 | 7617.86 | 37 | 5,6,7,9,10
2 | 26 | 26 | 13382.72 | 65 | 5,5,5,5,5,5,5,5,5,5,5,5,5
...
While you are only displaying some of the details the CSV file should include the following fields
for each job:
Job ID
Length
Start Height
End Height
Local Site
Adequate Access
Site Condition
Number of Sleepers
Square Face
Cost
Sleeper Breakdown
Deliverables
This application will assess your knowledge of the C++ programming language by testing your
ability to develop:
Sequence,
COMP1102/COMP8702/ENGR1721 Computer/Engineering Programming 1, CHM & BGW, Semester 1, 2015
School of Computer Science, Engineering & Mathematics, Flinders University
Computer/Engineering Programming 1 Laboratory 2015– Laboratory Sessions
Selection,
Iteration.
Functions,
Arrays,
File IO.
You will not have an opportunity to work on this assignment during practicals throughout the
semester. You may ask you lecturer for some general direction but they will not be assisting in
the development of the program. You will receive more information about the assignment as
needed through lectures and on FLO.
You are free to implement the solution in any fashion that you like. Remember to analyse
the problem as necessary and design a solution that suits the deliverables. Treat this as a
professional activity, so inline comments, documentation and application output should be
presented appropriately for the target audience. You need to determine the structures you
will use. This is an application that may reuse elements significantly and so your development
should consider this.
You code should contain appropriate inline comments to assist future developers. You will need
to prepare suitable documentation describing your product and the development process. This
document should include rationale for decisions made and describe the structures utilized and
the purpose of each. It should document each function describing its purpose and necessary
input and output. A brief user guide should also be prepared describing what the application
is and the use of the program. Screenshots or sample output should be included. The two
documents should be no more than 4 pages each including images.
You will be awarded marks for the level of completion of your program. This assignment will
be marked out of a total of 100 marks as follows:
70 marks for the funcationality of the program (0 marks if the progam does not compile)
10 marks for design adn structures used (functions, selections, loops, inline comments)
10 marks for documentation (user guide and development documentation)
10 marks for style (coding conventions and whitespace)
Submission
The work you submit should adhere to the guidelines presented in this document. If your
code does not compile you will be awarded 0 marks. Code that does not compile will not be
investigated further. You will not be given an opportunity to resubmit working code. This is
a programming assignment and the responsibility for submitting a working product is yours.
Requests for extension need to be presented in writing (using the appropriate form) as early as
possible.
The additional documentation files should be placed in the project directory. This directory
should be zipped and submitted through the appropriate link on FLO.
The due date for this assignment is 10:00am Monday, June 1, 2015.

Looking for answers ?