C/Visual C - Guardar y consultar datos matriz

 
Vista:
Imágen de perfil de Marco

Guardar y consultar datos matriz

Publicado por Marco (5 intervenciones) el 15/09/2022 09:43:17
Buenas
me pueden ayudar a corregir este código.
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).


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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
 
int main()
{
	char registros[3][6];
    char cedula,nombre,edad,provincia,area,fecha;
    int intro=0;
    int num=0;
    int todos=0;
    float porcentaje=0.0;
    char nom;
 
    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{
 
		char op;
 
		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.	Registrar Costo  por paciente.  \n");
		printf("3.	Rectificar el área donde se encuentra el 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",&op);
 
		switch (op){
			case 1:
 
			printf("\n Ingrese el numero de cedula: ");
			scanf("%d",&cedula);
 
			printf("\n Ingrese el apellido y nombre del paciente: ");
			scanf("%s",&nombre);
 
			printf("\n Ingrese la edad :");
			scanf("%d",&edad);
 
			printf("\n Ingrese la Provincia de Procedencia: ");
			scanf("%d",&provincia);
 
			printf("\n Ingrese código de área de atención: ");
			scanf("%d",&area);
 
			printf("\n Ingrese Fecha de ingreso: ");
			scanf("%s",&fecha);
 
			registros[intro][0]=cedula;
            registros[intro][1]=nombre;
            registros[intro][2]=edad;
            registros[intro][3]=provincia;
            registros[intro][4]=area;
            registros[intro][5]=fecha;
            intro=intro+1;
        	break;
 
        	case 2:
			printf("Por favor ingrese el número de cédula: ");
			scanf("%d",&num);getchar();
				for(intro=0;intro<3;intro++){
					if(registros[intro][0]==num){
						printf("Dato encontrado");
						printf("Cedula: %d\n",registros[intro][0]);
						printf("Nombre: %d\n",registros[intro][1]);
						printf("Edad: %d\n",registros[intro][2]);
						printf("Provincia: %d\n",registros[intro][3]);
						printf("Area: %d\n",registros[intro][4]);
						printf("Fecha: %d\n",registros[intro][5]);
						printf("Por favor llenar el costo total por la atención");
						scanf("%d", &porcentaje);
 
 
						printf("\n");
					}
	        break;
				}
   		}
 
		return 0;
	}while(registros != 3);
}
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
sin imagen de perfil
Val: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Guardar y consultar datos matriz

Publicado por dario (82 intervenciones) el 15/09/2022 11:39:19
Hola, te dejo este pseudocodigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Opcion 2
//Nota usar las variables reales, este es un pseudocodigo
INICIO
	leer cedula
	para i = 1 hasta i<tamaño_registro
		si cedula = pac.cedula
			imprimir(nombre)
			imprimir(edad)
			imprimir(cod_prov)
			imprimir(cod_area)
			imprimir(fecha_ing)
		fin-si
	fin-para
	leer costo_total
	leer fecha_alta
FIN
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

Guardar y consultar datos matriz

Publicado por SuperIndio (1 intervención) el 15/09/2022 23:23:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ Indio:/desa/langc/codigo> men65
 
 ÁREAS DE ATENCIÓN
1. Emergencia
2. Traumatología
3. Medicina general
4. Obstetricia
 
 MENU DE OPCIONES HOSPITALARIAS
 
 Por favor escoga entre las siguientes opciones:
1.      Registrar datos de paciente
2.      Registrar Costo  por paciente.
3.      Rectificar el área donde se encuentra el paciente.
4.      Reporte resumen hospitalario ordenados por edad
5.      Reporte de pacientes
6.      Reporte de paciente Ordenado x Área totalizando el costo
S.      Salir del programa

Abajo va el codigo de vuelta

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
/*
  * cc -o men65.o men65.c -w
  * cc -o men65 men65.o
  */
 
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
 
