Visual C++ .NET - AYUDA CON BUSQUEDA EN C++

 
Vista:

AYUDA CON BUSQUEDA EN C++

Publicado por CRISTHIAN MARTINEZ (1 intervención) el 11/11/2009 14:48:06
HOLA BUENOS PROGRAMADORES, NESECITO AYUDA EN ESTE PROGRAMA, EL PROGRAMA CONSITE EN INGRESAR DATOS Y NOTAS DE ALUMNOS Y SACAR EL PROMEDIO, LUEGO DE ESTO HACER UNA BUSQUEDA DE EL ALUNNO Y QUE ME SALGAN LOS DATOS Y LAS NOTAS DE ESTE

ESTE CODIGO ALMACENA LOS DATOS Y SACA LOS PROMEDIOS PERO LO QUE ME FALTA ES LO DE LA BUSQUEDA


#include <iostream>
#include <cstdlib>
using namespace std;

const int tamnombre=40;

typedef char vectnombres[tamnombre];

vectnombres* ptr_arraynombre;

int numAlum,nt1,nt2,nt3;
int pro[tamnombre], vec_nt1[tamnombre], vec_nt2[tamnombre],vec_nt3[tamnombre];

char datos();
char mostrar();
int main (){

datos();
mostrar();
}

char datos(){



cout<<"cantidad de alumnos: ";
cin>>numAlum;

ptr_arraynombre= new vectnombres[numAlum];
if (ptr_arraynombre==NULL){

cout<<"no hay espacio"<<endl;
return 0;
}


for (int i=0; i<numAlum; i++){

cout<<"nombre "<<i+1<<": ";
cin.get();
cin.getline( *(ptr_arraynombre+i),tamnombre);
cout<<endl;
cout <<"lqm: " << *(ptr_arraynombre+i)<<endl;

cout<<" Ingrese primera nota: ";
cin>>nt1;
vec_nt1[i]=nt1;

cout<<" Ingrese segunda nota: ";
cin>>nt2;
vec_nt2[i]=nt2;

cout<<" Ingrese tercera nota: ";
cin>>nt3;
vec_nt3[i]=nt3;
cout<<endl;

pro[i]=(nt1+nt2+nt3)/3;


}
}

char mostrar (){

cout<<" DATOS "<<endl;
cout<<endl;

for (int i=0; i<numAlum; i++){


cout<<"alumno "<<i+1<<" "<<*(ptr_arraynombre+i)<<endl;
cout<<"nota 1 nota 2 nota 3 PROMEDIO "<<endl;
cout<<" "<<vec_nt1[i]<<" "<<vec_nt2[i]<<" "<<vec_nt3[i]<<" "<<pro[i]<<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
Imágen de perfil de Alejandro

Sistema de gestión de notas de alumnos con búsqueda

Publicado por Alejandro (265 intervenciones) el 07/02/2024 19:43:37
Cristhian, a continuación, te presento una versión modificada de tu programa que incluye la funcionalidad de búsqueda. Se ha añadido una función llamada `buscarAlumno` que permite buscar un alumno específico por su nombre:

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
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
 
const int tamnombre = 40;
 
typedef char vectnombres[tamnombre];
 
vectnombres* ptr_arraynombre;
 
int numAlum, nt1, nt2, nt3;
int pro[tamnombre], vec_nt1[tamnombre], vec_nt2[tamnombre], vec_nt3[tamnombre];
 
char datos();
char mostrar();
void buscarAlumno(const char* nombre);
 
int main() {
    datos();
    mostrar();
 
    // Ejemplo de búsqueda de alumno por nombre
    char nombreBusqueda[tamnombre];
    cout << "\nIngrese el nombre del alumno a buscar: ";
    cin.get();
    cin.getline(nombreBusqueda, tamnombre);
    buscarAlumno(nombreBusqueda);
 
    return 0;
}
 
char datos() {
    cout << "Cantidad de alumnos: ";
    cin >> numAlum;
 
    ptr_arraynombre = new vectnombres[numAlum];
    if (ptr_arraynombre == NULL) {
        cout << "No hay espacio" << endl;
        return 0;
    }
 
    for (int i = 0; i < numAlum; i++) {
        cout << "Nombre " << i + 1 << ": ";
        cin.get();
        cin.getline(*(ptr_arraynombre + i), tamnombre);
        cout << endl;
        cout << "LQM: " << *(ptr_arraynombre + i) << endl;
 
        cout << "Ingrese primera nota: ";
        cin >> nt1;
        vec_nt1 = nt1;
 
        cout << "Ingrese segunda nota: ";
        cin >> nt2;
        vec_nt2[i] = nt2;
 
        cout << "Ingrese tercera nota: ";
        cin >> nt3;
        vec_nt3[i] = nt3;
        cout << endl;
 
        pro[i] = (nt1 + nt2 + nt3) / 3;
    }
}
 
char mostrar() {
    cout << "\nDATOS\n" << endl;
 
    for (int i = 0; i < numAlum; i++) {
        cout << "Alumno " << i + 1 << " " << *(ptr_arraynombre + i) << endl;
        cout << "Nota 1 Nota 2 Nota 3 PROMEDIO" << endl;
        cout << " " << vec_nt1[i] << " " << vec_nt2[i] << " " << vec_nt3[i] << " " << pro[i] << endl;
    }
}
 
void buscarAlumno(const char* nombre) {
    for (int i = 0; i < numAlum; i++) {
        if (strcmp(*(ptr_arraynombre + i), nombre) == 0) {
            cout << "\nALUMNO ENCONTRADO\n";
            cout << "Nombre: " << *(ptr_arraynombre + i) << endl;
            cout << "Nota 1: " << vec_nt1[i] << endl;
            cout << "Nota 2: " << vec_nt2[i] << endl;
            cout << "Nota 3: " << vec_nt3[i] << endl;
            cout << "Promedio: " << pro[i] << endl;
            return;
        }
    }
 
    cout << "\nALUMNO NO ENCONTRADO\n";
}

En este código, la función `buscarAlumno` compara el nombre proporcionado con los nombres almacenados en el [i]array
y muestra los detalles del alumno si se encuentra. Además, se agregó un ejemplo de cómo usar esta función después de mostrar la información inicial.
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