Related questions
You have to use comment function to describe what each line does
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PreferenceData {
private final List<Student> students;
private final List<Project> projects;
private int[][] preferences;
private static enum ReadState {
STUDENT_MODE, PROJECT_MODE, PREFERENCE_MODE, UNKNOWN;
};
public PreferenceData() {
super();
this.students = new ArrayList<Student>();
this.projects = new ArrayList<Project>();
}
public void addStudent(Student s) {
this.students.add(s);
}
public void addStudent(String s) {
this.addStudent(Student.createStudent(s));
}
public void addProject(Project p) {
this.projects.add(p);
}
public void addProject(String p) {
this.addProject(Project.createProject(p));
}
public void createPreferenceMatrix() {
this.preferences = new int[this.students.size()][this.projects.size()];
}
public void setPreference(Student s, Project p, int preference) {
this.preferences[this.students.indexOf(s)][this.projects.indexOf(p)] = preference;
}
public void setPreference(int row, int column, int preference) {
this.preferences[row][column] = preference;
}
public void setPreferenceRow(int row, String[] prefValues) {
for (int j = 0; j < prefValues.length; j++) {
this.preferences[row][j] = Integer.parseInt(prefValues[j]);
}
}
public List<Student> getStudents() {
return students;
}
public List<Project> getProjects() {
return projects;
}
public int[][] getPreferences() {
return preferences;
}
@Override
public String toString() {
return "PreferenceData [students=" + students + ", projects=" + projects + ", preferences="
+ Arrays.toString(preferences) + "]";
}
static PreferenceData readData(String inputFile) {
PreferenceData prefs = new PreferenceData();
try(BufferedReader reader = new BufferedReader(new FileReader(inputFile))) {
ReadState state = ReadState.UNKNOWN;
int row = 0;
while (reader.ready()) {
String line = reader.readLine();
switch (line.trim()) {
case "Students:":
state = ReadState.STUDENT_MODE;
break;
case "Projects:":
state = ReadState.PROJECT_MODE;
break;
case "Preferences:":
prefs.createPreferenceMatrix();
state = ReadState.PREFERENCE_MODE;
break;
default:
switch (state) {
case STUDENT_MODE:
prefs.addStudent(line);
break;
case PROJECT_MODE:
prefs.addProject(line);
break;
case PREFERENCE_MODE:
prefs.setPreferenceRow(row, line.split(","));
row++;
break;
default:
throw new PreferenceFormatException(line);
}
}
}
reader.close();
} catch (FileNotFoundException e) {
System.err.println("Error opening preferences file. File does not exist as specified.");
e.printStackTrace();
} catch (IOException e) {
System.err.println("Error reading from file.");
e.printStackTrace();
} catch (PreferenceFormatException e) {
System.err.println("Preference file in incorrect format. I can't tell which section I'm in.");
System.err.println("Line being read: " + e.getCurrentLine());
e.printStackTrace();
}
return prefs;
}
public int getPreference(int i, int j) {
return this.preferences[i][j];
}
public int numStudents() {
return this.students.size();
}
public int numProjects() {
return this.projects.size();
}
}
Trending nowThis is a popular solution!
Step by stepSolved in 2 steps
- 2. Team Class a. Variables i. Trainer -> String Gym ->String Members ->arrayList of type pokemon iv. ii. ii. saveFile ->a constant string that is the filename of "teamData.record" b. Methods i. Accessor and Mutator methods for all variables ii. setTeam ->sets all variables for a team ii. 2 Constructors addMember 1. Add a pokemon to the members arraylist 2. readlnput for such pokemon V. saveData 1. Writes all data from this class to the binary file saveFile vi. loadData 1. Loads data from saveFile 2. Set the team using the setTeam method vii. writeOutput 1. Prints all data for a team including printing all data for each pokemon in the members arraylist 2. Before printing pokemon data, ensure that you use Collections.sort(members) on the members arrayList. You can look up how this method works, but it should use the compareTo that we set up in the pokemon class and sort the pokemon into alphabetical order before printing.arrow_forwardUsing C++ Without Using linked lists: Create a class AccessPoint with the following: x - a double representing the x coordinate y - a double representing the y coordinate range - an integer representing the coverage radius status - On or Off Add constructors. The default constructor should create an access point object at position (0.0, 0.0), coverage radius 0, and Off. Add accessor and mutator functions: getX, getY, getRange, getStatus, setX, setY, setRange and setStatus. Add a set function that sets the location coordinates and the range. Add the following member functions: move and coverageArea. Add a function overLap that checks if two access points overlap their coverage and returns true if they do. Add a function signalStrength that returns the wireless signal strength as a percentage. The signal strength decreases as one moves away from the access point location. Represent this with bars like, IIIII. Each bar can represent 20% Test your class by writing a main function that...arrow_forwardJava code 12. Given an existing ArrayList named contactList, find the number of contacts in the ArrayList and store it in the existing variable named numContacts.arrow_forward
- convert this code to JAVA location = [] size = [] rover = 0 def displayInitialList(location, size): global rover print("FSB# location Size") for i in range(len(location)): print(i," ",location[i]," ",size[i]) if rover<len(size)-1: print("Rover is at ",location[rover+1]) else: print("Rover is at ",location[rover]) def allocateMemory(location,size,blockSize): global rover if rover<len(size): while size[rover]<blockSize: rover+=1 if i==len(size): return False location[rover] += blockSize size[rover] -= blockSize rover+=1 return True else: return False def deallocateMemory(location,size,delLocation,delSize): i=0 while delLocation>location[i]: i+=1 location[i]-=delSize size[i]+=delSize while True: print("1. Define Initital memory\n2. Display initial FSB list\n3. Allocate memory\n4. Deallocate memory\n5. Exit") print("Enter choice: ",end="") choice = int(input()) if...arrow_forwardWritten in Python with docstring please if applicable Thank youarrow_forwardPart 2: Sorting the WorkOrders via dates Another error that will still be showing is that there is not Comparable/compareTo() method setup on the WorkOrder class file. That is something you need to fix and code. Implement the use of the Comparable interface and add the compareTo() method to the WorkOrder class. The compareTo() method will take a little work here. We are going to compare via the date of the work order. The dates of the WorkOrder are saved in a MM-DD-YYYY format. There is a dash '-' in between each part of the date. You will need to split both the current object's date and the date sent through the compareTo() parameters. You will have three things to compare against. You first need to check the year. If the years are the same value then you need to go another step to check the months, otherwise you compare them with less than or greater than and return the corresponding value. If you have to check the months it would be the same for years. If the months are the same you...arrow_forward
- Write all the code within the main method in the TestTruck class below. Implement the following functionality. Construct two Truck objects: one with any make and model you choose and the second object with gas tank capacity 10. If an exception occurs, print the stack trace. Print both Truck objects that were constructed. import java.lang.IllegalArgumentException ; public class TestTruck { public static void main( String[] args ) { // write your code herearrow_forwardpreLabC.java 1 import java.util.Random; 2 import java.util.StringJoiner; 3 4- public class preLabC { 5 6- 7 8 9 10 11 12 13 14 15 16 17 18 19 20 } public static String myMethod(MathVector inputVector) { String vectorStringValue = new String(); // empty String object System.out.println("here is the contents object, inputVector: + inputVector); // get a String out of that MathVector object. Do it here. On the next line. // return the double value here. return vectorStringValue; "1 ▸ Compilation Description A MathVector object will be passed to your method. Return its contents as a String. If you look in the file MathVector.java you'll see there is a way to output the contents of a MathVector object as a String. This makes it useful for displaying to the user. /** * Returns a String representation of this vector. The String should be in the format "[1, 2, 3]" * * @return a String representation of this vector * @apiNote **DO NOT** use the built-in (@code Arrays.toString()} method. */...arrow_forwardIn C++ Create a new project named lab9_1 . You will need to implement a Course class. Here is its UML diagram: Course - department : string- course_num : string- section : int- num_students : int- is_full : bool + Course()+ Course(string, string, int, int)+ setDepartment(string) : void+ setNumber(string) : void+ setSection(int) : void+ setStudents(int) : void+ getDepartment() const : string+ getNumber() const : string+ getSection() const : int+ getStudents() const : int+ print() const : void Create a sample file to read from: CSS 2A 1111 35 Additional information: The Course class has two constructors. Make sure you have default values for your default constructor. Each course maxes out at 40 students. Therefore, you need to make sure that there aren’t more than 40 students in a Course. You can choose how you handle situations where more than 40 students are added. Additionally, you should automatically set is_full to false or true, based on the number of...arrow_forward
- In C++ Create a new project named lab8_1. You will be implementing two classes: A Book class, and a Bookshelf class. The Bookshelf has a Book object (actually 3 of them). You will be able to choose what Book to place in each Bookshelf. Here are their UML diagrams Book class UML Book - author : string- title : string- id : int- count : static int + Book()+ Book(string, string)+ setAuthor(string) : void+ setTitle(string) : void+ print() : void+ setID() : void And the Bookshelf class UML Bookshelf - book1 : Book- book2 : Book- book3 : Book + Bookshelf()+ Bookshelf(Book, Book, Book)+ setBook1(Book) : void+ setBook2(Book) : void+ setBook3(Book) : void+ print() : void Some additional information: The Book class also has two constructors, which again offer the option of declaring a Book object with an author and title, or using the default constructor to set the author and title later, via the setters . The Book class will have a static member variable...arrow_forwardimport javax.swing.*; import java.util.ArrayList; import java.util.Collections; import java.util.Random; import java.awt.*; import java.awt.event.*; public class memory extends JFrame implements ActionListener { private JButton[] cards; private ImageIcon[] icons; private int[] iconIDs; private JButton firstButton; private ImageIcon firstIcon; private int numMatches; public memory() { setTitle("Memory Matching Game"); setSize(800, 600); setLayout(new BorderLayout()); JPanel boardPanel = new JPanel(new GridLayout(4, 4)); add(boardPanel, BorderLayout.CENTER); icons = new ImageIcon[8]; for (int i = 1; i <= 8; i++) { icons[i-1] = new ImageIcon("image" + i + ".png"); } iconIDs = new int[16]; for (int i = 0; i < 8; i++) { iconIDs[2*i] = i; iconIDs[2*i+1] = i; } Random rand = new Random(); for (int i = 0; i < 16;...arrow_forwardPLZ help with the following: True/False In java it is possible to throw an exception, catch it, then re-throw that same exception if it is desired GUIs are windowing interfaces that handle user input and output. An interface can contain defined constants as well as method headings or instead of method headings. When a recursive call is encountered, computation is temporarily suspended; all of the information needed to continue the computation is saved and the recursive call is evaluated. Can you have a static method in a nonstatic inner class?arrow_forward
- Text book imageDatabase System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationText book imageStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONText book imageDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- Text book imageC How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONText book imageDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningText book imageProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education