Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

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