CMIS 102 Hands-On Lab Week 8

CMIS 102 Hands-On Lab– Week 8

Overview

This hands-on lab allows you to follow and experiment with the critical steps of developing a program including the program description, analysis, test plan, and implementation with C code. The example provided uses sequential, repetition, selection statements, functions, strings and arrays.

Program Description

This program will input and store meteorological data into an array. The program will prompt the user to enter the average monthly rainfall for a specific region and then use a loop to cycle through the array and print out each value. The program should store up 5 years of meteorological data. Data is collected once per month. The program should provide the option to the user of not entering any data.

Analysis

I will use sequential, selection, and repetition programming statements and an array to store data.

I will define a 2-D array of Float number: Raindata[][] to store the Float values input by the user. To store up to 5 years of monthly data, the array size should be at least 5*12 = 60 elements. In a 2D array this will be RainData[5][12]. We can use #defines to set the number of years and months to eliminate hard-coding values.

A float number (rain) will also be needed to input the individual rain data.

A nested for loop can be used to iterate through the array to enter Raindata. A nested for loop can also be used to print the data in the array.

A array of strings can be used to store year and month names. This will allow a tabular display with labels for the printout.

Functions will be used to separate functionality into smaller work units. Functions for displaying the data and inputting the data will be used.

A selection statement will be used to determine if data should be entered.

Test Plan

To verify this program is working properly the input values could be used for testing:

Test Case

Input

Expected Output

1

Enter data? = y

year

month

rain

1.2

2011

Jan

1.20

2.2

2011

Feb

2.20

3.3

2011

Mar

3.30

2.2

2011

Apr

2.20

2011

May

10.20

10.2

2011

Jun

12.20

12.2

2011

Jul

2.30

2.3

2011

Aug

0.40

0.4

2011

Sep

0.20

0.2

2011

Oct

1.10

1.1

2011

Nov

2.10

2.1

2011

Dec

0.40

1

0.4

2012

Jan

1.10

1.1

2012

Feb

2.20

2.2

2012

Mar

3.30

3.3

2012

Apr

2.20

2.2

2012

May

10.20

2012

Jun

12.20

10.2

2012

Jul

2.30

12.2

2012

Aug

0.40

2.3

2012

Sep

0.20

0.4

2012

Oct

1.10

0.2

2012

Nov

2.10

1.1

2012

Dec

0.40

2.1

2013

Jan

1.10

0.4

2013

Feb

2.20

1.1

2013

Mar

3.30

2.2

2013

Apr

2.20

3.3

2013

May

10.20

2.2

2013

Jun

12.20

10.2

2013

Jul

2.30

12.2

2013

Aug

0.40

2.3

2013

Sep

0.20

2013

Oct

1.10

0.4

2013

Nov

2.10

0.2

2013

Dec

0.40

1.1

2014

Jan

1.10

2.1

2014

Feb

2.20

0.4

2014

Mar

3.30

1.1

2014

Apr

2.20

2.2

2014

May

10.20

3.3

2014

Jun

12.20

2.2

2014

Jul

2.30

10.2

2014

Aug

0.40

12.2

2014

Sep

0.20

2.3

2014

Oct

1.10

0.4

2014

Nov

2.10

0.2

2014

Dec

0.40

1.1

2015

Jan

1.10

2015

Feb

2.20

2.1

2015

Mar

3.30

0.4

2015

Apr

2.20

1.1

2015

May

10.20

2.2

2015

Jun

12.20

3.3

2015

Jul

2.30

2.2

2015

Aug

0.40

10.2

2015

Sep

0.20

12.2

2015

Oct

1.10

2.3

2015

Nov

2.10

0.4

2015

Dec

0.40

0.2

Please try the

1.1

Precipitation program

2.1

again.

0.4

2

Enter data? = n

No data was input at

this time.

2

Please try the Precipitation program again.

C Code

The following is the C Code that will compile in execute in the online compilers.

C code
This program will input and store meteorological data into an array.

Developer: Faculty CMIS102
Date: Jan 31, XXXX

#define NUMMONTHS 12 #define NUMYEARS 5 #include <stdio.h>

function prototypes void inputdata();

void printdata();

Global variables

These are available to all functions float Raindata[NUMYEARS][NUMMONTHS];

char years[NUMYEARS][5] = {“2011″,”2012″,”2013″,”2014″,”2015”}; char months[NUMMONTHS][12]

={“Jan”,”Feb”,”Mar”,”Apr”,”May”,”Jun”,”Jul”,”Aug”,”Sep”,”Oct”,”Nov”,”Dec”}; int main ()

