C/Visual C - ayuda,marsupial,o cualquier otro

 
Vista:

ayuda,marsupial,o cualquier otro

Publicado por paula (2 intervenciones) el 09/05/2003 18:48:47
darme buestro email,y os enviaré fotos mias,hay sorpresa,y va en serio
haber si me podeis hechar un cable,recompenso con fotos mias,mandarme vuestro correo,por favor.
es un programa para hacer un historial medico, primero se guardan los datos de
cada paciente:nºs.s.,nombre,apellidos,nif,direccion(c/nº,piso),localidad,
provincia,telefono fijo y movil.
hay q almacenar datos de cada visita de cada paciente para hojear su
historial.y hay q apuntar de cada visita:fecha,hora,doctor q atendio
(nombre,apellido),sintomas del paciente,observaciones del doctor,diagnostico
y medicacion recomendada.
el historial debe permitir: añadir nuevos datos(pacientes)
modificar datos de una persona en concreto(dado pos s.s)
buscar datos de una persona dado:un nif,apellido o nombre.
borrar los datos de una persona en concreto,(dado el nif).
hojear los datos almacenados(ir viendo registros avanzando de uno en uno
o de 5 en 5)
los datos se deben guardar al cerrar el programa,
datos almacenados alfabeticamente.
no limite en numero de registros.
chao muchas gracia.
lo necesito.gracias,thank you
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

Desarrollo de un programa de historial médico en C++

Publicado por Alejandro (1153 intervenciones) el 02/06/2025 18:02:09
Para crear un programa que gestione un historial médico con las características que mencionas, puedes utilizar C++ y una estructura de datos adecuada para almacenar la información de los pacientes y sus visitas. A continuación, te presento un esquema básico de cómo podrías implementar este programa.

Estructura del programa



1. Definición de estructuras: Define estructuras para almacenar la información de los pacientes y sus visitas.

2. Funciones: Implementa funciones para añadir, modificar, buscar, borrar y hojear registros.

3. Almacenamiento de datos: Utiliza archivos para guardar los datos al cerrar el programa y cargarlos al iniciar.

Ejemplo de código



Aquí tienes un ejemplo básico que ilustra cómo podrías estructurar el programa:

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
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
 
struct Visita {
    std::string fecha;
    std::string hora;
    std::string doctorNombre;
    std::string doctorApellido;
    std::string sintomas;
    std::string observaciones;
    std::string diagnostico;
    std::string medicacion;
};
 
struct Paciente {
    std::string numeroSS;
    std::string nombre;
    std::string apellidos;
    std::string nif;
    std::string direccion;
    std::string localidad;
    std::string provincia;
    std::string telefonoFijo;
    std::string telefonoMovil;
    std::vector<Visita> visitas;
};
 
std::vector<Paciente> pacientes;
 
void guardarDatos() {
    std::ofstream archivo("historial_medico.txt");
    for (const auto& paciente : pacientes) {
        archivo << paciente.numeroSS << "," << paciente.nombre << "," << paciente.apellidos << ","
                << paciente.nif << "," << paciente.direccion << "," << paciente.localidad << ","
                << paciente.provincia << "," << paciente.telefonoFijo << "," << paciente.telefonoMovil << "\n";
        for (const auto& visita : paciente.visitas) {
            archivo << visita.fecha << "," << visita.hora << "," << visita.doctorNombre << ","
                    << visita.doctorApellido << "," << visita.sintomas << "," << visita.observaciones << ","
                    << visita.diagnostico << "," << visita.medicacion << "\n";
        }
    }
    archivo.close();
}
 
void cargarDatos() {
    std::ifstream archivo("historial_medico.txt");
    if (!archivo) return;
 
    Paciente paciente;
    std::string linea;
    while (std::getline(archivo, linea)) {
        // Aquí deberías parsear la línea y llenar la estructura de Paciente y Visita
        // Este es un ejemplo simplificado
        // ...
    }
    archivo.close();
}
 
