Question

In: Computer Science

9.6 Ch 9 Program: Data visualization (in C) (1) Prompt the user for a title for...

9.6 Ch 9 Program: Data visualization (in C)

(1) Prompt the user for a title for data. Output the title. (1 pt)

Ex:

Enter a title for the data:
Number of Novels Authored
You entered: Number of Novels Authored


(2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt)

Ex:

Enter the column 1 header:
Author name
You entered: Author name

Enter the column 2 header:
Number of novels
You entered: Number of novels


(3) Prompt the user for data points. Data points must be in this format: string, int. Store the information before the comma into a string variable and the information after the comma into an integer. The user will enter -1 when they have finished entering data points. Output the data points. Store the string components of the data points in an array of strings. Store the integer components of the data points in an array of integers. (4 pts)

Ex:

Enter a data point (-1 to stop input):
Jane Austen, 6
Data string: Jane Austen
Data integer: 6


(4) Perform error checking for the data point entries. If any of the following errors occurs, output the appropriate error message and prompt again for a valid data point.

  • If entry has no comma
    • Output: Error: No comma in string. (1 pt)
  • If entry has more than one comma
    • Output: Error: Too many commas in input. (1 pt)
  • If entry after the comma is not an integer
    • Output: Error: Comma not followed by an integer. (2 pts)


Ex:

Enter a data point (-1 to stop input):
Ernest Hemingway 9
Error: No comma in string.

Enter a data point (-1 to stop input):
Ernest, Hemingway, 9
Error: Too many commas in input.

Enter a data point (-1 to stop input):
Ernest Hemingway, nine
Error: Comma not followed by an integer.

Enter a data point (-1 to stop input):
Ernest Hemingway, 9
Data string: Ernest Hemingway
Data integer: 9


(5) Output the information in a formatted table. The title is right justified with a width of 33. Column 1 has a width of 20. Column 2 has a width of 23. (3 pts)

Ex:

        Number of Novels Authored
Author name         |       Number of novels
--------------------------------------------
Jane Austen         |                      6
Charles Dickens     |                     20
Ernest Hemingway    |                      9
Jack Kerouac        |                     22
F. Scott Fitzgerald |                      8
Mary Shelley        |                      7
Charlotte Bronte    |                      5
Mark Twain          |                     11
Agatha Christie     |                     73
Ian Flemming        |                     14
J.K. Rowling        |                     14
Stephen King        |                     54
Oscar Wilde         |                      1


(6) Output the information as a formatted histogram. Each name is right justified with a width of 20. (4 pts)

Ex:

         Jane Austen ******
     Charles Dickens ********************
    Ernest Hemingway *********
        Jack Kerouac **********************
 F. Scott Fitzgerald ********
        Mary Shelley *******
    Charlotte Bronte *****
          Mark Twain ***********
     Agatha Christie *************************************************************************
        Ian Flemming **************
        J.K. Rowling **************
        Stephen King ******************************************************
         Oscar Wilde *

Solutions

Expert Solution

Code:-

#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{
   vector<string> dataStr;
   vector<int> dataPoint;
   string title, header1, header2,s;
   cout<<"Enter a title for the data: ";
    getline(cin,title);
    cout<<"You entered: "<<title<<endl;
    cout<<"Enter the column 1 header: ";
    getline(cin,header1);
    cout<<"You entered: "<<header1<<endl;
    cout<<"<Enter the column 2 header: ";
    getline(cin,header2);
    cout<<"You entered: "<<header2<<endl;
    while(true)
   {
       cout<<"Enter a data point (-1 to stop input): ";
       getline(cin,s);
       if(s == "-1")
       {
           break;
        }
        else
       {
            int commaCount = 0;
            for(int i=0; i<s.length(); i++)
           {
                if(s[i] == ',')
                    commaCount++;
            }
              if(commaCount == 0)
           {
                  cout<<"Error: No comma in string."<<endl;
              }
              else if(commaCount > 1)
           {
                  cout<<"Error: Too many commas in input."<<endl;
              }
              else
           {
                  string firstWord = s.substr(0, s.find(","));
               string secondWord = s.substr(s.find(",")+1, s.length()-1);
               firstWord.erase(0, firstWord.find_first_not_of(' '));
               secondWord.erase(0, secondWord.find_first_not_of(' '));
               int countNumbers = 0;
               for(int i=0; i<secondWord.length(); i++)
               {
                   if(secondWord[i] >='0' && secondWord[i] <= '9')
                   {
                       countNumbers++;
                   }
               }
               if(countNumbers == secondWord.length())
               {
                   dataPoint.push_back(atoi(secondWord.c_str()));
                   dataStr.push_back(firstWord);
                   cout<<"Data string: "<<firstWord<<endl;
                   cout<<"Data integer: "<<secondWord<<endl;
               }
               else
               {
                   cout<<"Error: Comma not followed by an integer."<<endl;
               }
           }
       }
   }
   cout<<right<<setw(33)<<title<<endl;
   cout<<left<<setw(20)<<header1<<"|"<<right<<setw(23)<<header2<<endl;
   cout<<"-------------------------------------"<<endl;
   for(int i=0; i<dataStr.size(); i++)
   {
       cout<<left<<setw(20)<<dataStr[i]<<"|"<<right<<setw(23)<<dataPoint[i]<<endl;
   }
   cout<<endl<<endl;
   for(int i=0; i<dataStr.size();i++)
   {
        cout<<dataStr[i]<<" ";
        for(int j=0; j<dataPoint[i];j++)
        {
           cout<<"*";
        }
           cout<<endl;
   }
   return 0;
}

Code Screenshots:-

Output:-

Please UPVOTE thank you...!!!


Related Solutions

JAVA Program: Data visualization (1) Prompt the user for a title for data. Output the title....
JAVA Program: Data visualization (1) Prompt the user for a title for data. Output the title. Ex: Enter a title for the data: Number of Novels Authored You entered: Number of Novels Authored (2) Prompt the user for the headers of two columns of a table. Output the column headers. Ex: Enter the column 1 header: Author name You entered: Author name Enter the column 2 header: Number of novels You entered: Number of novels (3) Prompt the user for...
10.8 LAB*: Program: Data visualization (1) Prompt the user for a title for data. Output the...
10.8 LAB*: Program: Data visualization (1) Prompt the user for a title for data. Output the title. (1 pt) Ex: Enter a title for the data: Number of Novels Authored You entered: Number of Novels Authored (2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt) Ex: Enter the column 1 header: Author name You entered: Author name Enter the column 2 header: Number of novels You entered: Number of novels...
use c++ (1) Prompt the user for a title for data. Output the title. (1 pt)...
use c++ (1) Prompt the user for a title for data. Output the title. (1 pt) Ex: Enter a title for the data: Number of Novels Authored You entered: Number of Novels Authored (2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt) Ex: Enter the column 1 header: Author name You entered: Author name Enter the column 2 header: Number of novels You entered: Number of novels (3) Prompt the...
(1) Prompt the user for a title for data. Output the title. (1 pt) Ex: Enter...
(1) Prompt the user for a title for data. Output the title. (1 pt) Ex: Enter a title for the data: Number of Novels Authored You entered: Number of Novels Authored (2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt) Ex: Enter the column 1 header: Author name You entered: Author name Enter the column 2 header: Number of novels You entered: Number of novels (3) Prompt the user for...
IN C This assignment is to write a program that will prompt the user to enter...
IN C This assignment is to write a program that will prompt the user to enter a character, e.g., a percent sign (%), and then the number of percent signs (%) they want on a line. Your program should first read a character from the keyboard, excluding whitespaces; and then print a message indicating that the number must be in the range 1 to 79 (including both ends) if the user enters a number outside of that range. Your program...
Create a C++ program that will prompt the user to input an integer number and output...
Create a C++ program that will prompt the user to input an integer number and output the corresponding number to its numerical words. (From 0-1000000 only) **Please only use #include <iostream>, switch and if-else statements only and do not use string storing for the conversion in words. Thank you.** **Our class is still discussing on the basics of programming. Please focus only on the basics. Thank you.** Example outputs: Enter a number: 68954 Sixty Eight Thousand Nine Hundred Fifty Four...
Write a C program that prompt the user to enter 10 numbers andstores the numbers...
Write a C program that prompt the user to enter 10 numbers and stores the numbers in an array. Write a function, smallestIndex, that takes as parameters an int array and its size and return the index of the first occurrence of the smallest element in the array.The main function should print the smallest number and the index of the smallest number.
Write a C++ program that prompt the user to enter 10 numbers andstores the numbers...
Write a C++ program that prompt the user to enter 10 numbers and stores the numbers in an array. Write a function, smallestIndex, that takes as parameters an int array and its size and return the index of the first occurrence of the smallest element in the array.The main function should print the smallest number and the index of the smallest number.
C++ PLEASE Write a program to prompt the user to display the following menu: Guess-Number                       ...
C++ PLEASE Write a program to prompt the user to display the following menu: Guess-Number                        Concat-names             Quit If the user selects Guess-number, your program needs to call a user-defined function called int guess-number ( ). Use random number generator to generate a number between 1 – 100. Prompt the user to guess the generated number and print the following messages. Print the guessed number in main (): Guess a number: 76 96: Too large 10 Too small 70 Close...
C++ Code Writing prompt: Grade Calculation: Write a program that asks the user to enter in...
C++ Code Writing prompt: Grade Calculation: Write a program that asks the user to enter in a number greater than or equal to zero and less than or equal to 100. If they do not you should alert them and end the program. Next, determine the letter grade associated with the number. For example, A is any grade between 90 and 100. Report the letter grade to the user.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT