Programa no funciona
Publicado por Luis (1 intervención) el 08/10/2019 05:00:40
hola bien dia, soy nuevo programando y me encargaron un programa, debo entrar a un menu con switch y no salir hasta que el usuario lo quiera, dentro del menu debo1- registrar 3 alumnos 2- ordenarlos por matricula 3-buscar por matricula a cualquiera de los tres, todo esto capturado desde una estructura, alguien puede orientarme como debo hacerlo, esto es lo que tengo, no corre correctamente, ademas me aparece 2 veces el menu .
gracias!
gracias!
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
#include<stdio.h>
#include<conio.h>
struct info_direccion {
char direccion [30];
char ciudad [30];
char provincia [30];
};
struct calificaciones {
int cal1, cal2, cal3;
float prom;
};
struct aluinfo{
char nombre [20];
int num_mat;
struct info_direccion dir_alu;
struct calificaciones cal;
} alu [3];
int main(){
char opc;
int b;
bool band = false;
float prom;
printf("\n.Menu.");
printf("\n1.Ingresar Alumno");
printf("\n2.Ordenar Lista de Alumnos");
printf("\n3.Buscar Alumno");
printf("\n4.Salir");
printf("\nOpcion: ");
scanf("%c", &opc);
switch (opc){
case '1' : //intruducion de datos
for (int i=0; i<3; i++ ){
printf("Nombre:");
scanf("%s", &alu[i].nombre);
printf("Numero de Matricula:");
scanf("%d", &alu[i].num_mat);
printf("Direccion:");
scanf("%s", &alu[i].dir_alu.direccion);
printf("Cuidad:");
scanf("%s", &alu[i].dir_alu.ciudad);
printf("Provincia: ");
scanf("%s", &alu[i].dir_alu.provincia);
printf("Calificacion de Redes: ");
scanf("%d", &alu[i].cal.cal1);
printf("Calificacion de Prog. Estructurada: ");
scanf("%d", &alu[i].cal.cal2);
printf("Calicicaion de Electronica: ");
scanf("%d", &alu[i].cal.cal3);
}
break;
case '2' : //Ordenar alumno por numero de matricula
int i,j,aux;
for(int i=0;i<=alu[i].num_mat;i++){
for(j=0;j<=alu[i].num_mat-1;j++){
if(alu[j].num_mat > alu[j+1].num_mat){
aux = alu[j].num_mat;
alu[j].num_mat = alu[j+1].num_mat;
alu[j+1].num_mat = aux;
}
}
}
printf("\nAlumnos Ordenados por Matricula:");
for ( int i=0;i<=alu[i].num_mat;i++){
printf("\nMatricula:%d Nombre:%s",&alu[i].num_mat, &alu[i].nombre );
}
break;
case '3' : //busqueda por numero de alumno
printf("Matricula a Buscar: ", alu[i].num_mat);
scanf("%d",&alu[i].num_mat);
alu[i].cal.prom = (alu[i].cal.cal1 + alu[i].cal.cal2 + alu[i].cal.cal3)/3;
i = 0 ;
while((band == false) && (i<alu[i].num_mat)){
if (alu[i].num_mat == alu[i].num_mat){
band = true;
}
i++;
}
if (band==false){
printf("\nEl Alumno no existe :(");
}
else if (band == true){
printf("\nMatricula: %d ",alu[i].num_mat);
printf("\nNombre: %s ",alu[i].nombre);
printf("\nDireccion: %s ", alu[i].dir_alu.direccion);
printf("\nCiudad: %s ", alu[i].dir_alu.ciudad);
printf("\nProvincia: %s ", alu[i].dir_alu.provincia);
printf("\nPromedio: %f ", alu[i].cal.prom);
}
break;
case '4' :
printf("Estas seguro que deseas Salir... ");
printf("\n1- SI");
printf("\n2- NO\n");
scanf("%d",&b);
if (b == 1){
return 0;
}
else {
return main();
}
break;
default :
printf("Opcion no valida ");
break;
}
getch ();
return main();
}
Valora esta pregunta


0