int main( int argc, char * argv[] ) {
 
      char registros[3][6];
      char cedula,nombre,edad,provincia,area,fecha;
      int intro=0;
      int num=0;
      int todos=0;
      float porcentaje=0.0;
      char nom;
      int contador = 0;
 
      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 {
          char op;
          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.      Registrar Costo  por paciente.  \n");
          printf("3.      Rectificar el área donde se encuentra el 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",&op);
 
          switch (op) {
          case 1:
 
                  printf("\n Ingrese el numero de cedula: ");
                  scanf("%d",&cedula);
 
                  printf("\n Ingrese el apellido y nombre del paciente: ");
                  scanf("%s",&nombre);
 
                  printf("\n Ingrese la edad :");
                  scanf("%d",&edad);
 
                  printf("\n Ingrese la Provincia de Procedencia: ");
                  scanf("%d",&provincia);
 
                  printf("\n Ingrese código de área de atención: ");
                  scanf("%d",&area);
 
                  printf("\n Ingrese Fecha de ingreso: ");
                  scanf("%s",&fecha);
 
                  registros[intro][0]=cedula;
                  registros[intro][1]=nombre;
                  registros[intro][2]=edad;
                  registros[intro][3]=provincia;
                  registros[intro][4]=area;
                  registros[intro][5]=fecha;
                  intro=intro+1;
                  break;
          case 2:
                  printf("Por favor ingrese el número de cédula: ");
                  scanf("%d",&num);getchar();
                  for ( intro = 0; intro < 3; intro++) {
                        if ( registros[intro][0] == num) {
                             printf("Dato encontrado");
                             printf("Cedula: %d\n",registros[intro][0]);
                             printf("Nombre: %d\n",registros[intro][1]);
                             printf("Edad: %d\n",registros[intro][2]);
                             printf("Provincia: %d\n",registros[intro][3]);
                             printf("Area: %d\n",registros[intro][4]);
                             printf("Fecha: %d\n",registros[intro][5]);
                             printf("Por favor llenar el costo total por la atención");
                             scanf("%d", &porcentaje);
                             printf("\n");
                        }
                  }
                  break;
          }
          return 0;
          contador++;
      } while( contador <= 3 );
}
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
Imágen de perfil de Marco

Guardar y consultar datos matriz

Publicado por Marco (5 intervenciones) el 16/09/2022 00:17:10
Buenas tardes, muchas gracias, tengo una consulta, cuando termino de llenar los datos el programa se cierra y si vuelvo a ejecutar para consultar ya no tengo datos para consultar, ¿Cómo lo soluciono?¿Cómo se que estoy guardando los datos en una matriz para después poder consultarlo?
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: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Guardar y consultar datos matriz

Publicado por dario (82 intervenciones) el 16/09/2022 03:38:30
Tienes que guardar los datos en una estructura de arreglos, es mucho mas facil; sino tendrias que crear un arreglo para cada campo (ejemplo: un arreglo para nombre, un arreglo para edad, etc) es mas tediodo.
Salu2.
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: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Guardar y consultar datos matriz

Publicado por dario (82 intervenciones) el 16/09/2022 06:04:49
Hola, opcion 2 lista.
Salu2.

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
/*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();
void registrarCosto();
int i=0;
 
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;
            case '2':
                registrarCosto();
            break;
        }
 
    } while (opc != 'S');
 
    return 0;
}
 
//Funciones
void registrarDatos() {
    char seguir;
 
    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();
        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');
 
}
 
void registrarCosto() {
    int cedula;
    int j;
 
    printf("Digite su cedula de identidad: ");
    scanf("%d",&cedula); getchar();
    for (j=0; j<=i; j++) {
        if (pac[j].cedula == cedula) {
            printf("Nombre: %s",pac[j].nombre);
            printf("Edad: %d",pac[j].edad);
            printf("\nCodigo provincia: %d",pac[j].codProv);
            printf("\nCodigo area: %d",pac[j].codArea);
            printf("\nFecha ingreso: %s",pac[j].fechIngreso);
        }
    }
}
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