Please fullfill all requirements
CIS 223 Computer Science II Assignment Three Due: April 14, 2023 There are two problems descripted below: · You must complete one problem for your Assignment Three. · Complete extra program can gain extra credit. Option 1: Computer Labs Write a Computer Labs program to store the list of user IDs for each computer station using a linked list. Problem Description: You run four computer labs. Each lab contains computer stations that are numbered as shown in the table below: Lab Number Computer station Numbers 1 1-5 2 1-6 3 1-4 4 1-3 Each user has a unique five-digit ID number. Whenever a user logs on, the User’s ID, lab number, and the computer station number are transmitted to your system. For example, if user 56283 logs onto station 2 in lab 3, then your system receives (56283, 2, 3) as input data. Similarly, when a user logs off a station, then your system receives the lab number and computer station number. Write a computer program that could be used to track, by lab, which user is logged onto which computer. For example, if user 56283 is logged into station 2 in lab 3 and user 67315 is logged into station 1 of lab 4 then your system might display the following: Lab number Computer Stations Numbers 11: empty 2: empty 3: empty: 4: empty: 5: empty 21: empty 2: empty 3: empty: 4: empty: 5: empty 6: empty 31: empty 2: 56283 3: empty: 4: empty 41: 67315 2: empty 3: empty Create a menu allows the administrator to simulate the transmission of information by manually typing in the login or log off data. Whenever someone logs in or out, the display should be updated. Also write a search option so that the administration can type in a user ID and the system will output what lab and station number that user is logged into, or “None” if the user ID is not logged into any computer station. The node for the lists should contain the station number and user ID of the person logged in on that station. If nobody is logged on to a computer station, then no entry should exist in the linked list for that computer station. The node for the lists should refer to the node that is the head of the list. You program should simulate the elimination process by deleting the node that correspond to the suitor that is eliminated for each step in the process. Sample output: Asn #3 by John Smith – Computer Lab Program MAIN MENU 0) Quit 1) Simulate login 2) Simulate logoff 3) Search 1 Enter the 5 digit ID number of the user logging in: 56283 Enter the lab number the user is logging in from (1-4): 3 Enter computer station number the user is logging in to: 3 LAB STATUS Lab # Computer Stations 1 1: empty 2: empty 3: empty 4: empty 5: empty 2 1: empty 2: empty 3: empty 4: empty 5: empty 6: empty 3 1: empty 2: empty 3: 56283 4: empty 4 1: empty 2: empty 3: empty MAIN MENU 0) Quit 1) Simulate login 2) Simulate logoff 3) Search 56283 CIS 223 Computer Science II Makeup Assignment Project (II) Linked List Class, Sorting and Merging For this assignment, you will be creating a Linked List class, coding a recursive sorting implementation, and merging the two sorted lists into one. The Node structure should have two data field. The first is an integer, and the second is a pointer to a Node object which holds the address of the next Node in the linked list. 1) Constructor LinkedList( ); The constructor for this class takes no arguments. It should create an empty list by initializing the number of nodes to 0 and setting the pointer to the first node in the list to null. 2) Copy Constructor: Add a copy constructor. Test your class by making a copy of a list and then testing membership on the copy. 3) Destructor The destructor for this class should release the memory for every node in the list (NOT just the first node in the list). ~LinkedList( ); 4) void add(double x); The add function adds a new node containing x to the front (head) of the list 5) boolean isMember(double x); The isMember function tests if the list contains a node with the value x. Test your linked list class by adding various numbers to the list and then testing for membership. 6) list print The print Test the class by starting with an empty list, adding some elements, and then printing the resulting list out. 7) void remove(double x); Modify the list class you created in the previous programming challenges by adding a function to remove an item from the list, and by adding a destructor: 8) void reverse(); The member function rearranges the nodes in the list so that their order is reversed. You should do this without creating or destroying nodes. 9) int search(double x) that returns the position of a number x on the list. The first node in the list is at position 0, the second node is at position 1, and so on. If x is not found on the list, the search would return -1. Test the new member function using an appropriate driver program. 10) List Merge Add a member function merge to take two call-by-reference parameters that are pointer variables that point to the heads of two linked lists of values of type int. The linked lists are assumed to be already sorted. The smallest is at the head, increasing along the list. The function returns a pointer to the head of a new list that is the rearranged nodes of the combined lists. The resulting list is to be sorted, smallest at the head, and increasing along the list. When the function terminates, the two arguments should have the value NULL (0). Note that this Select one recursive sorting algorithms to implement: · Insertion Sort · Merge Sort · Quick Sort These functions perform a recursive ascending order sort. If the number of nodes is greater than 1, then perform a recursive call passing a reduced size. Sample Output: Enter numbers for list1, negative quits 3 1 5 -1 List1 in ascending order: 1 3 5 Enter numbers for list2, negative quits 4 8 2 -1 List1 in ascending order: 2 4 8 list2: 2 4 8 Merged list, front to rear: 1 2 3 4 5 8 Submission You are to submit electronically: · Write a report file describing how the programs work and input/output screenshot. · Remember to document your program and make good use of comments. · Submit it to the DropBox in D2L.