You run computer labs. Each lab contains computer stations that are numbered as
ID: 3651441 • Letter: Y
Question
You run 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 49193 logs onto station 2 in Lab 3 then your system receives (49193, 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 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
Create a menu that allow the administrator to simulate the transmission of information by manually typing in the login or logoff data. Whenever someone log in or out, the display should be updated. Also write a search option so that the administrator 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. You should use a fixed array of length 4 the labs. Each array entry points to dynamic array that stores the user login information for each respective computer station. The structure is shown in the figure below. This structure is sometimes called a ragged array since the columns are of unequal length.
Explanation / Answer
/*
Charpter 9: Pointers and dynamic Arrays. Project 6
*/
#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);
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 stat);
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 i = 0; i < number_used; i++){
labs[i] = new int[num_stations[i]]();
}
}
void menu(int *labs[], int num_stations[], int number_used){
int choice;
do{
cout << " ==============Menu================== "
<< "Choose 0 to track "
<< "Choose 1 to login "
<< "Choose 2 for logout "
<< "Choose -1 for exit "
<< "Enter your choice and press return: ";
cin >> choice;
switch(choice){
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 choice. "
<< "Choose again. ";
}
//cout << "==============The end of Menu======== ";
} while (choice != -1);
}
void track_display(int *labs[], int num_stations[], int number_used){
cout << endl << setw(12) << left << "Lab Number" << "Computer Stations ";
for(int i = 0; i < number_used; i++){
cout << setw(12) << left << i+1;
for (int j = 0; j < num_stations[i]; j++){
cout << j+1 << ": ";
if (labs[i][j] == 0){
cout << setw(6) << left << "empty";
}
else {
cout << setw(6) << labs[i][j];
}
}
cout << endl;
}
}
void delete_array(int *labs[], int num_stations[], int number_used){
for (int i = 0; i < number_used; i++){
delete []labs[i];
}
}
void log_on(int *labs[]){
int ID, lab, stat;
cout << "Enter your student ID: ";
cin >> ID;
cout << "Enter the lab you are in: ";
cin >> lab;
cout << "Enter the station you are using: ";
cin >> stat;
info_transmission (labs, ID, lab-1, stat-1);
cout << "Successfully log on";
}
void log_off(int *labs[]){
int lab, stat;
cout << "Enter the lab you are in: ";
cin >> lab;
cout << "Enter the station you are using: ";
cin >> stat;
info_transmission (labs, 0, lab-1, stat-1);
cout << "Successfully log off";
}
void info_transmission(int *labs[], int ID, int lab, int stat){
labs[lab][stat] = ID;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.