代做CSCI251 Advanced Programming Assignment 1代做留学生C/C++语言

2024-12-14 代做CSCI251 Advanced Programming Assignment 1代做留学生C/C++语言

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.exe'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 fomat 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     wil discuss  about  the  interpretation  of  pressure  input  data,its  subsequent  processing algorithm and output fomat 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  fulfilled  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 teminal 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 ind 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.

(ii)      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   detemine   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'.