School of Computing & Information Technology
Advanced Programming代写 This assignment is to be implemented using object oriented programming. It involves implementing a simulation
CSCI251/CSCI851 Advanced Programming Spring 2019
Assignment 2 (Worth 10%) Advanced Programming代写
Due 11:55pm Sunday 13th October 2019.
Early diagram submission: 7pm Monday 23rd September 2019.
Overview Advanced Programming代写
This assignment is to be implemented using object oriented programming. It involves implementing a simulation of an adventure in time, tracing the history of some artefacts.
In addition to providing code you need to:
- Submit a draft UML like class diagram indicating how your classes are structured and
- Submit a final report, which contains the final UML like class diagram reflecting the structure in your code, and text/tables/diagrams addressing the points below:
- Thecharacteristics of the chrononauts and the impact these The description of the impact should be qualitative (descriptive), rather than quantitiative (numerical).
- Describethe 3 different kinds of chrono–pet, and the impact each The description of the impact should be qualitative (descriptive), rather than quantitiative (numerical).
- Describe the 5 different sizes of population centre, primarily the relevant populationranges, and the additional feature added for The relevance of those features should be noted.
- Describethe impact of the 5 different technological
- Briefly describe how each of the event mechanisms work. This may be tied to thepopulation and/or technology
General notes Advanced Programming代写
These are some general rules about what you should and shouldn’t do.
- Your assignment should be sensibly organised with the same kind of expectations in this area as assignmentone, although you may reasonably have more files for this No memory leaks etc. too.
2. Other than the initial command line input, the program should run without user input. In particular this means there shouldn’t be pauses waiting for the user to press a key.
- There shouldn’t be pauses generally, please don’t usesleep!
- Yourcode must compile on Banshee with the compilation instructions you provide in txt. If it doesn’t you will likely receive zero for the coding part of the assignment.
- You have to use classes, and should make use of
- Youmust use If you don’t use inheritance you will lose a fair few marks.
- You can use polymorphism, if it’s
- You need to overload operator++ as explained later. Other overloading, if you use it, should be sensible and
- You need copy constructors associated with the evolution and devolution of the
- Youcan use your own data files for names or similar
1 An adventure in time
The year is 2525, and you have been appointed to supervise a team of chrononauts adventuring through time to collect information on the provenance and usage of various artefacts. The general overview is described below, but most of the details are up to you.Advanced Programming代写
Your code should compile on Banshee according to instructions you provide in a Readme.txt file. Once your program is compiled into the executable AAT, it must run as follows:
./AAT n m
where n is the number of artefacts to be traced, and m is the number of jumps to be made for each artefact. The value of n should be in the range 1 to 5 inclusive. The value of m should be in the range 1 to 10 inclusive.
Your adventure takes place across the lifetime of a population centre, which in 2525 is a metropolis but at some distant historical point was a cluster of huts in a forest clearing near a source of clean water. You have an initial clue as to a period in the past when information on the artefact will be available.Advanced Programming代写
Each jump will take you to slightly before that date. You need to decide how to appropriately reduce the population centre in accordance with the size and technological era.
After each jump you step the population centre foward in time, year by year, using the overloaded ++ operator, until you find the information and an additional clue. It should typically take 5-10 years to find both of those. If no more jumps are allowed only the information needs to be gathered.Advanced Programming代写
You should be reporting on all of the details of the population centre when you make a jump, so before and after. In the year by year stepping forward you can report on the technological and population levels each year, and otherwise just on events and the impact they have.
Report on the state of the chrononauts at the start and end of each jump period.
2 Simulation components Advanced Programming代写
The simulation is from the perspective of the chrononauts. You need to give consistent and appropriate definitions for a class hierarchy associated with the various components of the adventure.
2.1 Artefacts, clues, and information
You should randomly generate an artefact. It should have a name and some sort of description. It should also have an estimated source time which should be relevant in determining where you jump. Across the search for an artefact it’s expected you will probably need to travel through at least two different technological eras.
The clues are effectively just a single number telling how much further to jump back for the next clue. The information is a percentage of the information about the artefact.
2.2 The population centre
There is only one population centre in the simulation but there are 5 different levels:
Hamlet, village, town, city, metropolis.
You need to decide the population ranges for each.Advanced Programming代写
Each level should add relevant functionality on top of the previous one. It’s up to you to determine what that functionality is.
As an example, a town may have a medical centre. The name of that functionality may change when going to a larger population centre, so it might be called a hospital in a city, but there should also be something distinctive added as well.
In jumping you need to determine if a transition is needed, initially from metropolis to city. Transitions should be managed using copy constructors between adjacent levels. This means if your jump takes you from a metropolis to a town you go via a city.Advanced Programming代写
Usually moving backwards in time results in a population decrease, and forwards a population increase, but the rate should vary depending on the population centre and the technology level. You should likely determine a base growth rate, possibly with saturation points, and have modifiers based on the population centre level, technological era, and events.
2.3 Technological eras
These are different time periods. These could be periods like the Stone Age, Middle Ages, or Information Age. It’s up to you to determine what they are called and the impact they have.
Usually moving backwards in time results in a technology decrease, and forwards a technology increase,but the rate should vary depending on the population centre and the technology level. You should likelydetermine a base growth rate, possibly with saturation points, and have modifiers based on the population centre level, technological era, and events.Advanced Programming代写
These occur within the year by year step with the chrononauts in the population centre. There could be development level and technology level change rates as a result of chrononaut influence, although they are supposed to limit this.
The following describe the events that could occur. The details are up to you, and there may not be an event every year.Advanced Programming代写
- Finding artefact information. Assume there is only one lot of information that can be found in a jump
- Findinga jump Assume only one jump clue can be found in a jump site.
- Very small chance of discovering the artefact you have, ”back” in 2525, is actually a fake. End of this
- Illness … Plague: Decrease population significantly. Could lose a
- Skirmish … War: Increase technology, decrease population. Could lose a
- Technological breakthrough: Increase in
- Socialrevolution: Some sort of Decrease or Increase in the population, depending on the nature of the
- Interactionsbetween chrononauts and locals: These could be positive or negative, and could change population, technology, … . It’s up to you to determine the
- Chrononautspecific event: There should be some specific event relating to the chrononauts that you make
To jump you have to obtain both the information and clue. The chances of these appearing should increase year by year, so that both should be found within 10 years.
2.5 The chrononauts
Each chrononaut should have a name, actual age, and travel age. The actual age doesn’t change. The travel age is the accumulated years spent in the population centre.Advanced Programming代写
Provide characteristics for the travellers below to support their impact on the events. Each should have an ability level which influences how well they can perfom their task.
The types of chrononauts are as follows:
Jump engineer: If you lose the jump engineer you are stuck. Jump engineers have special brain wiring that interferes with other functionality so they are otherwise pretty much useless, but they are also rare.Advanced Programming代写
- Doctor: Determines the likelihood of introducing or suffering fromdisease/death.
- Historian: Determines the value of
- Security: Determines impact of interactions with
- Chrono-Pet: Should have some impact, to be determined by
You expect that abilities will slowly improve, as a function of technology level.
2.6 Wrapping things up
At the end a summary should be given for each artefact. This should include a list of the information elements found, and when they were found; and the overall information percentage found. Major events should also be listed.
Notes on submission
Submission is via Moodle.
Your code must compile on Banshee with the instructions you provide. If it doesn’t you will likely be given zero for the programming part of this assignment.
Please submit your source, so .cpp and .h files, Readme.txt file, data files in used, report, and makefile if you have one, in a zip file A2.zip. There shouldn’t be any directory structure within the zip file.Advanced Programming代写
Make sure your report is in pdf and has your name, student number, and lab class marked clearly on it. The final diagram should be in your final report pdf and not in a distinct document. It may be ignored if it’s a non–pdf format.
Your early diagram submission should also be in pdf, and should also have your name, student number, and lab class on it. You can split it across multiple diagrams if necessary.
- The early diagram submission is 7pm Friday 20thSeptember
- The main submission deadline is 11:55pm Sunday 13thOctober
3.Latesubmissions will be marked with a 25% deduction for each day, including days over the weekend.
4.Submissionsmore than three days late will not receive marks, unless an extension has been granted.Advanced Programming代写
5.If you need an extension apply through SOLS, if possible before the assignment
6.Academic misconduct is treated seriously. Students involved will likely receive