-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLAB5_ELJC_NHCG_COLAS 2
109 lines (96 loc) · 2.5 KB
/
LAB5_ELJC_NHCG_COLAS 2
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
/*ejemplo mostrar la clave, el nombre y la calificación de un estudiante */
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
void colas();
int main(){
system ("color e0");
colas();
system ("pause");
getch();
return 0;
}
struct ICO{
char clave[20];
char nombre[30];
float calificacion;
};
struct Nodo{
ICO alumnos;
Nodo *siguiente;
};
//Insertar elementos a l cola
void menu();
void agregarDatos(ICO &);
void insertarDatos(Nodo *&,Nodo *&,ICO);
bool c_vacia(Nodo *);
void colas(){
cout<<"\n\n\n\t\tGRACIAS POR USAR NUESTRO PROGRAMA!!!!\n"<<endl;
cout<<"\t\tEsperamos haber sido utiles\n\n"<<endl;
cout<<"\t---JOSE CARLOS ESPINOZA LAURA---\n"<<endl;
cout<<"\t---CARLOS GABRIEL NINA HUANCA-----\n\n\n"<<endl;
ICO alumnos;
Nodo *frente=NULL;
Nodo *fin=NULL;
char opcion;
do{
menu();
cin>>opcion;
fflush(stdin);
Nodo *aux=frente;
switch(opcion){
case '1':
agregarDatos(alumnos);
insertarDatos(frente,fin,alumnos);
break;
case '2':
cout<<"CLAVE"<<"\tNOMBRE\t\t\t"<<"CALIFICACION "<<endl;
while(aux !=NULL){
cout<<aux->alumnos.clave<<"\t"<<aux->alumnos.nombre<<"\t\t\t"<<aux->alumnos.calificacion<<endl;
aux=aux->siguiente;
}
break;
case '3':
cout<<"\nSalio del programa..."<<endl;
break;
default:
cout<<"\nOpcion invalida "<<endl;
break;
}
cout<<"Presionar una tecla para continuar"<<endl;
getch();
system("cls");
}while(opcion !='3');
}
void menu(){
cout<<"MENU"<<endl
<<"1.Agregar datos del alumno"<<endl
<<"2.Mostrar datos de los alumnos"<<endl
<<"3.Salir del programa"<<endl
<<"Ingresar el numero de opcion que desea: ";
}
void agregarDatos(ICO &alumnos){
cout<<"Ingresar clave del alumno: "; cin.getline(alumnos.clave,20,'\n');
cout<<"Ingresar nombre del alumno: "; cin.getline(alumnos.nombre,30,'\n');
cout<<"Ingresar calificacion: "; cin>>alumnos.calificacion;
}
//Insertando elementos a ala cola
void insertarDatos(Nodo *&frente, Nodo *&fin,ICO alumnos){
Nodo *n_nodo=new Nodo();//declarando un nuevo nodo
n_nodo->alumnos=alumnos;//asignando al nuevo nodo el dato a insertar en la cola
//siguiente apunta directamente hacia null
n_nodo->siguiente=NULL;
if(c_vacia(frente)){
frente = n_nodo;//si la cola esta vacia frente = nuevo nodo
}
else{
fin->siguiente=n_nodo;//si la cola no esta vacia
}
fin=n_nodo;
}
//determina si la cola esta vacia
bool c_vacia(Nodo *frente){
//si frente igual a null cola vacia retornar true
return (frente==NULL)? true : false;
}