Dev - C++ - Programa de registro de alumnos en un laboratorio

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa de registro de alumnos en un laboratorio

Publicado por Marcos (3 intervenciones) el 14/09/2020 06:25:20
Hola amigos necesito su ayuda, tengo que realizar un programa que tenga un menu de 4 opciones, 1- Registrar alumnos 2- Marcar asistencia 3- Mostrar laboratorio 4- salir
Sub menú Registrar Alumno:
Al elegir esta opción el programa solicitara el nombre de la clase y los alumnos [Número De
Cuenta] que asistirán a la clase que se imparte en un laboratorio de computación, que cuenta con
una cantidad máxima de 15 equipos (computadoras). El laboratorio esta distribuido por 3 filas y en
cada fila se encuentra 5 equipos (computadoras) conectadas de forma secuencial. Los equipos
(computadoras) están etiquetas de la siguiente forma [F#X-E#Y]. Validar que la cantidad de
alumnos a registrar sea menor o igual que la capacidad de equipos (computadoras) del
laboratorio.
Sub menú Marcar Asistencia:
Al elegir esta opción el programa solicitara el Número de Cuenta del alumno, verificara si el
alumno está inscrito en la clase, si es correcto, entonces le asignara un equipo (computadora), de
lo contrario mostrar un mensaje “Alumno No Registrado En Clase”. La asignación de equipo
(computadora) se empieza desde la primera fila hasta la última.
Sub menú Mostrar Laboratorio
Si selecciona esta opción el programa mostrara los equipos (computadoras) disponibles (color
verde) y ocupados (color rojo). Mostrar el total de disponibilidad.

Ya hice una parte pero no logro que funcione, no logro validar los datos del registro en marcar asistencia, también se que el menú 2 esta mal pero por eso pido ayuda y estoy muy verde en cuanto a clases así que no e sabido de que forma realizar el menú 3, pueden ayudarme por favor, le pedí ayuda a mi maestro y me dijo que tenia que investigarlo por mi cuenta y lo que el nos ensenio en clase fue una factura simple con 2 objetos. Ya estuve buscando y no logro relacionarlo con nada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
 
 
using namespace std;
 
void Registrar();
 
int Computadoras[3][5];
int Alumnos[15];
 
int main()
{
 
   string clase;
   int op;
    do
    {
    cout<<"*************************"<<endl;
    cout<<"**    Menu principal   **"<<endl;
    cout<<"** 1-Registrar alumno  **"<<endl;
    cout<<"** 2-Marcar asistencia **"<<endl;
    cout<<"** 3-Mostrar Laboratorio**"<<endl;
    cout<<"** 4-Salir             **"<<endl;
    cout<<"*************************"<<endl;
    cout<<"Que desea hacer? ";
 
    cin>>op;
 
    switch(op)
    {
        case 1:{cout<<"Registro de Alumno"<<endl;
                cout<<"ingrese el nombre de la clase: "<<endl;
                cin>>clase;
                Registrar();
                break;}
        case 2:{cout<<"Marcar asistencia"<<endl;
 
                bool asistio = false;
                int buscado;
                do{
 
                for(int f=0;f<3;f++)
                {
                    for(int c=0;c<5;c++)
                    {
                        cout<<"Ingrese el numero de cuenta del alumno"<<endl;
                        cin>>Computadoras[f][c];
                        if(Computadoras[f][c]==Alumnos[j])
                        {
                        asistio=true;
                        if(asistio)
                        {
                            cout<<"Asignado a: F"<<(f+1)<<"X-E"<<(c+1)<<"Y"<<endl;
                        }else
                            {
                                cout<<"Alumno no registrado";
                            }
                    }
                    }
                }
 
                }while(buscado!=0);
                break;}
 
        case 3:{cout<<"Laboratorios"<<endl;
        cout<<"Seccion del menu en progreso";
            break;
        case 4:cout<<"Salir"<<endl;
                 break;}
 
        default:cout<<"Dato incorrecto, intentelo de nuevo"<<endl;
 
    }
    }while(op!=4);
    return 0;
}
//Desarrollo de metodos
void Registrar()
{
     cout<<"Ingrese el numero de cuenta del alumno: "<<endl;
               for(int i=0;i<15;i++)
               {
                    cin>>Alumnos[i];
               }
 
     cout<<"Los siguientes alumnos han sido registrados"<<endl;
                       for(int j=0;j<15;j++)
                   {
                       cout<<Alumnos[j]<<endl;
                   }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa de registro de alumnos en un laboratorio

Publicado por Nacho (181 intervenciones) el 14/09/2020 13:46:09
Lo primero que tendrías que hacer es estructurar bien los datos, que debe ser algo así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Alumno
{
    string Nombre;
    string Cuenta;
};
 
struct Clase
{
    string Nombre;
    Alumno Alumnos[15];
    string Computadoras[15];
};
 
Clase clases[100];

!00 clases, más vale que sobren, cada clase con su nombre, que admite 15 computadoras, 15 alumnos, y cada alumno tiene un nombre y una cuenta. Ahora a rellenar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa de registro de alumnos en un laboratorio

Publicado por Marcos (3 intervenciones) el 14/09/2020 18:14:22
Hola amigo gracias por tu respuesta, disculpa mi ignorancia pero hasta ahora no he visto struct en clase y no se bien como funciona solo hemos visto lo siguiente y es lo que se evaluara
Utilización de arreglo unidimensional
Utilización de arreglo bidimensional
Manejo del arreglo con Métodos
Manejo del menú con estructura básicas (condicionales y ciclos)
utilización de clases para administrar las computadoras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa de registro de alumnos en un laboratorio

Publicado por Nacho (181 intervenciones) el 14/09/2020 20:19:47
No me cuadra ver clases y no struct pero también puedes hacer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Alumno
{
public:
    string Nombre;
     string Cuenta;
};
 
class Clase
{
public:
     string Nombre;
     Alumno Alumnos[15];
     string Computadoras[15];
};
 
Clase clases[100];

Y dentro de las clases puedes poner funciones también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa de registro de alumnos en un laboratorio

Publicado por Rodrigo (539 intervenciones) el 14/09/2020 22:52:53
Sugeriria tener 3 clases: Alumno, Clase y Laboratorio
La clase contiene alumnos.
El laboratorio recibe un alumno y una clase, y le pregunta a la clase si el alumno pertenece a ella
En caso afirmativo el laboratorio asigna uno de los computadores a ese alumno. La asignacion la guarda y administra el laboratorio, no la clase.
En caso negativo se genera el mensaje de error "Alumno No Registrado En Clase"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa de registro de alumnos en un laboratorio

Publicado por Marcos (3 intervenciones) el 17/09/2020 21:16:08
Hola mi amigos, ya casi termino el proyecto, ya solo me queda un simple problema y es que el el menú numero 2 me asigna siempre el equipo F1X-E1Y, para todos los alumnos y si pongo un alumno no registrado de igual forma me da error, me pueden ayudar.
Disculpen el desorden de las clase, lo que pasa es que estoy trabajando en codeblocks y creo la clase aparte en un archivo.h, para ponerla aqui tuve que ponerlo todo junto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
 
class ASIGNACION
{
    private:
        int Equipos;
 
    protected:
 
 
    public:
        ASIGNACION(int);
        void disponible();
        void registrar();
        int desocupado();
 
};
 
void Color(int Background, int Text);
enum Colors {
 BLACK = 0,
 BLUE = 1,
 GREEN = 2,
 CYAN = 3,
 RED = 4,
 MAGENTA = 5,
 BROWN = 6,
 LGREY = 7,
 DGREY = 8,
 LBLUE = 9,
 LGREEN = 10,
 LCYAN = 11,
 LRED = 12,
 LMAGENTA = 13,
 YELLOW = 14,
 WHITE = 15
};
void Color(int Background, int Text){
 
 HANDLE Console = GetStdHandle(STD_OUTPUT_HANDLE);
 int    New_Color= Text + (Background * 16);
 
 SetConsoleTextAttribute(Console, New_Color);
}
 
void ASIGNACION::disponible()
{
        if(Equipos==1)
    {
       Color(BLACK,RED); cout<<"Ocupado";
       Color(BLACK,WHITE);cout<<"";
    }else
         {
          Color(BLACK,GREEN);cout<<"Libre";
          Color(BLACK,WHITE);cout<<"";
 
         }
}
 
ASIGNACION::ASIGNACION(int Eq)
{
    this->Equipos=Eq;
}
 
void ASIGNACION::registrar()
{
    this->Equipos=1;
}
 
int ASIGNACION::desocupado()
{
     return Equipos;
}
 
void Registrar_Alumno();
 
ASIGNACION Equip[3][5] = {{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};
int Alumnos[15];
int Asistio[15];
int Equipo[15][2];
int buscado;
int asignado=0;
int c=0;
int lleno=0;
int marcado =0;
int libres;
string clase;
 
void Registrar_Alumno()
{   int i ;
     cout<<"Registro de Alumno"<<endl;
     cout<<"ingrese el nombre de la clase: "<<endl;
     cin>>clase;
     cout<<"Ingrese el numero de cuenta del alumno: "<<endl;
     cout<<"Para llenar los epacios vacios presione 0"<<endl;
               for(i=0;i<15;i++)
               {
                    cin>>Alumnos[i];
                }
     cout<<"La clase esta llena"<<endl;
     cout<<"Los siguientes alumnos han sido registrados"<<endl;
                       for(int j=0;j<15;j++)
                   {
                       cout<<Alumnos[j]<<endl;
 
                   }
}
 
int main()
{
 
   int op;
    do
    {
    cout<<"**    Menu principal    **"<<endl;
    cout<<"** 1-Registrar alumno   **"<<endl;
    cout<<"** 2-Marcar asistencia  **"<<endl;
    cout<<"** 3-Mostrar Laboratorio**"<<endl;
    cout<<"** 4-Salir              **"<<endl;
    cout<<"Que desea hacer? ";
 
    cin>>op;
 
    switch(op)
    {
        case 1:{Registrar_Alumno();
                break;}
        case 2:{cout<<"Marcar asistencia"<<endl ;
                    cout<<"ingrese el numero de cuenta del alumno"<<endl;
                    do{
                    cin>>buscado;
                    for(c=0;c<15;c++)
                    {
 
                        if(buscado==Alumnos[c])   //Aqui esta el problema***************************************************************************
                        {
                            if(Asistio[c]!=1)
                            {
                        if(asignado==0)
                        {Equipo[c][0] = 0; Equipo[c][1] = 0; break;}
                        if(asignado==1)
                        {Equipo[c][0] = 0; Equipo[c][1] = 1; break;}
                        if(asignado==2)
                        {Equipo[c][0] = 0; Equipo[c][1] = 2; break;}
						if(asignado==3)
                        {Equipo[c][0] = 0; Equipo[c][1] = 3; break;}
						if(asignado==4)
                        {Equipo[c][0] = 0; Equipo[c][1] = 4; break;}
                        if(asignado==5)
						{Equipo[c][0] = 1; Equipo[c][1] = 0; break;}
						if(asignado==6)
						{Equipo[c][0] = 1; Equipo[c][1] = 1; break;}
						if(asignado==7)
						{Equipo[c][0] = 1; Equipo[c][1] = 2; break;}
						if(asignado==8)
						{Equipo[c][0] = 1; Equipo[c][1] = 3; break;}
						if(asignado==9)
						{Equipo[c][0] = 1; Equipo[c][1] = 4; break;}
						if(asignado==10)
						{Equipo[c][0] = 2; Equipo[c][1] = 0; break;}
						if(asignado==11)
						{Equipo[c][0] = 2; Equipo[c][1] = 1; break;}
						if(asignado==12)
						{Equipo[c][0] = 2; Equipo[c][1] = 2; break;}
						if(asignado==13)
						{Equipo[c][0] = 2; Equipo[c][1] = 3; break;}
						if(asignado==14)
                        {Equipo[c][0] = 2; Equipo[c][1] = 4; lleno = 1; break;}
 
 
                              }
                              Asistio[c]=1;
                              Equip[Equipo[c][0]][Equipo[c][1]].registrar();
						     asignado++;
                            }
                        cout<<"Asignado a F"<< Equipo[c][0] + 1<<"X-E"<<Equipo[c][1] + 1<<endl;
                        marcado = 1;
                        c =90;
                        }
 
 
 
                    if(lleno==1)
                    {
                        cout<<"Laboratorio lleno"<<endl;
                        cout<<"Precione '0' Para salir al menu"<<endl;
                    }
                    c=0;
                    if(marcado==0)
                    {
                      cout<<"Alumno no registrado"<<endl;
                    }
                    marcado=0;
                    }while(buscado!=0);
 
 
 
                break;}
        case 3:{cout<<"Laboratorios"<<endl;
                   cout<<"Computadoras de" << clase << endl << endl;
                   for(int k=0;k<3;k++)
                   {cout << endl;
                   for(int l=0;l<5;l++)
                   {
 
                      cout << "F" << (k+1) << "X-E" << (l+1) <<"Y";
 
 
                      cout << "\t \t";
                  }
                  cout << endl;
                  for(int h=0;h<5;h++)
                  {
                      Equip[k][h].disponible(); cout << "\t\t";
 
                  }
 
                 }
                 cout << endl << endl;
                 for(int x=0;x<3;x++)
                 {
                  for(int y=0;y<5;y++)
                  {
                      if(Equip[x][y].desocupado()==0)
                      {
                          libres++;
                      }
                  }
                 }
                 cout<<"Computadoras desocupadas =" << libres<< endl << endl << endl;
                 libres=0;
                break;}
        case 4:{cout<<"Salir"<<endl;
                break;}
        default:cout<<"Dato incorrecto, intentelo de nuevo"<<endl;
    }
    }while(op!=4);
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar