(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 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 ArrayList of strings. Store the integer components of the data points in a second ArrayList of integers. 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.  If entry has more than one comma Output: Error: Too many commas in input.  If entry after the comma is not an integer Output: Error: Comma not followed by an integer.  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 minimum of 33 characters. Column 1 is left justified with a minimum of 20 characters. Column 2 is right justified with a minimum of 23 characters.  (6) Output the information as a formatted histogram. Each name is right justified with a minimum of 20 characters.  import java.util.Scanner; import java.util.ArrayList; public class DataVisualizer {     public static void main(String[] args) {         Scanner scnr = new Scanner(System.in);         // Prompt the user for a title for data         System.out.println("Enter a title for the data:");         String title = scnr.nextLine();         System.out.println("You entered: " + title);         // Prompt the user for the headers of two columns of a table         System.out.println("Enter the column 1 header:");         String column1Header = scnr.nextLine();         System.out.println("You entered: " + column1Header);         System.out.println("Enter the column 2 header:");         String column2Header = scnr.nextLine();         System.out.println("You entered: " + column2Header);         // Create two ArrayLists to store the string and integer components of the data points         ArrayList dataStrings = new ArrayList<>();         ArrayList dataIntegers = new ArrayList<>();         // Prompt the user for data points         System.out.println("Enter a data point (-1 to stop input): ");         String dataPoint = scnr.nextLine();         while (!dataPoint.equals("-1")) {             // Check for errors in the data point             if (!dataPoint.contains(",")) {                 System.out.println("Error: No comma in string.");             } else if (dataPoint.split(",").length > 2) {                 System.out.println("Error: Too many commas in input.");             } else if (!dataPoint.split(",")[1].matches("\\d+")) {                 System.out.println("Error: Comma not followed by an integer.");             } else {                 // Split the data point at the comma                 String[] dataPointComponents = dataPoint.split(",");                 // Add the string and integer components of the data point to the ArrayLists                 dataStrings.add(dataPointComponents[0]);                 dataIntegers.add(Integer.parseInt(dataPointComponents[1]));             }             // Prompt for the next data point             System.out.println("Enter a data point (-1 to stop input): ");             dataPoint = scnr.nextLine();         }         // Output the information in a formatted table         System.out.println();         System.out.println(String.format("%-33s | %-23s", title, column2Header));         System.out.println("--------------------------------------------");         for (int i = 0; i < dataStrings.size(); i++) {             System.out.println(String.format("%-20s | %23d", dataStrings.get(i), dataIntegers.get(i)));         }         // Output the information as a formatted histogram         System.out.println();         System.out.println("Histogram:");         for (int i = 0; i < dataStrings.size(); i++) {             System.out.println(String.format("%-20s", dataStrings.get(i)) + "*".repeat(dataIntegers.get(i)));         }     }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

(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 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 ArrayList of strings. Store the integer components of the data points in a second ArrayList of integers.

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. 
  • If entry has more than one comma
    • Output: Error: Too many commas in input. 
  • If entry after the comma is not an integer
    • Output: Error: Comma not followed by an integer. 


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 minimum of 33 characters. Column 1 is left justified with a minimum of 20 characters. Column 2 is right justified with a minimum of 23 characters. 


(6) Output the information as a formatted histogram. Each name is right justified with a minimum of 20 characters. 

import java.util.Scanner;
import java.util.ArrayList;

public class DataVisualizer {

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);

        // Prompt the user for a title for data
        System.out.println("Enter a title for the data:");
        String title = scnr.nextLine();
        System.out.println("You entered: " + title);

        // Prompt the user for the headers of two columns of a table
        System.out.println("Enter the column 1 header:");
        String column1Header = scnr.nextLine();
        System.out.println("You entered: " + column1Header);
        System.out.println("Enter the column 2 header:");
        String column2Header = scnr.nextLine();
        System.out.println("You entered: " + column2Header);

        // Create two ArrayLists to store the string and integer components of the data points
        ArrayList<String> dataStrings = new ArrayList<>();
        ArrayList<Integer> dataIntegers = new ArrayList<>();

        // Prompt the user for data points
        System.out.println("Enter a data point (-1 to stop input): ");
        String dataPoint = scnr.nextLine();
        while (!dataPoint.equals("-1")) {
            // Check for errors in the data point
            if (!dataPoint.contains(",")) {
                System.out.println("Error: No comma in string.");
            } else if (dataPoint.split(",").length > 2) {
                System.out.println("Error: Too many commas in input.");
            } else if (!dataPoint.split(",")[1].matches("\\d+")) {
                System.out.println("Error: Comma not followed by an integer.");
            } else {
                // Split the data point at the comma
                String[] dataPointComponents = dataPoint.split(",");

                // Add the string and integer components of the data point to the ArrayLists
                dataStrings.add(dataPointComponents[0]);
                dataIntegers.add(Integer.parseInt(dataPointComponents[1]));
            }

            // Prompt for the next data point
            System.out.println("Enter a data point (-1 to stop input): ");
            dataPoint = scnr.nextLine();
        }

        // Output the information in a formatted table
        System.out.println();
        System.out.println(String.format("%-33s | %-23s", title, column2Header));
        System.out.println("--------------------------------------------");
        for (int i = 0; i < dataStrings.size(); i++) {
            System.out.println(String.format("%-20s | %23d", dataStrings.get(i), dataIntegers.get(i)));
        }

        // Output the information as a formatted histogram
        System.out.println();
        System.out.println("Histogram:");
        for (int i = 0; i < dataStrings.size(); i++) {
            System.out.println(String.format("%-20s", dataStrings.get(i)) + "*".repeat(dataIntegers.get(i)));
        }
    }
}

Jane Austen
Charles Dickens
Ernest Hemingway
Jack Kerouac
F. Scott Fitzgerald ********
Mary Shelley
Charlotte Bronte
Mark Twain
Agatha Christie
Ian Flemming
Stephen King
Oscar Wilde
****
Transcribed Image Text:Jane Austen Charles Dickens Ernest Hemingway Jack Kerouac F. Scott Fitzgerald ******** Mary Shelley Charlotte Bronte Mark Twain Agatha Christie Ian Flemming Stephen King Oscar Wilde ****
Number of Novels Authored
Author name
Jane Austen
Charles Dickens
Ernest Hemingway
Jack Kerouac
F. Scott Fitzgerald |
Mary Shelley
Charlotte Bronte
Mark Twain
Agatha Christie
Ian Flemming
Stephen King
Oscar Wilde
Number of novels
6
20
9
22
8
007
JP
7
слн
5
11
HM
73
14
54
1
Transcribed Image Text:Number of Novels Authored Author name Jane Austen Charles Dickens Ernest Hemingway Jack Kerouac F. Scott Fitzgerald | Mary Shelley Charlotte Bronte Mark Twain Agatha Christie Ian Flemming Stephen King Oscar Wilde Number of novels 6 20 9 22 8 007 JP 7 слн 5 11 HM 73 14 54 1
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY