Question: Copy pastable code: (code lines needed are in bold) import java.util.*; import java.io.*; import java.lang.*; public class Main { public static void main(String[] args) {

Copy pastable code: (code lines needed are in bold)
import java.util.*;
import java.io.*;
import java.lang.*;
public class Main
{
public static void main(String[] args)
{
Scanner classesInput; // Reads course information from classes.txt
Scanner keyboard = new Scanner(System.in); // Reads input from user
/* INSERT CODE HERE */
// Attempts to create scanner to read from classes.txt
classesInput = new Scanner(new File("classes.txt"));
String line; // Variable used to store each individual line
String[] parts; // Variable used to store the parts of each line (after splitting it)
// The first line of the text file has the number of courses
int numClasses = Integer.parseInt(classesInput.nextLine());
// Arrays to store information about each class
String[] courseNumbers = new String[numClasses];
int[] creditHours = new int[numClasses];
String[] times = new String[numClasses];
String[] prerequisites = new String[numClasses];
String[] courseNames = new String[numClasses];
// Read through all of the classes
for (int index = 0; index
{
// Read one course at a time
line = classesInput.nextLine();
// The course information is split by semi-colons
parts = line.split(";");
// The course will always have a course number
courseNumbers[index] = parts[0];
/* INSERT CODE HERE */
// Try to parse the credit hour amount
creditHours[index] = Integer.parseInt(parts[1]);
/* INSERT CODE HERE */
times[index] = parts[2];
if (times[index].equals(""))
{
// The times component is empty
throw new NoSuchFieldException();
}
/* INSERT CODE HERE */
prerequisites[index] = parts[3];
if (prerequisites[index].equals(""))
{
// The prerequisites component is empty
throw new NoSuchFieldException();
}
/* INSERT CODE HERE */
courseNames[index] = parts[4];
}
/*Menu:
* P - Print out courses
* B - print all course names
* C - print all course numbers
* Q - Quit
*/
// Initialize 'input' to a known invalid value
char input = '?';
do
{
// Prompt the user
System.out.println("Choose an option: ");
// Read in the input, convert it to uppercase letters, then store ONLY the first letter
input = (keyboard.nextLine()).toUpperCase().charAt(0);
if (input == 'P')
// Print out all course information
printCourses(courseNumbers, creditHours, times, prerequisites, courseNames);
else if (input == 'B')
// Print out all course names
printCourseNames(courseNames);
else if (input == 'C')
// Print out all course numbers
printCourseNumbers(courseNumbers);
else if (input == 'Q')
{
// Quit the program --> It will quit on the while condition check
}
else
{
// User has input an invalid option
System.out.println("Invalid Option");
}
}
while(input != 'Q');
}
public static void printCourseNames(String[] names)
{
System.out.println("COURSE NAMES:");
for (int i = 0; i
{
// Print out the individual course name, one per line
System.out.println(names[i]);
}
System.out.println(); // Print empty line after course names
}
/*****************************************************************
* printCourseNumbers(...) takes in an array of course numbers and
* prints each course number on an individual line
*
* @param nums An array of course numbers that were read in
* from classes.txt --> Corresponds to courseNumbers from main(...)
*
* @return void Does not return any values
******************************************************************/
public static void printCourseNumbers(String[] nums)
{
System.out.println("COURSE NUMBERS:");
for (int i = 0; i
{
// Print out the individual course numbers, one per line
System.out.println(nums[i]);
}
System.out.println(); // Print empty line after course numbers
}
/*****************************************************************
* printCourses(...) takes in all information for all courses and
* prints out each course's course number, coures name, credit
* hours, meeting time, and prerequisites
*
* @param num An array of course numbers that were read in
* from classes.txt --> Corresponds to courseNumbers from main(...)
*
* @param hours An array of course credit hours for each course
* that were read in from classes.txt --> Corresponds to
* creditHours from main(...)
*
* @param times An array of meeting times for each course that
* were read in from classes.txt --> Corresponds to times from
* main(...)
*
* @param pre An array of prerequisites for each course, with
* the format of prereq1,prereq2,prereq3,... that was read in from
* classes.txt --> Corresponds to prerequisities from main(...)
*
* @param names An array of course names that were read in from
* classes.txt --> Corresponds to courseNames from main(...)
*
* @return void Does not return any values
******************************************************************/
public static void printCourses(String[] num, int[] hours,String[] times, String[] pre, String[] names)
{
String hoursMessage;
String prereqMessage;
for (int i = 0; i
{
// Determine if the credit hours amount is valid
if (hours[i] == -1)
{
// Credit hours amount is invalid
hoursMessage = num[i] + " does not have any credit hours";
}
else
{
// Credit hours amount is valid
hoursMessage = Integer.toString(hours[i]);
}
// Format the prerequisites
String[] parts = pre[i].split(",");
StringBuilder prerequisitesBuilder = new StringBuilder();
String prerequisiteMessage = "";
for (int p = 0; p
{
// Determine th number of prerequisites for each course
if (parts.length > 1)
{
// If there is more than one prerequisite
if (p
{
// If it's not the last prerequisite
prerequisitesBuilder.append(parts[p]); // Add the prerequisite to the string
prerequisitesBuilder.append(", "); // Add a comma to separate the courses
}
else
{
// If it is the last prerequisite
prerequisitesBuilder.append("and ");
prerequisitesBuilder.append(parts[p]); // Add the last prerequisite
}
}
else
{
// If it is the only prerequisite
prerequisitesBuilder.append(parts[p]);
}
}
// Store the prerequisite information to print later
prerequisiteMessage = prerequisitesBuilder.toString();
// Print the course information
System.out.println("Course Number: " + num[i]);
System.out.println("Name: " + names[i]);
System.out.println("Credit Hours: " + hoursMessage);
System.out.println("Time: " + times[i]);
System.out.println("Prereqs : " + prerequisiteMessage);
System.out.println(); // Print empty line after each course
}
}
}
9.6 Ch 9 Program: Class Information (Java) In this assignment, you will be making a program that reads from a file called classes.txt and displaying that information to the user. The goal for this assignment is to learn how to handle potential exceptions. Use the given template to implement exception-handling techniques Please note: You do not have to edit any parts of the code. Only handle exceptions where the code says /* INSERT CODE HERE */ The four exceptions you have to handle are: NumberFormatExceptiorn FileNotFoundException ArrayIndexOutofBoundsException NoSuchFieldException classes.txt 1 CSCE155;3;3:00PM; Computer Science I CSCE156; 4;12:00PM;CSCE155; Computer Science II CSCE230;4;8:30AM; CSCE155; Computer Organization CSCE235;3;9:30AM; CSCE155; Introduction to Discrete Structures CSCE251;1; ;csCE155;Unix Programming Environment CSCE310;3:11:30AM; CSCE156; Data Structures and Algorithms CSCE322; 3;4:30PM; CSCE156, CSCE230,CSCE311; Programming Language Concepts CSCE351;3;1:30PM; CSCE230, CSCE310, CSCE311 CSCE???;?; CSCE361:3:9:00AM; CSCE310,CSCE311; Software Engineering CSCE423;3;2:00PM; CSCE235, CSCE310,CSCE310;Design and Analysis of Algorithms CSCE428:3;4:30PM; CSCE235, CSCE310, csCE311; Automata, Computation, and Formal Languages CSCE486; 3; 1:00PM ; CSCE36 CSCE 487; 3;10:00AM; CSCE486; Computer Science Senior Design Project 1/Computer science Professional Development
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
