Develop a system flowchart and then write a menudriven C pro

Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator.

Upon program execution, the screen will be cleared and the menu shown below will appear at the top of the screen and centered. The menu items are explained below.

                                    Help                        Smallest                        Largest                       Quit

H or h ( for Help ) option will invoke a function named help() which will display a help screen. The help screen(s) should guide the user how to interact with the program, type of data to be used, and what results would the program produce. Each help screen should remain on the monitor until the user strikes any key. Once the user completes reading the help() screens, striking any key will clear the screen and the menu is displayed again.

The main() function will declare an array of 60 elements. The elements are of type double. The menu options S and L, will ask the user for the actual number of elements for the array. The program must verify that the actual number of elements does not exceed 60 and is not a negative number or 0. Your code must check for these.

S or s ( for Smallest ) option will invoke a function named smallest( ) which will prompt the user for the number of elements for the array to be examined using the function sizeOfArray( ) which will read and validate the desired array elements and returns it to the calling function. The program will then use the returned size of the array to fill the array using the number generator functions shown at the end of this assignment. Your program will ask the user for the range of values for the elements of the array and uses these numbers in a random generator function to fill the array. Once the array is filled, the program will call the function findSmallest( ) which will find and return the smallest number in the array to the calling function. The program will then call the function frequency(), that will compute and return the frequency of occurrence of the smallest number. The program will then display the array elements, the smallest number, and its frequency of occurrence using the function display( ), in the format shown below. The output shown is for an array of six elements with an array identifier a.

                  a[0] = xxxx.xx

       a[1] = xxxx.xx

       a[2] = xxxx.xx

       a[3] = xxxx.xx

       a[4] = xxxx.xx

       a[5] = xxxx.xx

       Smallest no. = xxxx.xx         Frequency = xx

Note that for the array elements, two digits after the decimal point is required (i.e., 365.24) and the frequence of occurrence is of type integer.

The function prototypes to be used are as follows:

                  void      smallest(double s[], int size);

where s is the original array declared in the main() function and size is the maximum array size specified (60 elements in our case).

//gets the desired array size and returns it

     int       sizeOfArray(void);

//finds the smallest number in the array and returns it via the return statement.

     double    findSmallest(double s[], int myS);

//where s is the specified array name and myS is the desired size of the array.

//Finds the frequency of occurrence of the minimum number

     int       frequency(double s[], double smallestNo, int myS);

here, s is the desired source array, smallestNo is the smallest number found in the function findSmallest(), myS is the desired size of the array. The frequency of occurrence of the minimum number in the array is computed and returned via a return statement. For the smallest number use x <= y when comparing two numbers.

The function display() prototype is:

     void display(double s[], double smallestNo, int freq, int myS);

where s is the desired array name, smallestNo is the smallest number in the array, freq is the frequency of occurrence of the smallest number, and myS is the desired size of the array. The results should stay on the screen with the following prompt which will appear in the lower right corner of the screen:

                                                                                                                                                Strike any key to continue...

Once the user has entered any key followed by the enter key, the screen will be cleared and the menu is displayed again.

L or l ( for Largest ) option will invoke a function named largest( ) which will prompt the user for the number of elements for the array to be examined using the function sizeOfArray( ) which will read and validate the desired array elements and returns it to the calling function. The program will then use the returned size of the array to fill the array using the number generator functions shown at the end of this assignment. Your program will ask the user for the range of values for the elements of the array and uses these numbers in a random generator function to fill the array. Once the array is filled, the program will call the function findLargest( ) which will find and return the largest number in the array to the calling function. The program will then call the function frequency(), that will compute and return the frequency of occurrence of the largest number. The program will then display the array elements, the largest number, and its frequency of occurrence using the function display( ), in the format shown below. The output shown is for an array of six elements with an array identifier a.

                  a[0] = xxxx.xx

       a[1] = xxxx.xx

       a[2] = xxxx.xx

       a[3] = xxxx.xx

       a[4] = xxxx.xx

       a[5] = xxxx.xx

       Largest no. = xxxx.xx         Frequency = xx

Note that for the array elements, two digits after the decimal point is required (i.e., 365.24) and the frequence of occurrence is of type integer.

The function prototypes to be used are as follows:

                  void      largest(double s[], int size);

where s is the original array declared in the main() function and size is the maximum array size specified (60 elements in our case).

//gets the desired array size and returns it

     int       sizeOfArray(void);

//finds the smallest number in the array and returns it via the return statement.

     double    findLargest(double s[], int myS);

//where s is the specified array name and myS is the desired size of the array.

//Finds the frequency of occurrence of the minimum number

     int       frequency(double s[], double largestNo, int myS);

here, s is the desired source array, largestNo is the largest number found in the function findLargest(), myS is the desired size of the array. The frequency of occurrence of the maximum number in the array is computed and returned via a return statement. For the largest number use x >= y when comparing two numbers.

The function display() prototype is:

     void display(double s[], double largestNo, int freq, int myS);

where s is the desired array name, largestNo is the largest number in the array, freq is the frequency of occurrence of the largest number, and myS is the desired size of the array. The results should stay on the screen with the following prompt which will appear in the lower right corner of the screen:

                                                                                                                                                Strike any key to continue...

Once the user has entered any key followed by the enter key, the screen will be cleared and the menu is displayed again.

Q or q (for Quit) option will clear the screen and returns the control to the Visual Studio IDE.

Note: Some of the functions can be shared between the S and L options.

Grading: Flowchart                                                     10 points

                  Meaningful Documentation                  10 points

                  Program execution without error         40 points, this includes proper use of function prototyping, function definitions and documentation

                  Program logic and correct output formats          20 points, this includes at least two sets of data for S and L options.                                                          

Notes:(please read very carefully)

1. Make sure your files are VIRUS FREE! (A grade of 0 will be given for infected files). Use Technology lab PCs for the test.

2. Comment your program.

3. Use meaningful prompts.

4. Provide a brief description of the problem being solved.

5. Be sure to include a header file at the beginning of your program as shown in the course syllabus.

6. NO global declarations of VARIABLES allowed in any program that you develop in this course.

6a. The program uses many user-defined functions as stated in the assignment. You may use additional functions to facilitate your solution. At no time you are allowed to change the essential parts of the problem. Your function arguments cannot be more than five.

7. On the due date, submit your H7 containing the components of the program specified in the guidelines. Create a Word file that contains the header, the flowchart, the list of your .cpp file, and the sample runs of the program. Name this file H7NAME.docx. The source file for H7NAME.cpp and the Visio 2013 file H7NAME.vsdx will be uploaded as well. Unrelated files should not be present when you upload them to the Blackboard. Homework must be uploaded to Blackboard by 9PM of the due date and late homework will not be accepted. NAME is your last name.

8. Use Microsoft Visual Studio Enterprise 2015 compiler using default compiler settings.

9. Use Microsoft Visio 2013 to develop your flowchart.

9a. Illegal inputs must be handled properly without terminating the program.

10. Adherence to the ANSI C++ required.

11. Do not use <stdio.h> and <conio.h> in this assignment and all other assignments.

12. Do not use any #define in your program until the time that is required for class declaration header files.

13. No goto statements allowed in any program that you develop in this course.

14. Non-compliance with these notes will cost you points.

15. No collaboration on this assignment and all other assignments allowed. If you violate this policy, your grade for the course will be F.

16. You need to show us your flowchart before we can help you with your code.

17. When copying and pasting code into a Word document, please use the Courier New font with a font size no more than 10.

18. Late homework will not be accepted.

Solution

#include<iostream>
#include<stdlib.h>
#include <iomanip>
using namespace std;

//Displays menu
void menu()
{
cout<<\"\ H or h for Help\";
cout<<\"\ S or s for Smallest\";
cout<<\"\ L or l for Largest\";
cout<<\"\ Q or q for Quit\";
}

