Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

You run four computer labs. Each lab contains computer stations that are numbere

ID: 3710445 • Letter: Y

Question

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 are transmitted to your station. For example, if user 49193 logs onto station 2 in Lab 3, your system receives (49193, 2, 3) as input data. Similarly, when a user logs off a station, your system receives the Lab Number and computer station number.

Write a java program that could be used to track, by lab, which user is logged onto which computer. For example, if user 49193 is logged into station 2 in lab 3 and user

99577 is logged into station 1 of lab 4, then your system might display the following

Lab Number 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: 49193 3: empty 4: empty

4 1: 99577 2: empty 3: empty

1. Create a menu that allows the administrator to simulate the transmission of information by manually typing in the login or logoff data. Whenever someone logs in or out, the display table should be updated.

2. Write a search option so the administrator can type in a user Id and the system will output what Lab Number and station number the user is logged into, or "None" if the user Id is not logged into any computer station. You should use a fixed array of length 4 for the labs. Each array entry points to a dynamic array that stores the user login information for each respective computer station.

Sample Output

(User input is in bold and Italics)

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: empty 4: empty

4 1: empty 2: empty 3: empty

MAIN MENU

0) Quit

1) Simulate login

2) Simulate logoff

3) Search

1

Enter the 5 digit ID number of the user logging in:

12345

Enter the lab number the user is logging in from (1-4):

2

Enter computer station number the user is logging in to (1-6):

3

LAB STATUS

Lab # Computer Stations

1 1: empty 2: empty 3: empty 4: empty 5: empty

2 1: empty 2: empty 3: 12345 4: empty 5: empty 6: empty

3 1: empty 2: empty 3: empty 4: empty

4 1: empty 2: empty 3: empty

MAIN MENU

0) Quit

1) Simulate login

2) Simulate logoff

3) Search

2

Enter the 5 digit ID number of the user to find:

12345

User 12345 is logged off.

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: empty 4: empty

4 1: empty 2: empty 3: empty

MAIN MENU

0) Quit

1) Simulate login

2) Simulate logoff

3) Search

Explanation / Answer

Executable code:

#include <iostream>

#include <iomanip>

using namespace std;

void init(int *labs[], int num_stations[], int number_used);

void menu(int *labs[], int num_stations[], int number_used);

/*STATION*/

void track_display(int *labs[], int num_stations[], int number_used);

void delete_array(int *labs[], int num_stations[], int number_used);

void log_on(int *labs[]);

void log_off(int *labs[]);

void info_transmission(int *labs[], int ID, int lab, int mystat);

/*MAIN METHOD*/

int main()

{

const int num_labs = 4;


int num_stations[num_labs] = {5,6,4,3};

  
int *labs[num_labs];

init(labs, num_stations, num_labs);

menu(labs, num_stations, num_labs);

return 0;


}

void init(int *labs[], int num_stations[], int number_used)

{

for (int s = 0; s < number_used; s++)

{

labs[s] = new int[num_stations[s]]();

}

}

void menu(int *labs[], int num_stations[], int number_used)

{

int option;

do

{

cout << " Display Chart "

<< "Pick 0 to quit "

<< "Pick 1 to simulate login "

<< "Pick 2 for simulate logout "

<< "Pick 3 for search "

<< "Enter your option and press return: ";

cin >> option;

switch(option)

{

case 0:

track_display(labs, num_stations, number_used);

break;

case 1:

log_on(labs);

break;

case 2:

log_off(labs);

break;

case -1:

cout << "End of Program. ";

delete_array(labs, num_stations, number_used);

break;

default:

cout << "Not a valid option. "

<< "Pick again. ";

}

}

while (option != -1);

}

void track_display(int *labs[], int num_stations[], int number_used)

{

cout << endl << setw(12) << left << "Lab Number" << "Computer Stations ";

for(int m = 0; m < number_used; m++)

{

cout << setw(12) << left << m+1;

for (int s = 0; s < num_stations[m]; s++)

{

cout << s+1 << ": ";

if (labs[m][s] == 0)

{

cout << setw(6) << left << "empty";

}

else

{

  

cout << setw(6) << labs[m][s];

}

}

cout << endl;

}

}

void delete_array(int *labs[], int num_stations[], int number_used)

{


for (int s = 0; s < number_used; s++)

{

delete []labs[s];

}

}

void log_on(int *labs[])

{


int ID, lab, mystat;

  

cout << "Enter the 5 digit ID number of the user logging in: ";

cin >> ID;

cout << "Enter the lab number the user is logging in from (1-4): ";

cin >> lab;

cout << "Enter computer station number the user is logging in to: ";

cin >> mystat;

info_transmission (labs, ID, lab-1, mystat-1);

cout << "Successfully log on";

}

void log_off(int *labs[])

{

int lab, mystat;

cout << "Enter computer station number the user is logging in to: ";

cin >> lab;

cout << "Enter the lab number the user is logging in from (1-4): ";

cin >> mystat;

info_transmission (labs, 0, lab-1, mystat-1);

cout << "Effectively log off";

}   

void info_transmission(int *labs[], int ID, int lab, int mystat)

{


labs[lab][mystat] = ID;

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote