CSCl251 Advanced Programming

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'.

发表评论

电子邮件地址不会被公开。 必填项已用*标注