Dev - C++ - Al trasladar el usuario no elimina el espacio inicial

 
Vista:
sin imagen de perfil
Val: 53
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Carlos (23 intervenciones) el 14/08/2020 12:10:48
Buenas estoy praticando en c++ y me sale un error o no encuentra la solucion alo que quiero llegar.
Intento registrar a una persona en el espacio que el desee y luego darle la opcion que si quiere tranladarse a otro espacio cuando le doy en la opcion de translado le digo que escoja la fila y la columna en la que desea transladarse pero el espacio que estaba primeramente no se borra no se porque por favor se me podrian colaborar seria de mucha ayuda.


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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main(){
	char nombre[30][30];
	int edad[30],i;
	int op,op1,n;
	int documento,doc;
	int j;
	bool disp;
	int fila[30],columna[30];
	int matrix[5][5];
	do{
		cout<<"********MENU********\n";
		cout<<"* 1.Registrar                \n";
		cout<<"* 2.Mostrar                  \n";
		cout<<"* 3.Transladar              \n";
		cout<<"* 4.Salir                         \n";
		cout<<"**********************\n";
		cin>>op;
		switch(op){
			case 1:cout<<"****REGISTRO****\n\n";
			cout<<"Espacio Disponibles\n";
			cout<<"   (1)(2)(3)(4)(5)\n";
			for (n=0; n<5; n++){
				cout<<"("<<n + 1<<")";
				for (j=0;j<5;j++){
					cout<<"["<<matrix[n][j]<<"]";
				}
				cout<<"\n";
			}
			cout<<"Escoja la fila\n";
			cin>>fila[i];
			cout<<"Escoja la columna\n";
			cin>>columna[i];
			if (matrix[fila[i]-1][columna[i]-1]==0){
				if (disp==true){
					matrix[fila[i]-1][columna[i]-1]=1;
				}
			}
			cout<<"Ingrese su nombre\n";
			cin.getline(nombre[i],30);
			cin.getline(nombre[i],30);
			cout<<"Ingrese su numero de documento\n";
			cin>>documento;
			cout<<"Ingrese su edad\n";
			cin>>edad[i];
			i++;
			break;
			case 2:cout<<"****MOSTRAR****\n";
			for(n=0;n<i;n++){
				cout<<"Nombre: "<<nombre[n]<<"\n";
				cout<<"Edad: "<<edad[n]<<"\n";
				cout<<"Fila: "<<fila[n]<<"\n";
				cout<<"Columna: "<<columna[n]<<"\n";
			}
			break;
			case 3:cout<<"****TRANSLADO****\n";
			cout<<"Ingrese el numero de documento\n";
			cin>>doc;
			for (n=0;n<i;n++){
				if (doc=documento){
					cout<<"Espacio Disponibles\n";
					cout<<"   (1)(2)(3)(4)(5)\n";
					for (n=0; n<5; n++){
						cout<<"("<<n + 1<<")";
						for (j=0;j<5;j++){
							cout<<"["<<matrix[n][j]<<"]";
						}
						cout<<"\n";
					}
					cout<<"Escoja la fila\n";
					cin>>fila[i];
					cout<<"Escoja la columna\n";
					cin>>columna[i];
					if (matrix[fila[i]-1][columna[i]-1]==0){
						matrix[fila[i]-1][columna[i]-1]=1;
					}
				}
				if (matrix[fila[n]-1][columna[n]-1]==1){
						matrix[fila[n]-1][columna[n]-1]=0;
						disp=true;
				}
			}
			break;
			case 4:cout<<"****SALIENDO****\n";
			return 0;
			break;
			default:cout<<"****ERROR****\n";
			break;
		}
		cout<<"Desea Regresar Al Menu\n";
		cout<<"1.Si/2.No\n";
		cin>>op1;
	}while(op1==1);
 
 
	system ("pause");
	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
sin imagen de perfil
Val: 53
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Carlos (23 intervenciones) el 15/08/2020 06:17:42
Ayuda por favor alguien que me pueda colaborar
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 Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Rodrigo (539 intervenciones) el 15/08/2020 13:58:43
Tienes varios problemas que no se si estan relacionados con el problema que tu descubriste.
Sugiero hacer algunas mejoras antes de atacar el problema que tu intentas describir.
Tal vez resolviendo los problemas que indico mas abajo, de rebote se soluciona el problema que intentas resolver?

La linea 64 es una asignacion, no es una comparacion. Usa == para comparar.
Al hacerlo con = estas asignando SIEMPRE, y ejecutando el codigo del if SIEMPRE.

Las lineas 63 y 67 estan usando el mismo indice, por lo que el segundo for modifica la variable que usa el primer for, cuando el segundo for se acabe, y por fin se pueda llegar a la siguiente iteracion del primer for, el primer for vera que no puede ejecutarse mas porque le modificaron la variable de la que dependia. No se si es esto lo que quieres?

No entiendo bien por que fila y columna son arreglos. Para que quieres guardar fila y columna en un arreglo? Por que no usar variablles primitivas (no arreglos) ?

La variable disp no parece tener valor inicial, y se consulta su valor (linea 39) sin asignarle nada.
La linea 84 la hace true bajo algunas condiciones y nunca mas cambia a false. Tiene que volver a false alguna vez?

Mejora estas cosas, explica las variables y condiciones que chequeas y vuelve a publicar, si te parece bien.
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: 53
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Carlos (23 intervenciones) el 16/08/2020 00:14:07
Amigo segui tus instruciones y lo modifique pero sigo teniendo errores ahora me guarda la fila y la columna que se translado pero tambien me almacena en los espacion disponible la fila y la columna que se translado primeramente como hago para que ese espacio me aparesca disponible una vez que ya se aya transladado.

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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main(){
	char nombre[30][30];
	int edad[30],i;
	int op,op1,n;
	int documento[30],doc;
	int j,m;
	bool disp=0;
	int fila,columna;
	int matrix[5][5];
	do{
		cout<<"********MENU********\n";
		cout<<"* 1.Registrar                \n";
		cout<<"* 2.Mostrar                  \n";
		cout<<"* 3.Transladar              \n";
		cout<<"* 4.Salir                         \n";
		cout<<"**********************\n";
		cin>>op;
		switch(op){
			case 1:cout<<"****REGISTRO****\n\n";
			cout<<"Espacio Disponibles\n";
			cout<<"   (1)(2)(3)(4)(5)\n";
			for (n=0; n<5; n++){
				cout<<"("<<n + 1<<")";
				for (j=0;j<5;j++){
					cout<<"["<<matrix[n][j]<<"]";
				}
				cout<<"\n";
			}
			cout<<"Escoja la fila\n";
			cin>>fila;
			cout<<"Escoja la columna\n";
			cin>>columna;
			if (matrix[fila-1][columna-1]==0){
					matrix[fila-1][columna-1]=1;
					disp=true;
			}
			cout<<"Ingrese su nombre\n";
			cin.getline(nombre[i],30);
			cin.getline(nombre[i],30);
			cout<<"Ingrese su numero de documento\n";
			cin>>documento[i];
			cout<<"Ingrese su edad\n";
			cin>>edad[i];
			i++;
			break;
			case 2:cout<<"****MOSTRAR****\n";
			for(n=0;n<i;n++){
				cout<<"Nombre: "<<nombre[n]<<"\n";
				cout<<"Edad: "<<edad[n]<<"\n";
				cout<<"Fila: "<<fila<<"\n";
				cout<<"Columna: "<<columna<<"\n";
			}
			break;
			case 3:cout<<"****TRANSLADO****\n";
			cout<<"Ingrese el numero de documento\n";
			cin>>doc;
			for (n=0;n<i;n++){
				if (doc==documento[n]){
					cout<<"Espacio Disponibles\n";
					cout<<"   (1)(2)(3)(4)(5)\n";
					for (m=0; m<5; m++){
						cout<<"("<<m + 1<<")";
						for (j=0;j<5;j++){
							cout<<"["<<matrix[m][j]<<"]";
						}
						cout<<"\n";
					}
					cout<<"Escoja la fila\n";
					cin>>fila;
					cout<<"Escoja la columna\n";
					cin>>columna;
					if (matrix[fila-1][columna-1]==0){
							matrix[fila-1][columna-1]=1;
					}
				}
				if (matrix[fila-1][columna -1]==1){
					if (disp==false){
						matrix[fila-1][columna -1]=0;
					}
				}
			}
			break;
			case 4:cout<<"****SALIENDO****\n";
			return 0;
			break;
			default:cout<<"****ERROR****\n";
			break;
		}
		cout<<"Desea Regresar Al Menu\n";
		cout<<"1.Si/2.No\n";
		cin>>op1;
	}while(op1==1);
 
 
	system ("pause");
	return 0;
}
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 Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Rodrigo (539 intervenciones) el 16/08/2020 17:31:16
Creo entender mas tu programa ahora.

Tienes que inicializar tus variables locales, ellas NO parten en 0 al definirlas. Parten en cualquier valor.
Por ejemplo la variable i no tiene valor inicial, pero la usas y la incrementas. La matriz deberia inicializar sus elementos en 0 tambien.

Despues de mirar lo que intentabas hacer con fila y columna, creo que si deberian ser arreglos.
Estas intentando guardar en que posicion esta el documento i-esimo. Vuelve a convertirlos en arreglos.

Lo que tienes que hacer al trasladar es:

1. Descubrir en que posicion esta el documento a mover. Esto ya estas haciendo en la linea 63. El indice que buscas es n.
2. Pedir una nueva posicion, y no hacer nada si la posicion elegida ya esta ocupada. Si esta desocupada, hacer que la posicion anterior
se desocupe y usar la nueva. Sugiero usar variables distintas que filas y columnas para no sobreescribir los datos que ya tienes.

// pedir fila y columna a usar (variables filaSolicitada, columnaSolicitada),
// verificar que tengan valores validos.

1
2
3
4
5
6
7
8
9
if (matrix[filaSolicitada1-][columnaSolicitada-1] == 0) {
   // desocupar fila y columna anterior
   matrix[fila[n]][columna[n]] = 0;
   // guardar fila y columna nueva
   fila[n] = filaSolicitada-1;
   columna[n] = columnaSolicitada-1;
   // marcar como ocupado
   matrix[filaSolicitada-1][columnaSolicitada-1] = 1;
}

3. Parece que la logica de las lineas 81 a 85 tenia la intencion de disponibilizar el espacio anterior, pero lo esta haciendo siempre.
Remueve ese codigo, si aceptas el codigo que propongo mas arriba.

4. La variable disp no parece tener utilidad, remuevela. O bien explica para que la usas. No entendi aun para que la usas.
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: 53
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al trasladar el usuario no elimina el espacio inicial

Publicado por Carlos (23 intervenciones) el 28/08/2020 01:56:42
Hola amiga me funcio muy bien nombra el areglo de cama en tipo entero pero cuando quiero utilizarlo en tipo estructura no munciona no se por que.

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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct registro{
	char nombre[35];
	char condicionC[50];
	string documento,fechaN,estado,Regimen1;
	string direccion,telefono,eps;
	char tipoD[35];
	int piso,Eps1,Regimen,nivel,nivel1;
	int pisoT,disp;
	int fila,columna;
	int filaT,columnaT;
};
registro paciente[20];
registro cama[4][8][8];
 
void registro();
void listado();
void consulta();
void mostrar();
void disponibilidad1();
void disponibilidad2();
void disponibilidad3();
void disponibilidad4();
void pagar();
void retiroP();
void transladarP();
 
int i=0;
 
 
int paga;
string doc;
int fil,colum;
int main(){
	int op,op1,op3;
	do{
		cout<<"\t\t\nHOSPITAL SAN FERNANDO\n\n";
		cout<<"1.REGISTRAR PACIENTE\n";
		cout<<"2.LISTADO DE PACIENTES\n";
		cout<<"3.CONSULTA INFORMACION DE PACIENTES\n";
		cout<<"4.MOSTRAR DISPONIBILIDAD DE CAMAS\n";
		cout<<"5.FACTURA DE PACIENTE\n";
		cout<<"6.RETIRO DE PACEINTE\n";
		cout<<"7.TRANSLADAR PACIENTE\n";
		cout<<"8.SALIR\n";
		cout<<"Escoja un opcion\n";
		cin>>op;
		switch(op){
			case 1:cout<<"\nREGISTRO DE PACIENTES\n";
			registro();
			break;
			case 2:cout<<"LISTADO DE PACIENTES\n";
			listado();
			break;
			case 3:cout<<"CONSULTA INFORMACION DE PACIENTES\n";
			consulta();
			break;
			case 4:cout<<"MOSTRAR DISPONIBILIDAD DE CAMA\n";
			mostrar();
			break;
			case 5:cout<<"FACTURA DE PACIENTE\n";
			pagar();
			break;
			case 6:cout<<"RETIRO DE PACIENTE\n";
			retiroP();
			break;
			case 7:cout<<"TRANSLADAR PACIENTE\n";
			transladarP();
			break;
			case 8:cout<<"\t\nSALIENDO\n";
			return 0;
			break;
			default:cout<<"\tERROR DE OPCION\n\n";
			break;
		}
		cout<<"Desea regresar al menu\n";
		cout<<"1.SI/2.NO\n";
		cin>>op1;
	}while (op1==1);
	getch();
	return 0;
}
 
void registro(){
	int op,op1,op3;
	cout<<"Que tipo de documento tiene?\n";
	cout<<"Ingrese el nombre del tipo de documento que tiene\n";
	cin.getline(paciente[i].tipoD,35);
	cin.getline(paciente[i].tipoD,35);
	disponibilidad1();
	cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
	cin>>fil;
	cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
	cin>>colum;
	if(fil>8||colum>8||fil<1||colum<1){
		cout<<"\n\tLo sentimos,la fila o la columna son incorretos\n";
		return void (0);
	}
	if(cama[0][fil-1][colum-1].disp==1){
		cout<<"\n\t Lo sentimos este espacio ya se ecuetra ocupado\n";
		return void (0);
	}
	if(cama[0][fil-1][colum-1].disp==0){
		cout<<"\n\tSe ecuetra disponile\n";
	}
	cama[0][fil-1][colum-1].disp=1;
	cout<<"Ingrese su numero de documento\n";
	cin>>paciente[i].documento;
	cout<<"Ingrese su nombre completo\n";
	cin.getline(paciente[i].nombre,35);
	cin.getline(paciente[i].nombre,35);
	cout<<"Ingrese su fecha de nacimiento\n";
	cin>>paciente[i].fechaN;
	cout<<"Ingrese su direccion\n";
	cin>>paciente[i].direccion;
	cout<<"Ingrese su numero de telefono\n";
	cin>>paciente[i].telefono;
	cout<<"tiene EPS\n";
	cout<<"1.Si/2.No\n";
	cin>>paciente[i].Eps1;
	if(paciente[i].Eps1==1){
		cout<<"Que EPS pertenece\n";
		cin>>paciente[i].eps;
		cout<<"Que  tipo de Regimen es:\n";
		cout<<"1.Subsidio/2.Contributivo\n";
		cin>>paciente[i].Regimen;
		if(paciente[i].Regimen==2){
			paciente[i].Regimen1="contributivo";
			cout<<"En que nivel se encuentra\n";
			cout<<"1.Nivel 1\n";
			cout<<"2.Nivel 2\n";
			cout<<"3.Nivel 3\n";
			cin>>paciente[i].nivel1;
		}
 
	}
	if(paciente[i].Regimen==1){
		paciente[i].Regimen1="Subsidio";
	}
	cout<<"Nivel de Urgencia del paciente entre 1 a 4\n";
	cout<<"Recuerde que 1 es mas urgente y 4 es menos urgente\n";
	cin>>paciente[i].nivel;
	cout<<"Condicion clinica del paciente(Nombre Enfermedad O Dolencia)\n";
	cin.getline(paciente[i].condicionC,50);
	cin.getline(paciente[i].condicionC,50);
	paciente[i].piso=1;
	cout<<"\n\t EL PACIENTE SE A REGISTRADO CORRECTAMENTE\n\n";
	cama[0][fil][colum].fila=fil;
	cama[0][fil][colum].columna=colum;
	i++;
}
void listado(){
	int j,m;
	cout<<"Paciente que han ingresado\n";
		for(j=0;j<i;j++){
				cout<<"-----------------------------------------------------------";
				cout<<"\n\tRegistro # "<<j<<"\n\n";
				cout<<"NOMBRE....: "<<paciente[j].nombre<<"\n";
				cout<<"TIPO DE DOCUMENTO....: "<<paciente[j].tipoD<<"\n";
				cout<<"NUMER DE DOCUMENTO....: "<<paciente[j].documento<<"\n";
				cout<<"FACHA DE NACIMIENTO....: "<<paciente[j].fechaN<<"\n";
				cout<<"DIRECCION....: "<<paciente[j].direccion<<"\n";
				cout<<"TELEFONO....: "<<paciente[j].telefono<<"\n";
				cout<<"EPS....: "<<paciente[j].eps<<"\n";
				cout<<"TIPO DE REGIMEN....: "<<paciente[j].Regimen1<<"\n";
				cout<<"NIVEL DE URGENCIA....: "<<paciente[j].nivel<<"\n";
				cout<<"CONDICION CLINICA....: "<<paciente[j].condicionC<<"\n";
				cout<<"PISO ASIGNADO....: "<<paciente[j].piso<<"\n";
				cout<<"CAMA ASIGNADA....: "<<cama[0][fil][colum].fila<<" x "<<cama[0][fil][colum].columna<<"\n";
				cout<<"PISO TRANSLADADO....: "<<paciente[j].pisoT<<"\n";
				cout<<"CAMA TRANSLADADA....: "<<cama[j][fil][colum].filaT<<" x "<<cama[j][fil][colum].columnaT<<"\n";
				cout<<"ESTADO DEL PACIENTE....: "<<paciente[j].estado<<"\n";
				cout<<"----------------------------------------------------------------------\n";
		}
 
}
void consulta(){
	string doc;
	int j;
	cout<<"Ingrese el numero de documento del paciente\n";
	cin>>doc;
	for (j=0;j<i;j++){
		if(doc==paciente[j].documento){
			cout<<"-----------------------------------------------------------";
			cout<<"Registro # "<<j<<"\n";
			cout<<"NOMBRE: "<<paciente[j].nombre<<"\n";
			cout<<"TIPO DE DOCUMENTO: "<<paciente[j].tipoD<<"\n";
			cout<<"NUMER DE DOCUMENTO: "<<paciente[j].documento<<"\n";
			cout<<"FACHA DE NACIMIENTO: "<<paciente[j].fechaN<<"\n";
			cout<<"DIRECCION: "<<paciente[j].direccion<<"\n";
			cout<<"TELEFONO: "<<paciente[j].telefono<<"\n";
			cout<<"EPS: "<<paciente[j].eps<<"\n";
			cout<<"TIPO DE REGIMEN: "<<paciente[j].Regimen1<<"\n";
			cout<<"NIVEL DE URGENCIA: "<<paciente[j].nivel<<"\n";
			cout<<"CONDICION CLINICA: "<<paciente[j].condicionC<<"\n";
			cout<<"PISO ASIGNADO: "<<paciente[j].piso<<"\n";
			cout<<"CAMA ASIGNADA: "<<paciente[j].fila<<" x "<<paciente[j].columna<<"\n";
			cout<<"PISO TRANSLADADO: "<<paciente[j].pisoT<<"\n";
			cout<<"CAMA TRANSLADADA: "<<paciente[j].filaT<<" x "<<paciente[j].columnaT<<"\n";
			cout<<"ESTADO DEL PACIENTE: "<<paciente[j].estado<<"\n";
			cout<<"-----------------------------------------------------------\n";
		}
	}
 
}
void mostrar(){
	int op;
	cout<<"Escoja el piso en el que de sea ver la disponibiladad de camas\n";
	cout<<"1.Piso 1\n";
	cout<<"2.Piso 2\n";
	cout<<"3.Piso 3\n";
	cout<<"4.Piso 4\n";
	cin>>op;
	if(op==1){
		disponibilidad1();
	}
	if(op==2){
		disponibilidad2();
	}
	if(op==3){
		disponibilidad3();
	}
	if(op==4){
		disponibilidad4();
	}
	if(op>=5){
		cout<<"\n\tERROR DE OPCION\n\n";
	}
 
}
void pagar(){
	float valor1=4000,valor3;
	float estadia=150000;
	float procedimiento=567000;
	int op,op1,j;
	string doc;
	cout<<"Ingrese el numero de documento del paciente\n";
	cin>>doc;
	for(j=0;j<i;j++){
		if(doc==paciente[j].documento){
			cout<<"El paciente tiene seguro\n";
			cout<<"1.Si/2.No\n";
			cin>>op;
			if (op==1){
				paga=0;
				valor3=procedimiento+estadia+valor1;
				paga=valor3*1/100;
				cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
			}
			else if (op==2){
				if(paciente[j].Eps1==1){
					if(paciente[j].Regimen==1){
						paga=0;
						valor3=procedimiento+estadia+valor1;
						paga=valor3*5/100;
						cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
					}
					if(paciente[i].Regimen==2){
						if (paciente[j].nivel1==1){
							paga=0;
							valor3=procedimiento+estadia+valor1;
							paga=valor3*25/100;
							cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
						}
						if (paciente[j].nivel1==2){
							paga=0;
							valor3=procedimiento+estadia+valor1;
							paga=valor3*40/100;
							cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
						}
						if (paciente[j].nivel1==3){
							paga=0;
							valor3=procedimiento+estadia+valor1;
							paga=valor3*55/100;
							cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
						}
					}
 
				}
				else{
					cout<<"\n\tEl paciente no tiene EPS\n\n";
					paga=0;
					paga=procedimiento+estadia+valor1;
					cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
				}
			}
 
		}
		else{
			cout<<"\n\t\tEl paciente no existe en la base de datos \n\n";
		}
	}
}
 
void disponibilidad1(){
	int n,j;
	cout<<"   (1)(2)(3)(4)(5)(6)(7)(8)\n";
	for (n=0;n<8;n++){
		cout<<"("<<n+1<<")";
		for (j=0;j<8;j++){
			cout<<"["<<cama[0][j][n].disp<<"]";
		}
		cout<<"\n";
	}
}
void disponibilidad2(){
	int n,j;
	cout<<"   (1)(2)(3)(4)(5)(6)(7)(8)\n";
	for (n=0;n<8;n++){
		cout<<"("<<n+1<<")";
		for (j=0;j<8;j++){
				cout<<"["<<cama[1][j][n].disp<<"]";
		}
		cout<<"\n";
	}
}
void disponibilidad3(){
	int n,j;
	cout<<"   (1)(2)(3)(4)(5)(6)(7)(8)\n";
	for (n=0;n<8;n++){
		cout<<"("<<n+1<<")";
		for (j=0;j<8;j++){
				cout<<"["<<cama[2][j][n].disp<<"]";
		}
		cout<<"\n";
	}
}
void disponibilidad4(){
	int n,j;
	cout<<"   (1)(2)(3)(4)(5)(6)(7)(8)\n";
	for (n=0;n<8;n++){
		cout<<"("<<n+1<<")";
		for (j=0;j<8;j++){
				cout<<"["<<cama[3][j][n].disp<<"]";
		}
		cout<<"\n";
	}
}
 void retiroP(){
	int op;
	cout<<"En que piso se encuentra el paciente\n";
	cout<<"1.piso 1\n";
	cout<<"2.piso 2\n";
	cout<<"3.piso 3\n";
	cout<<"4.piso 5\n";
	cin>>op;
	cout<<"Ingrese la fila de la cama en la que se encuentra el paciente\n";
	cin>>fil;
	cout<<"Ingrese la columna de la cama en la que se encuentra el paciente\n";
	cin>>colum;
	cama[0][fil][colum].fila=fil;
	cama[0][fil][colum].columna=colum;
	if(op==1){
		if(cama[0][fil-1][colum-1].disp==1){
			cama[0][fil-1][colum-1].disp=0;
			pagar();
			cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
			cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
		}
	}
	if(op==2){
		if(cama[1][fil-1][colum-1].disp==1){
			cama[1][fil-1][colum-1].disp=0;
			pagar();
			cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
			cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
		}
	}
	if(op==3){
		if(cama[2][fil-1][colum-1].disp==1){
			cama[2][fil-1][colum-1].disp=0;
			pagar();
			cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
			cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
		}
	}
	if(op==4){
		if(cama[3][fil-1][colum-1].disp==1){
			cama[3][fil-1][colum-1].disp=0;
			pagar();
			cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
			cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
		}
	}
	if(op>=5){
		cout<<"\n\tERROR DE OPCION\n\n";
	}
}
 
void transladarP(){
	int j,op;
	cout<<"Ingrese el numero de documento del paciente\n";
	cin>>doc;
	for(j=0;j<i;j++){
		if (doc==paciente[j].documento){
			cout<<"En que estado en encuentra el paciente\n";
			cout<<"1. Normal\n";
			cout<<"2. Medio\n";
			cout<<"3. Alto\n";
			cin>>op;
			if(op==1){
				paciente[j].estado="Normal";
				cout<<"PISO 2\n";
				paciente[j].pisoT=2;
				disponibilidad2();
				cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
				cin>>paciente[j].filaT;
				cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
				cin>>paciente[j].columnaT;
				if(cama[1][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
					//desocupar fila y columna anterior
					cama[0][fil][colum].disp=0;
					//Guardar fila y columna nueva
					cama[1][fil][colum].fila=paciente[j].filaT;
					cama[1][fil][colum].columna=paciente[j].columnaT;
					//Marcar como ocupado
					cama[1][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
				}
				else{
					cout<<"El cama se encuentra ocupada";
				}
			}
			if(op==2){
				paciente[j].estado="Medio";
				cout<<"PISO 3\n";
				paciente[j].pisoT=3;
				disponibilidad3();
				cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
				cin>>paciente[j].filaT;
				cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
				cin>>paciente[j].columnaT;
				if(cama[2][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
					//desocupar fila y columna anterior
					cama[0][fil][colum].disp=0;
					//Guardar fila y columna nueva
					cama[2][fil][colum].fila=paciente[j].filaT;
					cama[2][fil][colum].columna=paciente[j].columnaT;
					//Marcar como ocupado
					cama[2][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
				}
				else{
					cout<<"El cama se encuentra ocupada";
				}
			}
			if(op==3){
				paciente[j].estado="Alto";
				cout<<"PISO 4\n";
				paciente[j].pisoT=4;
				disponibilidad4();
				cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
				cin>>paciente[j].filaT;
				cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
				cin>>paciente[j].columnaT;
				if(cama[3][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
					//desocupar fila y columna anterior
					cama[0][fil][colum].disp=0;
					//Guardar fila y columna nueva
					cama[3][fil][colum].fila=paciente[j].filaT;
					cama[3][fil][colum].columna=paciente[j].columnaT;
					//Marcar como ocupado
					cama[3][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
				}
				else{
					cout<<"El cama se encuentra ocupada";
				}
			}
		}
	}
}
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