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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.