
- Use the ArrayList class
- Add and remove objects from an ArrayList
- Protect from index errors when removing
- Practice with input loop
Details:
This homework is for you to get practice adding and removing objects from an ArrayList.
- The Voter class was used to create instances of Voters which held their name and a voter identification number as instance variables, and the number of instances created as a static variable. This was the class diagram:
The constructor takes a string, passed to the parameter n, which is the name of the voter and which should be assigned to the name instance variable. Every time a new voter is created, the static variable nVoters should be incremented. Also, every time a new voter is created, a new voterID should be constructed by concatenating the string “HI” with the value of nVoters and the length of the name. For example, if the second voter is named “Clark Kent”, then the voterID should be “HI210” because 2 is the value of nVoters and 10 is the number of characters in “Clark Kent”. If the third voter is named “Peter Parker”, then the voterID should be “HI312” because 3 is the value of nVoters and 12 is the number of characters in “Peter Parker”. Note that you will have to use a method to find the length of the names since you can not predict what will be typed.
The static method getNVoters returns the value of nVoters. The instance method toString returns a concatenation of voterID and name, separated by a space.
- Create a main method that uses the Voter class to create voters. It will also use the Scanner class to get each voter’s name from the keyboard. A big difference from Assignment 05 is that the scanner will ask for a command. The user will be able to command the code to both add and remove voters. Here is an example of an interaction (user input is in bold).
Command: +Peter Parker
Voter List: [HI112 Peter Parker]
Command: +Carol Danvers
Voter List: [HI112 Peter Parker, HI213 Carol Danvers]
Command: +Clark Kent
Voter List: [HI112 Peter Parker, HI213 Carol Danvers, HI310 Clark Kent]
Command: -Peter Parker
Voter List: [HI213 Carol Danvers, HI310 Clark Kent]
Command: ?Bad input
No action taken.
Voter List: [HI213 Carol Danvers, HI310 Clark Kent]
Command: -Clark Kent
Voter List: [HI213 Carol Danvers]
Command: -Batman
Voter List: [HI213 Carol Danvers]
Command: -Carol Danvers
Voter List: []
Command:
Done
In this interaction, voters are added using a plus sign and voters are removed by using a minus sign. After each command, the modified voter list is printed. Note that the voter lists are output from printing an ArrayList. (Remember, the toString method in the Voter class allows each voter to be output as a string concatenating the voter ID, a space, and the name.
In order to accomplish this, you will need to take the input string and separate the first character from the rest. (Check the String methods for how to do this.) If the first character is “+”, then you use the remaining string as the name to create a new Voter instance. If the first character is “-”, then you use the remaining string to get the name of the voter to remove. If the first character is neither of these, you simply return the string “No action taken” and do nothing.
When the user enters nothing, then the interaction stops.
Adding voters should be easy. Be sure that you are creating voter instances and adding those. You could create a voter instance and add it to the ArrayList in a single statement. Don’t just add the names as an ArrayList of Strings.
Removing voters is harder. You might want to write a method to handle removing voters. Here are some things to think about:
- The information you get about what to remove is the name, so you will have to search the voter ArrayList for a voter that matches the name. If there isn’t a match, then you do nothing. If there is a match, then you have to remove the element at that position.
- Be careful about removing the last item in the ArrayList. Some things you might try could generate errors when dealing with the last part of the ArrayList.
- Be careful about not trying to remove from an empty list. If there is nothing in the ArrayList but it gets a command to remove something, it should not crash.

Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 1 images

- Poker card in PythonLet the CarteBase class present itself in the context of this exercise. It encapsulates a game card characterized by numerical values for its face and its kind. The possible faces are integers from 1 to 13, with face 1 corresponding to the ace, and faces 11, 12 and 13 corresponding respectively to the jack, the queen and the king. The other faces are simply identified by their number from 2 to 10. The possible grades are integers from 1 to 4 corresponding respectively to the cards of spade, heart, tile and clover. Analyze this class to understand how it works. You are asked to create a class called CarteDePoker that inherits CarteBase and defines or redefines the following methods: force(self) which returns the strength of the card in the poker game. In Poker, cards have the strength of their digital face from 2 to 13, except for the ace which is stronger than the other cards. So we give it a strength of 14.__eq__(self, other) to define operator behavior…arrow_forwardWrite a C#program that uses a class called ClassRegistration as outlined below: The ClassRegistration class is responsible for keeping track of the student id numbers for students that register for a particular class. Each class has a maximum number of students that it can accommodate. Responsibilities of the ClassRegistration class: It is responsible for storing the student id numbers for a particular class (in an array of integers) It is responsible for adding new student id numbers to this list (returns boolean) It is responsible for checking if a student id is in the list (returns a boolean) It is responsible for getting a list of all students in the class (returns a string). It is responsible for returning the number of students registered for the class (returns an integer) It is responsible for returning the maximum number of students the class is allowed (returns an integer) It is responsible for returning the name of the class. (returns a string) ClassRegistration -…arrow_forwardGiven the previous Car class, the following members have been added for you: Private: string * parts; //string array of part names int num_parts; //number of parts Public: void setParts(int numpart, string newparts[]) //set the numparts and parts int getNumParts() string * getParts() string getPart(int index) //return the string in parts at index num Please implement the following for the Car class: Add the copy constructor. (deep copy!) Add the copy assignment operator. (deep copy!) Add the destructorarrow_forward
- Written in Python It should have an init method that takes two values and uses them to initialize the data members. It should have a get_age method. Docstrings for modules, functions, classes, and methodsarrow_forwardWrite a program in Java that handles the order list for an online retailer. Your program should contain a minimum of three classes: Order Class Display Class Main Class Create a Order Class that uses a queue to hold the orders in the order they were taken. The queue should contain the customer last name, order number, and order total cost. Create a Display Class that will store a copy of the order queue in two arrays. Each array will contain the order list but one will be sorted by name and the other sorted by order number. When a order is taken and stored in the Order Class the program will update theDisplay Class arrays automatically sort them in descending order using quick sort and outputs the the contents to the console upon each entry of new data. Create a Main Class that will handle operator data input and when an order is added or removed, the program will update the Order Class and Display Class. The user will be presented a menu to add a order, remove a order and display…arrow_forwardCreate a Point classCreate a Point class as we did in the class. We'll use this to create Point objects that hold x,y coordinates of locations where we'll want to draw. Draw DotsWrite a drawDots(points) function that takes a list points as input and draws a dot on the drawing window for each Point. For example, you should be able to call your function as follows: >>> p = Point(10, 20) >>> q = Point(20, 30) >>> points = [p, q] >>> drawDots(points)arrow_forward
- Lab 10 Using an interface to share methods It is often the case that two or more classes share a common set of methods. For programming purposes we might wish to treat the objects of those classes in a similar way by invoking some of their common routines.For example, the Dog and Cat classes listed below agree on the void method speak. Because Dog and Cat objects have the ability to “speak,” it is natural to think of putting both types of objects in an ArrayList and invoking speak on every object in the list. Is this possible? Certainly we could create an ArrayList of Dog that would hold all the Dog objects, but can we then add a Cat object to an ArrayList of Dog?Try running the main program below as it is written. Run it a second time after uncommenting the line that instantiates a Cat object and tries to add it to the ArrayList. import java.util.*;public class AnimalRunner{ public static void main(String[] args) { ArrayList<Dog> dogcatList = new ArrayList<Dog>();…arrow_forwardImplement a nested class composition relationship between any two class types from the following list: Advisor Вook Classroom Department Friend Grade School Student Teacher Tutor Write all necessary code for both classes to demonstrate a nested composition relationship including the following: a. one encapsulated data member for each class b. inline default constructor using constructor delegation for each class c. inline one-parameter constructor for each class d. inline accessors for all data members e. inline mutators for all data membersarrow_forwardWritten in Python with docstring please if applicable Thank youarrow_forward
- class TenNums {private: int *p; public: TenNums() { p = new int[10]; for (int i = 0; i < 10; i++) p[i] = i; } void display() { for (int i = 0; i < 10; i++) cout << p[i] << " "; }};int main() { TenNums a; a.display(); TenNums b = a; b.display(); return 0;} Continuing from Question 4, let's say I added the following overloaded operator method to the class. Which statement will invoke this method? TenNums TenNums::operator+(const TenNums& b) { TenNums o; for (int i = 0; i < 10; i++) o.p[i] = p[i] + b.p [i]; return o;} Group of answer choices TenNums a; TenNums b = a; TenNums c = a + b; TenNums c = a.add(b);arrow_forwardOne problem with dynamic arrays is that once the array is created using the new operator the size cannot be changed. For example, you might want to add or delete entries from the array similar to the behavior of a vector . This project asks you to create a class called DynamicStringArray that includes member functions that allow it to emulate the behavior of a vector of strings. The class should have the following A private member variable called dynamicArray that references a dynamic array of type string. A private member variable called size that holds the number of entries in the array. A default constructor that sets the dynamic array to NULL and sets size to 0. A function that returns size . A function named addEntry that takes a string as input. The function should create a new dynamic array one element larger than dynamicArray , copy all elements from dynamicArray into the new array, add the new string onto the end of the new array, increment size, delete the old dynamicArray ,…arrow_forwardMoving Between Rooms - Navigation In this assignment, you will be working with a given "rooms" dictionary and associated constants to create a simple text-based game. Your main task is to develop a function that allows the player to navigate through the rooms based on the given specifications. You need to implement the function found in the starter code to the right The function should take into account the following conditions: If the direction leads to an exit, set the next room to the exit and the message to "Goodbye". If the direction is invalid, set the next room to the current room and the message to "No such direction". If the direction is valid, but you cannot go that way, set the next room to the current room and the message to "You bumped into a wall". If the direction is valid and you can go that way, set the next room to the room in that direction and the message to "Empty". To help you understand how the function will be integrated into the gameplay loop, the following…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





