logo Use SA10RAM to get 10%* Discount.
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Muhammad AhmerComputer science
(5/5)

693 Answers

Hire Me
expert
Cole GrayyEconomics
(5/5)

925 Answers

Hire Me
expert
Monika ThakurStatistics
(5/5)

596 Answers

Hire Me
expert
R. BakerSociology
(5/5)

944 Answers

Hire Me
C Programming

In this project, you will demonstrate your understanding of structures and arrays of structures and will develop a computational solution for a non-trivial problem.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Learning Outcomes

In this project, you will demonstrate your understanding of structures and arrays of structures and will develop a computational solution for a non-trivial problem. You are expected to make extensive use of functions, and to demonstrate that you have adopted a clear and elegant programming style. You will find it difficult to create a working solution unless you plan your program carefully in advance, and develop it incrementally.

 

The Mission

You will again be working with numeric data, this time in connection with rainfall records. All of the data files used in this project have been sourced directly from the Bureau of Meteorology web site at http://www.bom.gov.au/climate/data/, and remain in the format in which they were downloaded. The program that you write will identify historical trends that may exist in the input data, and allow visualization of the data.

 

Stage 1 – Reading the Data (Marks up to 9/20)

In this stage you should read all of the data into internal structures suitable for use in the later stages, and create an output representation that provides an overview of the data that was read. Input will come from a comma-separated-values file, with each input line (after the first header line) looking like:

IDCJAC0001,086039,2000,01,28.2,Y IDCJAC0001,086039,2000,02,34.5,Y IDCJAC0001,086039,2000,03,22.5,Y IDCJAC0001,086039,2000,05,96.3,Y IDCJAC0001,086039,2000,06,42.4,Y IDCJAC0001,086039,2000,07,45.1,Y

recording, for example, that the rainfall measured at site 086039 (Flemington Racecourse, in Melbourne) in January 2000 was 28.2 millimeters. The last value in each line is Y or N to indicate whether the data has been “validated”. To read one line, you should use the format control string

"IDCJAC0001, d, d, d, lf, c"

with suitable receiving variables, and then skip any remaining characters on that line until a newline character has been consumed. Note that IDCJAC0001 is a fixed string that identifies the type of data, and will appear in all data files that your program will process.

You may assume that the lines in the input are always in ascending-year then ascending-month order, but also need to be aware that there may be missing data lines. For example, there is no data for April 2000 in the test file shown above. Missing values are completely typical of sensor-based data, and occur because of equipment malfunction, network errors, and so on.

A sample of the required output of this stage is:

mac: ass2-soln < rainfall-086039-2000-2009.csv S1, site number 086039, 115 datalines in input

S1, 2000:  Jan      Feb    Mar    ...    May   Jun     Jul     Aug    Sep    Oct     Nov    Dec S1, 2001:  Jan                        Feb    Mar    ...    May   Jun     Jul     Aug    Sep*  Oct     Nov* Dec

 

 

S1,  2009:  Jan      Feb* Mar    Apr    May   Jun*  Jul     Aug    Sep    Oct     Nov    Dec

where rainfall-086039-2000-2009.csv is one of the test files linked from the FAQ page; where * indicates a value that has not been validated; and where ... indicates a completely missing value. Full output examples are linked from the FAQ page. Note that the input might start part way through one year and end part way through another, so be sure that you handle the first and last year correctly. There might also be whole missing years, in which case your program should report every month for that year as a ... entry.

You should be able to get started on the required program for this stage quite quickly, based on your solution to the first project (or the sample solution to the first project). And an explicit permission – you may include this declaration as a global array if you wish to (and if you can see how it would be useful):

char *months[] = {"", "Jan", "Feb", "Mar", "Apr", "May", "Jun",

"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

 

Stage 2 – The Annual Rainfall Cycle (Marks up to 12/20)

Add further functionality to your program so that for each month of the year the average rainfall is computed and reported. All months for which at least one data item is available should be listed, and unverified items should also be counted and included in the average. A sample of output lines for the same test file is:

S2, Jan, 10 values, 2000-2009, mean of 23.5mm S2, Feb, 10 values, 2000-2009, mean of 45.5mm S2, Mar,   9 values, 2000-2009, mean of   33.8mm

S2, Dec, 10  values, 2000-2009, mean  of  48.6mm

Full examples are linked from the FAQ page, including showing what should be written if there are no rainfall records in one or more of the months. Note that the monthly averages are required again in Stage 4, so they should be computed in this stage and then retained, rather than being computed again later.

 

Stage 3 – Climate Change? (Marks up to 16/20) now for some trend analysis. Suppose that a sequence of n values r0 . . . rn1 is given (in this case, ri is the rainfall amount for some specific month across a sequence of years), and we wish to know if there is an overall upward or downward trend over the n values. One simple correlation coefficient that can be used is Kendall’s τ (pronounced “tau”), which for data already ordered on one aspect (in our case, ordered by time) is computed as:

where δ(ri, rj) is +1 if ri < rj; is 1 if ri > rj; and is 0 if ri = rj. A τ value of +1.0 indicates perfect monotonic increase across the sequence of values; a τ value of 1.0 indicates perfect monotonic decrease across the sequence of values; and a τ value of 0.0 indicates neither consistent growth nor consistent decrease.

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme

Get Free Quote!

365 Experts Online