C++代写:CSCI251 Weather Information Processing System

实现一个Weather Information Processing System,练习array, dynamic memory allocation的基本用法。

Weather Information Processing System

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, Vitual 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 file2
  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 file name) 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 maybe 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!

I) 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 / llustrations of program design
      • Summary of implementation of each module in your program
      • Reflections on program development (e.g. assumptions made, difficultiesl faced, what could have been done better, possible enhancements nl 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 sessior 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’.