CSCl251 Advanced Programming
Assignment 1
Aim
The objectives of this assignment includes:
· Learning about procedural programming,control structures,arrays,dynamic memory allocation and handling input/output
· Apply the concepts learnt by developing a Weather Information Processing System
Background
Your software company,Virtual Solutions,has just won a $1m contract to design a build a prototype Weather Information Processing System(WIPS).
For this assignment,you take on the role of a software architect.You are supplied with sample input weather data(kindly provided by the meteorological station),and you need to develop a program that does the following:
1) read in and process a configuration file
2) display city map
3) display cloud coverage map (cloudiness index)
4) display cloud coverage map (LMH symbols)
5) display atmospheric pressure map (pressure index)
6) display atmospheric pressure map (LMH symbols)
7) show weather forecast summary report
The program should be compiled as 'csci251_a1.app'and run in Ubuntu 14.04 (Linux OS). The next section describes the requirements for the program.
Task Requirements
A)Upon startup,the program should prompt user to enter a 'configuration'filename.The program then proceeds to read the contents (of the entered filename)to further initialize its own program parameters /data structures.Please refer to Appendix A,which provides details on the configuration file and its usage.
B)The meteorological station has adopted a map-grid coordinate system upon which it overlays all other weather data.With regards to display city map option,please refer to Appendix B,which elaborates on this coordinate system,the unit representation,the relative positioning of different cities and its display requirements.
C)For the display requirements of cloud coverage(cloudiness index),AND cloud coverage(LMH symbols) (i.e.options 3)&4)),please refer to Appendix C,which will discuss about the interpretation of cloud cover input data,its subsequent processing algorithm and output format requirements.
D)For the display requirements of atmospheric pressure(pressure index) AND atmospheric pressure(LMH symbols) (i.e.options 5)&6)),please refer to Appendix D,which will discuss about the interpretation of pressure input data,its subsequent processing algorithm and output format requirements.
E)For the display requirements of weather forecast summary report,please refer to Appendix E,which will provide details about the kind of summarized weather data to be displayed,processing algorithm to compute the probability of rain and its graphical display format.
F)Refer to Appendix F,for a description of the program's main menu requirements
G)Once the program is completed and tested to be working successfully,you are encouraged to add on "new features"to the program that you feel are relevant to the problem.Additional marks may be awarded subject to the relevancy and correctness of the new functionalities.(Note:the additional features will only be considered IF the program has correctly fulilled all the basic requirements elaborated in the earlier sections!)
H)You are not allowed to declare your own C++classes for this program,as this is a purely procedural (not Object Oriented)programming assignment!
l) You are to use only C++language to develop your program.There is no restriction on the IDE as long as your source files can be compiled by g++compiler (that comes installed in Tutor's Ubuntu Linux)and executed in the Ubuntu terminal shell environment.
Deliverables
1) The deliverables include the following:
a)The actual working C++program(soft copy), with comments on each file,function or block of code to help the tutor understand its purpose.
b)A softcopy word document that elaborates on:
· (Interpreted)requirements of the program
· Diagram /Illustrations of program design
Summary of implementation of each module in your program
Reflections on program development (e.g.assumptions made,difficulties faced,what could have been done better,possible enhancements in future, what have you learnt, etc)
c)A program demo/software testing during lab session.You must be prepared to perform certain tasks /answer any questions posed by the tutor.
2) IMPT:Please follow closely, to the submission instructions in Appendix G, which contains details about what to submit,file naming conventions,when to submit,where to submit,etc.
3) The software demo /testing will be held during lab session where you are supposed to submit your assignment.Some time will be allocated for you to present / demonstrate your program's capabilities during the session.
Grading
Student's deliverable will be graded according to the following criteria:
(i) Program fulfills all the basic requirements stipulated by the assignment
(ii) Successful demonstration of a working program,clarity of explanation /presentation and satisfactory answers provided during Q &A session.
(iii) Additional effort (e.g.enhancing the program with relevant features over and above task requirements,impressive,'killer'presentation)
(iv) After the submission of deliverables,students will be required undergo a software testing process(to determine the correctness and fulfillment of software requirements.)Further instructions will be given by the Tutor during the subsequent respective labs.Please pay attention as failure to adhere to instructions will result in deduction of marks.
Tutor's note:
In the real working world,satisfactory completion of your tasks is no longer enough.The capability,efficiency and robustness of your system to operate under different testing conditions, and the ability to add value,communicate and/or demonstrate your ideas with clarity is just as important as correct functioning of your program.The grading criteria is set to imitate such requirements on a'smaller scale'.