void añadirPaciente() {
    Paciente nuevoPaciente;
    std::cout << "Ingrese el número de seguridad social: ";
    std::cin >> nuevoPaciente.numeroSS;
    std::cout << "Ingrese el nombre: ";
    std::cin >> nuevoPaciente.nombre;
    std::cout << "Ingrese los apellidos: ";
    std::cin >> nuevoPaciente.apellidos;
    std::cout << "Ingrese el NIF: ";
    std::cin >> nuevoPaciente.nif;
    std::cout << "Ingrese la dirección: ";
    std::cin >> nuevoPaciente.direccion;
    std::cout << "Ingrese la localidad: ";
    std::cin >> nuevoPaciente.localidad;
    std::cout << "Ingrese la provincia: ";
    std::cin >> nuevoPaciente.provincia;
    std::cout << "Ingrese el teléfono fijo: ";
    std::cin >> nuevoPaciente.telefonoFijo;
    std::cout << "Ingrese el teléfono móvil: ";
    std::cin >> nuevoPaciente.telefonoMovil;
 
    pacientes.push_back(nuevoPaciente);
    std::sort(pacientes.begin(), pacientes.end(), [](const Paciente& a, const Paciente& b) {
        return a.apellidos < b.apellidos; // Ordenar por apellidos
    });
}
 
void buscarPaciente() {
    std::string nif;
    std::cout << "Ingrese el NIF del paciente a buscar: ";
    std::cin >> nif;
 
    for (const auto& paciente : pacientes) {
        if (paciente.nif == nif) {
            std::cout << "Paciente encontrado: " << paciente.nombre << " " << paciente.apellidos << "\n";
            return;
        }
    }
    std::cout << "Paciente no encontrado.\n";
}
 
void modificarPaciente() {
    // Implementar la lógica para modificar los datos de un paciente
}
 
void borrarPaciente() {
    std::string nif;
    std::cout << "Ingrese el NIF del paciente a borrar: ";
    std::cin >> nif;
 
    pacientes.erase(std::remove_if(pacientes.begin(), pacientes.end(), [&](const Paciente& p) {
        return p.nif == nif;
    }), pacientes.end());
}
 
void hojearPacientes() {
    // Implementar la lógica para hojear los pacientes
}
 
int main() {
    cargarDatos();
    int opcion;
    do {
        std::cout << "1. Añadir Paciente\n";
        std::cout << "2. Buscar Paciente\n";
        std::cout << "3. Modificar Paciente\n";
        std::cout << "4. Borrar Paciente\n";
        std::cout << "5. Hojear Pacientes\n";
        std::cout << "6. Salir\n";
        std::cout << "Seleccione una opción: ";
        std::cin >> opcion;
 
        switch (opcion) {
            case 1: añadirPaciente(); break;
            case 2: buscarPaciente(); break;
            case 3: modificarPaciente(); break;
            case 4: borrarPaciente(); break;
            case 5: hojearPacientes(); break;
            case 6: guardarDatos(); break;
            default: std::cout << "Opción no válida.\n"; break;
        }
    } while (opcion != 6);
 
    return 0;
}

Explicación del código:



1. Estructuras: Se definen las estructuras `Visita` y `Paciente` para almacenar la información necesaria.

2. Funciones:
- `guardarDatos()`: Guarda los datos de los pacientes en un archivo de texto.
- `cargarDatos()`: Carga los datos desde el archivo al iniciar el programa.
- `añadirPaciente()`: Permite añadir un nuevo paciente.
- `buscarPaciente()`: Busca un paciente por su NIF.
- `modificarPaciente()`: Función para modificar los datos de un paciente (a implementar).
- `borrarPaciente()`: Borra un paciente dado su NIF.
- `hojearPacientes()`: Permite hojear los pacientes (a implementar).

3. Ordenamiento: Los pacientes se ordenan alfabéticamente por apellidos al añadir uno nuevo.

4. Interfaz de usuario: Un menú simple permite al usuario seleccionar la acción deseada.

Notas finales:


- Este es un esquema básico y puede ser ampliado con más funcionalidades y validaciones.
- Asegúrate de manejar adecuadamente la entrada del usuario y los errores.
- Puedes mejorar la persistencia de datos utilizando bases de datos en lugar de archivos de texto si lo deseas.

Espero que esto te ayude a comenzar con tu programa de historial médico. ¡Buena suerte, Paula!
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