//Finds the frequency
int frequency(double s[], double smallestNo, int myS)
{
int f = 0, c;
//Loops up to the size
for(c = 0; c < myS; c++)
{
//checks for the smallest number in the array
if(s[c] == smallestNo)
f++; //Updates the frequency counter
}
return f; //returns the frequency
}
//Finds the smallest number
double findSmallest(double s[], int myS)
{
//Assumes the first number is the smallest one
double small = s[0];
int c;
//Loops upto size
for(c = 1; c < myS; c++)
{
//Checks for the smallest number
if(s[c] < small)
small = s[c];
}
return small; //returns the smallest number
}
//Accepts data
void smallest(double s[], int size)
{
cout<<\"\ Enter \"<<size<<\" Numbers \ \";
for(int c = 0; c < size; c++)
cin>>s[c];
}
//Returns the size of array
int sizeOfArray(void)
{
int no;
cout<<\"\ Maximum array size specified (60 elements)\";
do
{
cout<<\"\ Enter the size of the array: \";
cin>>no;
//Validates the size
if(no <= 60)
return no;
else
cout<<\"\ Error: Maximum array size specified (60 elements)\";
}while(no > 60);
}
//Displays the array elements, smallest and frequency
void displayS(double s[], double smallestNo, int freq, int myS)
{
for(int c = 0; c < myS; c++)
{
cout<<\"\ a[\"<<c<<\"] = \";
cout<<fixed<<setprecision(2)<<s[c];
}
cout<<\"\ Smallest Number = \"<<fixed<<setprecision(2)<<smallestNo;
cout<<\"\ Frequency = \"<<freq;
}
//Displays the array elements, largest and frequency
void displayL(double s[], double largestNo, int freq, int myS)
{
for(int c = 0; c < myS; c++)
{
cout<<\"a[\"<<c<<\"] = \";
cout<<fixed<<setprecision(2)<<s[c];
}
cout<<\"\ Largest Number = \"<<fixed<<setprecision(2)<<largestNo;
cout<<\"\ Frequency = \"<<freq;
}
//Accepts data
void largest(double s[], int size)
{
cout<<\"\ Enter \"<<size<<\" Numbers \ \";
for(int c = 0; c < size; c++)
cin>>s[c];
}
//Returns the largest number
double findLargest(double s[], int myS)
{
//Assumes the first position of the array is the largest
double larg = s[0];
int c;
//Loops up to the length of array
for(c = 1; c < myS; c++)
{
//Checks for the largest value
if(s[c] > larg)
larg = s[c];
}
return larg; //Returns the largest number
}
//Displays the help
void help()
{
cout<<\"\ The function accepts 60 double numbers or less as per the user choice\";
cout<<\"\ Displays the numbers inputed by the user\";
cout<<\"\ User has to select the S or s to get the smallest number from the inputed numbers\";
cout<<\"\ User has to select the L or l to get the largest number from the inputed numbers\";
cout<<\"\ It also displays the frequency of the smallest and largest numbers \";
}

int main()
{
char ch;
int n;
double arr[60], sm, fr;
do
{
menu();
cout<<\"\ Enter your choice: \";
cin>>ch;
switch(ch)
{
case \'H\':
case \'h\':
help();
system(\"pause\");
break;
case \'S\':
case \'s\':
n = sizeOfArray();
smallest(arr, n);
sm = findSmallest(arr, n);
fr = frequency(arr, sm, n);
displayS(arr, sm, fr, n);
system(\"pause\");
break;
case \'L\':
case \'l\':
n = sizeOfArray();
largest(arr, n);
sm = findLargest(arr, n);
fr = frequency(arr, sm, n);
displayL(arr, sm, fr, n);
system(\"pause\");
break;
case \'Q\':
case \'q\':
exit(0);
default:
cout<<\"\ Invalid Choice: \";
}
}while(1);
}

Output:

H or h for Help
S or s for Smallest
L or l for Largest
Q or q for Quit
Enter your choice: E

Invalid Choice:
H or h for Help
S or s for Smallest
L or l for Largest
Q or q for Quit
Enter your choice: h

The function accepts 60 double numbers or less as per the user choice
Displays the numbers inputed by the user
User has to select the S or s to get the smallest number from the inputed numbers
User has to select the L or l to get the largest number from the inputed numbers
It also displays the frequency of the smallest and largest numbers
Press any key to continue . . .

H or h for Help
S or s for Smallest
L or l for Largest
Q or q for Quit
Enter your choice: s

Maximum array size specified (60 elements)
Enter the size of the array: 5

Enter 5 Numbers
23.56
20.11
89.12
20.11
78.45

a[0] = 23.56
a[1] = 20.11
a[2] = 89.12
a[3] = 20.11
a[4] = 78.45
Smallest Number = 20.11
Frequency = 2
Press any key to continue . . .

H or h for Help
S or s for Smallest
L or l for Largest
Q or q for Quit
Enter your choice: L

Maximum array size specified (60 elements)
Enter the size of the array: 4

Enter 4 Numbers
89.11
80.23
45.23
11.102

a[0] = 89.11
a[1] = 80.23
a[2] = 45.23
a[3] = 11.10
Largest Number = 89.11
Frequency = 1
Press any key to continue . . .

H or h for Help
S or s for Smallest
L or l for Largest
Q or q for Quit
Enter your choice: q

Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi
Develop a system flowchart and then write a menu-driven C++ program that uses user-defined functions arrays, and a random number generator. Upon program executi

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site