Algoritmia - como seria el algoritmo para...

 
Vista:

como seria el algoritmo para...

Publicado por sebastian lalinde (1 intervención) el 05/09/2008 15:50:26
como hago el algoritmo ,paso a paso de:
leer de una base de datos la siguiente informacion:nombre, direccion, telefono y estrato, imprimirla para todos los registros, cuyo estrato sea 1,2,3. La aplicacion termina cuando el usuario decide.
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

Lectura de base de datos con filtro de estrato en C++

Publicado por Alejandro (307 intervenciones) el 12/03/2024 22:07:48
Sebastián, aquí te proporciono un algoritmo paso a paso para leer de una base de datos la información de nombre, dirección, teléfono y estrato, e imprimir los registros cuyo estrato sea 1, 2 o 3. La aplicación seguirá ejecutándose hasta que el usuario decida salir. Este algoritmo asume que estás trabajando con una base de datos simple en la que cada registro está separado por un delimitador, como una coma (,).

1. Definir la estructura de datos para almacenar la información de un registro:
- Nombre
- Dirección
- Teléfono
- Estrato

2. Crear una función para leer un registro de la base de datos:
- Leer una línea de la base de datos.
- Separar la línea en campos utilizando el delimitador.
- Crear un objeto de la estructura de datos y asignar los valores de los campos.

3. Crear una función para imprimir la información de un registro:
- Imprimir el nombre, dirección, teléfono y estrato del registro.

4. Crear el bucle principal de la aplicación:
- Leer un registro de la base de datos.
- Verificar si el estrato del registro es 1, 2 o 3.
- Si es así, imprimir la información del registro.
- Preguntar al usuario si desea continuar o salir.
- Si decide salir, terminar la aplicación.

A continuación, te proporciono un ejemplo de cómo podrías implementar este algoritmo en C++:

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
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
 
// Definir la estructura de datos para un registro
struct Registro {
    std::string nombre;
    std::string direccion;
    std::string telefono;
    int estrato;
};
 
// Función para leer un registro de la base de datos
Registro leerRegistro(const std::string& linea) {
    std::stringstream ss(linea);
    std::string campo;
    Registro registro;
 
    // Leer y asignar valores a los campos
    std::getline(ss, campo, ',');
    registro.nombre = campo;
    std::getline(ss, campo, ',');
    registro.direccion = campo;
    std::getline(ss, campo, ',');
    registro.telefono = campo;
    std::getline(ss, campo, ',');
    registro.estrato = std::stoi(campo);
 
    return registro;
}
 
// Función para imprimir la información de un registro
void imprimirRegistro(const Registro& registro) {
    std::cout << "Nombre: " << registro.nombre << std::endl;
    std::cout << "Dirección: " << registro.direccion << std::endl;
    std::cout << "Teléfono: " << registro.telefono << std::endl;
    std::cout << "Estrato: " << registro.estrato << std::endl;
    std::cout << std::endl;
}
 
int main() {
    std::ifstream archivo("basededatos.txt");
    std::string linea;
    char opcion;
 
    // Verificar si se pudo abrir el archivo
    if (!archivo.is_open()) {
        std::cerr << "No se pudo abrir el archivo." << std::endl;
        return 1;
    }
 
    // Bucle principal
    do {
        // Leer una línea de la base de datos
        std::getline(archivo, linea);
 
        // Verificar si se alcanzó el final del archivo
        if (archivo.eof()) {
            std::cout << "Fin de la base de datos." << std::endl;
            break;
        }
 
        // Leer el registro
        Registro registro = leerRegistro(linea);
 
        // Verificar si el estrato es 1, 2 o 3
        if (registro.estrato >= 1 && registro.estrato <= 3) {
            // Imprimir la información del registro
            imprimirRegistro(registro);
        }
 
        // Preguntar al usuario si desea continuar
        std::cout << "¿Desea continuar? (S/N): ";
        std::cin >> opcion;
        std::cin.ignore(); // Limpiar el buffer del teclado
 
    } while (opcion == 'S' || opcion == 's');
 
    // Cerrar el archivo
    archivo.close();
 
    return 0;
}

En este ejemplo, se asume que tienes un archivo llamado "basededatos.txt" que contiene los registros separados por comas. La aplicación lee este archivo, filtra los registros cuyo estrato es 1, 2 o 3, e imprime la información correspondiente. Luego, pregunta al usuario si desea continuar o salir del programa. Si decides continuar, seguirá leyendo y mostrando registros; si decides salir, la aplicación terminará. Recuerda ajustar el código según el formato y la estructura real de tu base de datos.
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