[SOLVED]>>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, Design(program design, pseudocode), 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.

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.

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

An integer variable (Count) is needed to keep count of how many rain data elements were entered. This will keep track to make sure we don’t go over 60 and we print only valid rain 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.

Program Design: Main

// This program will prompt the user to input and store meteorological data into an array for each month for five years. It will then display the collected data.

// Declare variables

// Initialize variables

 

//Prompt user if he wants to input participation data

// IF yes

// Call function to Input Data

// Call function to Print Data

// Else

// Endif

End //End of Main

 

Function InputData

// Loop for number of years

//Loop for number of months

//Prompt user for rain amount

//Get user response

//Assign data to array

//End loop – months

//End loop – years

End Function Function PrintData

// Loop for number of years

//Loop for number of months

//Print out all data form arrays

//End loop – months

//End loop – years

End Function 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 1.2

2.2

3.3

2.2

10.2

12.2

2.3

0.4

0.2

1.1

2.1

0.4

1.1

2.2

3.3

2.2

10.2

12.2

2.3

0.4

0.2

1.1

2.1

0.4

year     month   rain

2011     Jan      1.20

2011     Feb      2.20

2011     Mar      3.30

2011     Apr      2.20

2011     May     10.20

2011     Jun     12.20

2011     Jul      2.30

2011     Aug      0.40

2011     Sep      0.20

2011     Oct      1.10

2011     Nov      2.10

2011     Dec      0.40

2012     Jan      1.10

2012     Feb      2.20

2012     Mar      3.30

2012     Apr      2.20

2012     May     10.20

2012     Jun     12.20

2012     Jul      2.30

2012     Aug      0.40

2012     Sep      0.20

2012     Oct      1.10

2012     Nov      2.10

2012     Dec      0.40

2013     Jan      1.10

2013     Feb      2.20

2013     Mar      3.30

2013     Apr      2.20

 

1.1

2.2

3.3

2.2

10.2

12.2

2.3

0.4

0.2

1.1

2.1

0.4

1.1

2.2

3.3

2.2

10.2

12.2

2.3

0.4

0.2

1.1

2.1

0.4

1.1

2.2

3.3

2.2

10.2

12.2

2.3

0.4

0.2

1.1

2.1

0.4

2013     May     10.20

2013     Jun     12.20

2013     Jul      2.30

2013     Aug      0.40

2013     Sep      0.20

2013     Oct      1.10

2013     Nov      2.10

2013     Dec      0.40

2014     Jan      1.10

2014     Feb      2.20

2014     Mar      3.30

2014     Apr      2.20

2014     May     10.20

2014     Jun     12.20

2014     Jul      2.30

2014     Aug      0.40

2014     Sep      0.20

2014     Oct      1.10

2014     Nov      2.10

2014     Dec      0.40

2015     Jan      1.10

2015     Feb      2.20

2015     Mar      3.30

2015     Apr      2.20

2015     May     10.20

2015     Jun     12.20

2015     Jul      2.30

2015     Aug      0.40

2015     Sep      0.20

2015     Oct      1.10

2015     Nov      2.10

2015     Dec      0.40

 

Please try the Precipitation program again.

2 Enter data? = n No data was input at this time.

Please try the Precipitation program again.

 

Pseudocode: Main

// This program will prompt the user to input and store meteorological data into an array.

// Declare variables

 

Declare NumYears AS Constant 5 Declare NumMonths AS Constant 60

Declare Raindata[NumYears, NumMonths] as Float Declare Count, i as Integer

Declare response AS Char

 

Print (“Do you want to input Precipatation data? (y for yes)\n”); Input response

If (response == ‘y’) {

// Call Function to Input data Input_Data( )

 

// Call Function to display data Print_Data();

Else

Print ( ” No data was input at this time <NL>) ” EndIf

Print(“Please try the Precipitation program again. <NL>”);

End //End of Main Function Input_Data ( )

// Input: none

// Output: none

 

// Declare variables

Declare iyear,imonth AS Integer

 

//Loop for number of years

For (iyear=0; iyear < NumYears; iyear++)

//Loop for number of months

For (imonth=0; imonth < NumMonths; imonth++)

 

//Prompt user for rain amount Print ( “Enter amount of rain) ”

 

//Assign data to array

Input RainData[iyear, imonth] EndFor //End loop – months

EndFor //End loop – years

End Function

 

Function Print_Data ( )

// Input: none

// Output: none

 

// Declare variables

Declare iyear,imonth AS Integer

 

//Loop for number of years

For (iyear=0; iyear < NumYears; iyear++)

//Loop for number of months

For (imonth=0; imonth < NumMonths; imonth++)

 

//Prompt user for rain amount

Print ( years[iyear], months[imonth], Raindata[iyear][imonth] );

 

//Assign data to array

Input RainData[iyear, imonth] EndFor //End loop – months

EndFor //End loop – years

End Function

 

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 time\n”);

}

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

} // end main

//——————————————————-

// 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;

}

}

}

// Function to printdata ———————– void printdata(){

// Print data

printf (“year\t month\t rain\n”);

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

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

printf(“%s\t %s\t %5.2f\n”, 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.

 

Results from running the programming at ideone.com:

 

 

Learning Exercises for you to try:

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

 

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

 

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

 

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

 

Grading guidelines

 

Submission Points
No 1. Modifies the code to add a function to sum the rainfall for each year. Support your experimentation with screen captures of executing the new code 3
No 2. Enhances the program to allow the user to enter another meteorological element such as windspeed (e.g. 2.4 mph). Support your experimentation with screen captures of executing the new code. Submits code as a separate .txt (or .c ) file. 3
No 3. Provides a new test table with at least 2 distinct test cases listing input and expected output for the code you created after step 2. 1
No 4. Describes what would happen if you change the 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 argument with screen captures of executing the new code.

2
Document is well organized, and contains minimal spelling and grammatical

errors.

1
Total 10

 

Order This Solution

Ask your homework question

 

INDIVIDUAL APPROACH:
Chat with every writer who applies to your request, and view their skills and portfolio. Make the choice that’s right for you.
MANAGE YOUR ORDER:
Monitor progress and see any changes made. Have full control over every phase of the process.
COMMUNICATE:
Ask your writer questions and provide your ideas about your paper. Produce the exact result that you want.
ENJOY THE OUTCOME:
Get everything done on time with high quality. Writing papers is much simpler with us.

Ask your homework question

 

© 2017 theacademicessays. All Rights Reserved. Design & Developed by theacademicessays.
Loading...