TCP1101 Programming Fundamentals
Trimester 1, Session 2019/2020
Faculty of Computing and Informatics
Milestone 1 : 30 Aug 2019, Mon, noon
This is an individual assignment. STRICTLY NO COPYING from other sources except
codes given in this course. If detected all parties involved will get 0 marks.
Assignment – Milestone 1
Implement a program which will manage a display board which is made up of forty
display dots (horizontal) by twenty display dots (vertical) as shown in Fig. 1. The display
board supports the character set of A, B, C, … Z and 0, 1, 2, … 9.
Fig. 1: The display board.
At the beginning of the program, the user will be asked to input a character string of up to
twenty five character long and the co-ordinates of the anchor dot of the string. The anchor
dot is the top left dot of the string. Fig.2 shows an example of the anchor dot for the
string “ABC DEF”.
Fig. 2: The anchor dot of a string.
After that the user will be given a choice of whether to display the string scrolling from
left to right, from right to left, upwards, downwards or stationary without scrolling. If
scrolling pushes the string beyond the edges of the board, the part of the string pushed out
will enter from the opposite edges, showing a wrap around effect.
Next, the user will specify how many time steps to display the character string. One time
step is one refresh cycle which is made up of a screen clearing process and a display
process. The speed of a refresh cycle will be specified by the user with a number from 1
to 10, 1 being the slowest and 10 being the fastest.
The example below shows a string “ABC DEF” being displayed at origin dot (0, 19) and
scrolling upwards for three time steps.
Fig. 3: Scrolling a string upwards
You can use the following design as a reference to design the display maps of the
characters supported by the display board. You can also design your own display map if
you wish to but extra marks will not be awarded for your design in this milestone.
Fig. 4: Display map of supported characters.
Use only platform-independent standard C++ libraries to implement this milestone.
However, the use of system(“clear”) or system(“cls”), if needed, is permitted.
To facilitate marking on different platforms, put your clear screen code in one function
and call the function to clear the screen. In this way, your clear screen code only needs to
be changed at one spot to make it work on a different platform when marking.
To ease plagiarism checking, put your source code in only one file and use the following
file name format: yourLabSecion.StudentID.NameInTheMMUNameList.cpp
For example, name your source file as TT01.1171777777.Tony.Gaddis.cpp.
0.5 mark will be deducted from a submission which does not follow this format.
Hint for one way of implementation : Use a 2D character array as an abstraction of the
display board. The size of the 2D array can be bigger than 20 by 80 to store dots to be
displayed at later time steps.
a) Source code in one file (For example TC01.1171777777.Tony.Gaddis.cpp).
b) Design documents such as flowcharts, pseudo codes in PDF format to explain your
work. This is optional.
c) Screen-shots of your program running compiled into a document in PDF format.
Additional Info on Deliverables
a) Source codes have to be properly formatted and documented with comments and
operation contracts. Executable files need not be submitted.
b) For ALL your .cpp and .h files, insert the following information at the top of the file:
Program: YOUR_FILENAME.cpp / YOUR_FILENAME.h
Course: Data Structures and Algorithms
Year: 2010/11 Trimester 1
Name: Frank Carrano
Lecture Section: TC101
Tutorial Section: TC201
Email: [email protected]
Soft-copy submission instruction
a) Create a folder in the following format:
For example, if your name is Frank Carrano, you come from TC201 tutorial section, and
you are submitting Milestone 1, then your folder name should be
“TC201_M1_FRANK_CARRANO” without the double quotes.
b) Place all files for submission into the folder.
c) Zip your folder to create a zip (TC201_A1_FRANK_CARRANO.zip) archive.
Remember that for Milestone 2, your zip archive filename should be
d) Submit your assignment through MMLS.
|Stationary display of a string||1|
|Scrolling features (0.5 mark for each direction)||2|
|Variable speed from 1 to 10||0.5|
Each feature will be evaluated based on fulfilment of requirements, correctness,
compilation without warnings and errors, error free during runtime, basic error handling,
quality of comments and operation contracts, user friendliness, and good coding format