{

char enterData = ‘y’;

printf(“Do you want to input Precipatation data? (y for yes)n”); scanf(“%c”,&enterData);

if (enterData == ‘y’) {

// Call Function to Input data inputdata();

// Call Function to display data printdata();

}

else {

printf(“No data was input at this timen”);

}

printf(“Please try the Precipitation program again. n”); return 0;

}

// function to inputdata void inputdata() {

/* variable definition: */ float Rain=1.0;

// Input Data

for (int year=0;year < NUMYEARS; year++) {

for  (int month=0; month< NUMMONTHS; month++) { printf(“Enter rain for %d, %d:n”, year+1, month+1); scanf(“%f”,&Rain);

Raindata[year][month]=Rain;

3

}

}

}

Function to printdata void printdata(){

Print data

printf (“yeart montht rainn”);

for (int year=0;year < NUMYEARS; year++) {

for (int month=0; month< NUMMONTHS; month++) {

printf(“%st %st %5.2fn”, years[year],months[month],Raindata[year][month]);

}

}

}

Setting up the code and the input parameters in ideone.com:

You can change these values to any valid integer values to match your test cases.

4

Results from running the programming at ideone.com

5

Learning Exercises for you to complete

Modify the program to add a function to sum the rainfall for each year. (Hint: you need to sum for each year. You can do this using a looping structure). Support your experimentation with screen captures of executing the new code.

Enhance the program to allow the user to enter another meteorological element such as windspeed (e.g. 2.4 mph). Note, the user should be able to enter both rainfall and windspeed in your new implementation. Support your experimentation with screen captures of executing the new code.

Prepare a new test table with at least 2 distinct test cases listing input and expected output for the code you created after step 2.

What happens if you change the NUMMONTHS and NUMYEARS definitions to other values? Be sure to use both lower and higher values. Describe and implement fixes for any issues if errors results. Support your experimentation with screen captures of executing the new code.

Grading guidelines

Submission

Points

Successfully demonstrates execution of this lab with online

2

compiler. Includes a screen capture.

Modifies the code to add a function to sum the rainfall for

2

each year. Support your experimentation with screen

captures of executing the new code

Enhances the program to allow the user to enter another

2

meteorological element such as windspeed (e.g. 2.4 mph).

Support your experimentation with screen captures of

executing the new code.

Provides a new test table with at least 2 distinct test cases

1

listing input and expected output for the code you created

after step 2.

Describes what would happen if you change the

2

NUMMONTHS and NUMYEARS definitions to other values?

Applies both lower and higher values. Describes and

implements fixes for any issues if errors results. Support your

experimentation with screen captures of executing the new

code

Document is well-organized, and contains minimal spelling

1

and grammatical errors.

Total

10

6

Calculate the price
Make an order in advance and get the best price
Pages (550 words)
$0.00
*Price with a welcome 15% discount applied.
Pro tip: If you want to save more money and pay the lowest price, you need to set a more extended deadline.
We know how difficult it is to be a student these days. That's why our prices are one of the most affordable on the market, and there are no hidden fees.

Instead, we offer bonuses, discounts, and free services to make your experience outstanding.
How it works
Receive a 100% original paper that will pass Turnitin from a top essay writing service
step 1
Upload your instructions
Fill out the order form and provide paper details. You can even attach screenshots or add additional instructions later. If something is not clear or missing, the writer will contact you for clarification.
Pro service tips
How to get the most out of your experience with Lets Write For You
One writer throughout the entire course
If you like the writer, you can hire them again. Just copy & paste their ID on the order form ("Preferred Writer's ID" field). This way, your vocabulary will be uniform, and the writer will be aware of your needs.
The same paper from different writers
You can order essay or any other work from two different writers to choose the best one or give another version to a friend. This can be done through the add-on "Same paper from another writer."
Copy of sources used by the writer
Our college essay writers work with ScienceDirect and other databases. They can send you articles or materials used in PDF or through screenshots. Just tick the "Copy of sources" field on the order form.
Testimonials
See why 20k+ students have chosen us as their sole writing assistance provider
Check out the latest reviews and opinions submitted by real customers worldwide and make an informed decision.
11,595
Customer reviews in total
96%
Current satisfaction rate
3 pages
Average paper length
37%
Customers referred by a friend
OUR GIFT TO YOU
15% OFF your first order
Use a coupon FIRST15 and enjoy expert help with any task at the most affordable price.
Claim my 15% OFF Order in Chat