Question

In: Computer Science

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 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.
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 minimum of 20 characters.
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

Below is complete code. Let me know if you have any problem or doubts. Thank you.

=================================================================

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

public class DataVisualization {

   // main method to run program
   public static void main(String[] args) {
       // ANSWER 1
       // create scanner object to read from user
       Scanner in = new Scanner(System.in);
       // Prompt the user for a title for data
       System.out.println("Enter a title for the data:");
       String title = in.nextLine();
       // Output the title
       System.out.println("You entered: " + title);
      
       // ANSWER 2
       // Prompt the user for the headers of two columns of a table
       // Output the column headers
       System.out.println("Enter the column 1 header:");
       String header1 = in.nextLine();
       System.out.println("You entered: " + header1);
       System.out.println("Enter the column 2 header:");
       String header2 = in.nextLine();
       System.out.println("You entered: " + header2);
      
       // ANSWER 3
       // Prompt the user for data points
       // Data points must be in this format: string, int
       // The user will enter -1 when they have finished entering data points
       ArrayList<String> dataString = new ArrayList<String>();
       ArrayList<Integer> dataValue = new ArrayList<Integer>();
       while(true) {
           System.out.println("Enter a data point (-1 to stop input):");
           String[] data = in.nextLine().split(",");
           String name;
           int value;
           // check if loop need to be ended
           if(data[0].compareTo("-1") == 0) { // we are getting user input in string form
               break;
           }
          
           // ANSWER 4
           // Perform error checking for the data point entries
           // If any error occurs, output the appropriate error message
           // and prompt again for a valid data point
           if(data.length < 2) {
               System.out.println("Error: No comma in string.");
           }
           else if(data.length > 2){
               System.out.println("Error: Too many commas in input.");
           }
           else {
               try {
                   // Store the information before the comma into a string variable and
                   // the information after the comma into an integer
                   name = data[0];
                   value = Integer.parseInt(data[1].trim());
                   // Output the data points
                   System.out.println("Data string: " + name);
                   System.out.println("Data integer: " + Integer.toString(value));
                   // 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.
                   dataString.add(name);
                   dataValue.add(value);
               }
               catch (NumberFormatException e) {
                   System.out.println("Error: Comma not followed by an integer.");
               }
           }      
       }// end of while loop
      
       // ANSWER 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
       System.out.println(); // print empty line
       System.out.println(String.format("%33s", title));
       System.out.print(String.format("%-22s|", header1));
       System.out.println(String.format("%23s", header2));
       System.out.println("-------------------------------------------");
       for(int i=0; i<dataString.size(); i++) {
           System.out.print(String.format("%-22s|", dataString.get(i)));
           System.out.println(String.format("%23d", dataValue.get(i)));
       }
      
       // Answer 6
       // Output the information as a formatted histogram
       // Each name is right justified with a minimum of 20 characters
       System.out.println(); // print empty line
       for(int i=0; i<dataString.size(); i++) {
           System.out.print(String.format("%20s ", dataString.get(i)));
           for(int j=0; j<dataValue.get(i); j++) {
               System.out.print('*');
           }
           System.out.println();
       }
       in.close();
   }
  
}

=================================================================


Related Solutions

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...
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:...
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...
Create in Java a program that will prompt the user to enter aweight for a...
Create in Java a program that will prompt the user to enter a weight for a patient in kilograms and that calculates both bolus and infusion rates based on weight of patient in an interactive GUI application, label it AMI Calculator. The patients weight will be the only entry from the user. Use 3999 as a standard for calculating BOLUS: To calculate the BOLUS you will multiply 60 times the weight of the patient for a total number. IF the...
Create in java a program that will prompt the user to enter a weight for a...
Create in java a program that will prompt the user to enter a weight for a patient in kilograms and that calculates infusion rates based on weight of patient in an interactive GUI application, label it HEPCALC. The patients’ weight will be the only entry from the user. To calculate the infusion rate you will multiply 12 times the weight divided by 50 for a total number. The end result will need to round up or down the whole number....
IN JAVA PROGRAMMING Write a complete Java program to do the following: a) Prompt the user...
IN JAVA PROGRAMMING Write a complete Java program to do the following: a) Prompt the user to enter the name of the month he/she was born in (example: September). b) Prompt the user to enter his/her weight in pounds (example: 145.75). c) Prompt the user to enter his/her height in feet (example: 6.5). d) Display (print) a line of message on the screen that reads as follows: You were born in the month of September and weigh 145.75 lbs. and...
JAVA PROGRAM Write program that will prompt user generate two random integers with values from 1...
JAVA PROGRAM Write program that will prompt user generate two random integers with values from 1 to 10 then subtract the second integer from the first integer. Note, if the second integer is greater than the first integer, swap the two integers before making the subtraction.Then prompt user for the answer after the subtraction. If the answer is correct, display “Correct”otherwise display “Wrong”.You will need to do this in a loop FIVE times and keep a count of how many...
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 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> and switch and if-else statements only. Thank you. Ex. Enter a number: 68954 Sixty Eight Thousand Nine Hundred Fifty Four Enter a number: 100000 One Hundred Thousand Enter a number: -2 Number should be from 0-1000000 only
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT