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...
1. Write a program in C++ to find the factorial of a number. Prompt the user...
1. Write a program in C++ to find the factorial of a number. Prompt the user for a number and compute the factorial by using the following expression. Use for loops to write your solution code. Factorial of n = n! = 1×2×3×...×n; where n is the user input. Sample Output: Find the factorial of a number: ------------------------------------ Input a number to find the factorial: 5 The factorial of the given number is: 120 2. Code problem 1 using While...
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...
Write a C program Your program will prompt the user to enter a value for the...
Write a C program Your program will prompt the user to enter a value for the amount of expenses on the credit card. Retrieve the user input using fgets()/sscanf() and save the input value in a variable. The value should be read as type double. The user may or may not enter cents as part of the input. In other words, expect the user to enter values such as 500, 500.00 and 500.10. The program will then prompt the user...
write a program to perform the following in C Your program should prompt the user to...
write a program to perform the following in C Your program should prompt the user to enter ten words, one at a time, which are to be stored in an array of strings. After all of the words have been entered, the list is to be reordered as necessary to place the words into alphabetical order, regardless of case. Once the list is in alphabetical order, the list should be output to the console in order. The program should execute...
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...
Create a C++ program that will prompt the user to input an positive integer number and...
Create a C++ program that will prompt the user to input an positive integer number and output the corresponding number to words. Check all possible invalid input data. (Please use only switch or if-else statements. Thank you.)
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT