Dev - C++ - Registro hospitalario

 
Vista:
Imágen de perfil de Marco

Registro hospitalario

Publicado por Marco (5 intervenciones) el 06/09/2022 05:29:12
Me pueden ayudar con el ejercicio adjunto
He avanzado con lo siguiente.
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
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
	int n, opc;
 
 
	printf("1 – Emergencia \n");
	printf("2 – Traumatología \n");
	printf("3 – Medicina general \n");
	printf("4 – Obstetricia \n");
	scanf("%i", & opc);
	printf(" Su opción es %i", opc);
 
	do
	{
		printf("\n MENU DE OPCIONES HOSPITALARIAS \n");
		printf("1.	Registrar datos de paciente \n");
		printf("2.	Rectificar el área donde se encuentra el paciente \n");
		printf("3.	Registrar datos de paciente \n");
		printf("4.	Reporte resumen hospitalario ordenados por edad \n");
		printf("5.	Reporte de pacientes \n");
		printf("6.	Reporte de paciente Ordenado x Área totalizando el costo \n");
		printf("S.  Salir del programa \n");
 
		switch (1)
		{
			case 1:
				struct {
        string apellido;
		string nombre;
        string cedula;
        string edad;
        string cod_provicia;
        string cod_area_atencion;
        string fecha_de_ingreso;
    }personas[N];
 
    string usu;
    int opcion, i;
    unsigned char eleccion;
 
    cout << "Registro de Datos" << endl;
    cout << "Introduzca su nombre: ";
    cin >> usu;
    cout << endl << endl;
    cout << "Hola " << usu << " Bienvenido al programa de registro de datos" << endl;
    cout << "Por favor " << usu << " ingrese a continuación los datos a registrar" << endl << endl;
 
    getchar();
 
    for(i=0;i<N;i++){
    	cout << "Por favor ingrese la cedula [" << i << "]: " ;
        getline (cin, personas[i].cedula) ;
        cout << "Por favor ingrese el apellido [" << i << "]: ";
        getline (cin,personas[i].apellido) ;
        cout << "Por favor ingrese el nombre [" << i << "]: ";
        getline (cin,personas[i].nombre) ;
        cout << "Por favor ingrese la edad [" << i << "]: ";
        getline (cin,personas[i].edad) ;
        cout << "Por favor ingrese el codigo de provicia [" << i << "]: ";
        getline (cin,personas[i].cod_provicia) ;
        cout << "Por favor ingrese el código area de atencion [" << i << "]: ";
        getline (cin,personas[i].cod_area_atencion) ;
        cout << "Por favor ingrese fecha de ingreso [" << i << "]: ";
        getline (cin,personas[i].fecha_de_ingreso) ;
 
        cout << endl;
    }
 
		}
	}
 
 
 
 
	return 0;
 
}
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 Marco

Registro hospitalario

Publicado por Marco (5 intervenciones) el 07/09/2022 04:59:19
He avanzado lo siguiente
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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
 
int main(void)
{
	setlocale(LC_ALL, "");
	int opc;
	char op;
 
	printf("\n ÁREAS DE ATENCIÓN \n");
	printf("1. Emergencia \n");
	printf("2. Traumatología \n");
	printf("3. Medicina general \n");
	printf("4. Obstetricia \n");
 
 
 
	printf("\n MENU DE OPCIONES HOSPITALARIAS \n");
	printf("\n Por favor escoga entre las siguientes opciones: \n");
	printf("1.	Registrar datos de paciente \n");
	printf("2.	Rectificar el área donde se encuentra el paciente \n");
	printf("3.	Registrar datos de paciente \n");
	printf("4.	Reporte resumen hospitalario ordenados por edad \n");
	printf("5.	Reporte de pacientes \n");
	printf("6.	Reporte de paciente Ordenado x Área totalizando el costo \n");
	printf("S.	Salir del programa \n");
	scanf("%d",&opc);
 
 
 
 
	if (opc == 1)
	{
 
		char pacientes[opc][6][6];
			int i,j;
 
				//Con el primer ciclo for recorremos las filas de la matriz ->pacientes
				for( i=0; i<opc; i++){
 
					//Con el segundo ciclo for recorremos las columnas de la matriz -> los datos
					for( j=0; j<6; j++){
 
						//utilizamos un switch para solicitar el dato correspondiente dependiendo del número de columna
						switch(j){
						case 0: printf("\n Ingrese el numero de cedula: ", i+1); break;
						case 1: printf("\n Ingrese el apellido y nombre del paciente :", i+1); break;
						case 2: printf("\n Ingrese la edad :", i+1); break;
						case 3: printf("\n Ingrese la Provincia de Procedencia  :", i+1); break;
						case 4: printf("\n Ingrese código de área de atención  :", i+1); break;
						case 5: printf("\n Ingrese Fecha de ingreso  :", i+1); break;
						}
						//Ingresamos el valor correspondiente al dato requerido segun j
						//ya sea cedula 0,  apellido 1,  nombre 2, edad 3
					scanf("%s", &pacientes[i][j]);
 
					}
				}
				printf("\n Cedula \t- Apellido Nombre \t- Edad \t-  Provincia \t- Código de área \t- Fecha de Ingreso");
 
				//recorremos nuevamente la matriz para imprimir los valores almacenados en la misma
				for(i=0; i<opc; i++){
					printf("\n");
					for( j=0; j<6; j++){
						printf("%s \t", pacientes[i][j]);
					}
				}
	}
	else if (opc == 2)
	{
		}
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Registro hospitalario

Publicado por dario (718 intervenciones) el 07/09/2022 05:14:26
Sabes usar estructuras?.
Con estructuras seria mucho mas facil.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Marco

Registro hospitalario

Publicado por Marco (5 intervenciones) el 07/09/2022 05:29:22
La verdad no, estoy recién aprendiendo y ya me estanque en el punto 2 además estoy tratando de solucionar la validación de datos en el punto 1.

2. Registrar Costo por paciente. Se ingresa la cédula del paciente y se muestra en pantalla sus datos y el área donde se ubica. Se digita el costo total por la atención del paciente( un número con dos decimales) y su fecha de dado de alta(año/mes/dia)
( Para este caso se asume que el paciente solo paso por una área de atención).
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Registro hospitalario

Publicado por dario (718 intervenciones) el 07/09/2022 05:31:38
El programa es en C o C++.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Marco

Registro hospitalario

Publicado por Marco (5 intervenciones) el 07/09/2022 05:48:48
Captura-de-pantalla-2022-09-06-224803

Esto es lo que llevo del punto 2 y todo es en C
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Registro hospitalario

Publicado por dario (718 intervenciones) el 07/09/2022 05:39:32
Cual es el enunciado del problema.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Marco

Registro hospitalario

Publicado por Marco (5 intervenciones) el 07/09/2022 05:47:16
Es este el enunciado

MENU DE OPCIONES HOSPITALARIAS
1. Registrar datos de paciente. Registra desde teclado por cada paciente el número de cédula, nombre (El nombre debe ingresar primero apellidos y después nombres), la edad, código de la Provincia de Procedencia (tabla provincia), código de área de atención (tabla de área)y Fecha de ingreso(año/mes/dia). Al registrar los códigos de provincia y área de atención deberá aparecer la descripción en pantalla.

● Deberá utilizar una matriz para almacenar la información del paciente.
● validar los datos de entrada.

2. Registrar Costo por paciente. Se ingresa la cédula del paciente y se muestra en pantalla sus datos y el área donde se ubica. Se digita el costo total por la atención del paciente( un número con dos decimales) y su fecha de dado de alta(año/mes/dia)
( Para este caso se asume que el paciente solo paso por una área de atención).

3. Rectificar el área donde se encuentra el paciente. Dado el número de cédula, se debe:
● mostrar: el nombre del paciente, el área actual( código y descripción) del hospital en donde se encuentra buscando en la matriz de datos y
● solicitar el ingreso del código de la nueva área que reemplaza la actual, se muestra la descripción del área nueva.
● Pida confirmar la actualización, corregir o salir sin actualizar.

4. Reporte resumen hospitalario ordenados por edad. Muestra el total de pacientes mayores o iguales a 18 años que ingresaron al hospital y también los menores a 18 . (Sugerencia no obligatoria: Ordenar la matriz por edad , recorrerla de mayor a menor .Para la lista de mayores de edad deberá recorrer la matriz de pacientes e imprimir los que cumplan con la condición, después para la lista de menores de edad deberá detectar en base a una condición cuando empiece los menores a 21, este proceso evita volver a recorrer la matriz de pacientes). mostrar solo los que no han sido dados de alta

5. Reporte de pacientes. Presentar ordenado por el apellido. Los datos de los pacientes (cédula, nombre, edad y el nombre del área del hospital donde se encuentra). (Aquí deberá mostrar el nombre del área en la que se encuentra el paciente, para ello deberá ir a buscar a la tabla áreas el nombre del área correspondiente 1 es Emergencia, 2 es Traumatología, 3 es Medicina general y 4 es Obstetricia). Mostrar el tiempo que lleva hospitalizado.

6. Reporte de paciente Ordenado x Área totalizando el costo. Solicitar por teclado el número de área que desea presentar, si digita área T muestre todas las áreas. Mostrar los datos de los pacientes correspondiente a esa área (cédula, nombre, edad y costo del tratamiento). Presentar la sumatoria total del costo que representa esta área y un total general de todas las áreas.

Consideraciones : Solo presente las áreas que tienen pacientes y no han sido dado de alta.. Debe ordenar la matriz de paciente por código de área antes de recorrerla para listar la información esto ayuda para optimizar el tiempo de respuesta.

S. Salir. Finaliza el programa
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Registro hospitalario

Publicado por dario (718 intervenciones) el 07/09/2022 05:52:08
Estoy en el chat Dev C++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Registro hospitalario

Publicado por dario (718 intervenciones) el 08/09/2022 05:39:53
Hola, puedes empezar haciendolo asi:
He usado estructuras para agrupar los campos del paciente.

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
/*Desarrollar en lenguaje C  utilizando Arreglos y Funciones un Control Hospitalario  */
 
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define LIMITE 100
 
struct Pacientes {
    int cedula;
    char nombre[35];
    int edad;
    int codProv; //Codigo de Provincia
    int codArea; //Codigo de Area
    char fechIngreso[9];
} pac[LIMITE];
 
//Funciones
void registrarDatos();
 
int main()
{
    //struct Pacientes pac[LIMITE];
    char opc;
 
	printf("\n ÁREAS DE ATENCIÓN \n");
	printf("1. Emergencia \n");
	printf("2. Traumatología \n");
	printf("3. Medicina general \n");
	printf("4. Obstetricia \n");
 
 
    do {
        printf("\n MENU DE OPCIONES HOSPITALARIAS \n");
        printf("\n Por favor escoga entre las siguientes opciones: \n");
        printf("1.	Registrar datos de paciente \n");
        printf("2.	Rectificar el área donde se encuentra el paciente \n");
        printf("3.	Registrar datos de paciente \n");
        printf("4.	Reporte resumen hospitalario ordenados por edad \n");
        printf("5.	Reporte de pacientes \n");
        printf("6.	Reporte de paciente Ordenado x Área totalizando el costo \n");
        printf("S.	Salir del programa \n");
        scanf("%c",&opc);
 
        switch (opc) {
            case '1':
                registrarDatos();
            break;
        }
 
    } while (opc != 'n');
 
    return 0;
}
 
//Funciones
void registrarDatos() {
    char seguir;
    int i=0;
 
    printf("Ingreso de datos\n\n");
 
    do {
        printf("Cedula de Identidad: ");
        scanf("%d",&pac[i].cedula); getchar();
        printf("Apellidos y Nombre: ");
        fgets(pac[i].nombre,35,stdin);
        printf("Edad del paciente: ");
        scanf("%d",&pac[i].edad);
        printf("Codigo de provincia: ");
        scanf("%d",&pac[i].codProv); getchar(); getchar();
        printf("Codigo de area: ");
        scanf("%d",&pac[i].codArea);
        printf("Fecha de ingreso: ");
        scanf("%s",pac[i].fechIngreso); getchar();
        printf("Agregar mas pacientes s/n: ");
        scanf("%c",&seguir);
 
        if (seguir == 's')
            i++;
 
    } while (seguir != 'n');
 
}
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