Dev - C++ - falla en la opcion 4 del menu, salir

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

falla en la opcion 4 del menu, salir

Publicado por ferney (1 intervención) el 03/10/2019 22:37:16
hola tengo un problema con mi codigo, cada vez que deseo ejecutar la opcion de menu 4, salir, me lanza a digitar datos, que es la opcion 1 y luego a la opcion 2 para poder cerrar el programa.
dejo el codigo si alguien me ayuda por favor.

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
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<fstream>
#include<string.h>
#include<wchar.h>
using namespace std;
void menu();
void escribirPulsacion();
void aniadirPulsacion();
void mostrarPulsaciones();
struct Registro{
	float hora;
	int pulsacion;
};
 
 
int main(){
	setlocale(LC_ALL,"");
	menu();
    escribirPulsacion();
    aniadirPulsacion();
    mostrarPulsaciones();
 
	system("pause");
	return 0;
}
void menu(){
	int opcion;
 
	do{
		fflush(stdin);
		cout<<"\t\tMENÚ"<<endl;
		cout<"Opciones del menú\n";
		cout<<"1. Comenzar a digitar las pulsaciones\n";
		cout<<"2. Añadir pulsaciones\n";
		cout<<"3. Mostrar las pulsaciones\n";
		cout<<"4. Salir \n";
		cout<<"\nDigite una opción del menú: ";
		cin>>opcion;
	    switch(opcion){
			case 1: cout<<"\n\t\tPidiendo los datos del Atleta "<<endl;
			        escribirPulsacion();
			        break;
			case 2: cout<<"Pidiendo los nuevos datos del Atleta "<<endl;
			        aniadirPulsacion();
			        break;
			case 3:	cout<<"\nMostrando los datos del atleta "<<endl;
			        mostrarPulsaciones();
			        break;
			case 4: cout<<"Salir ";
			        break;
			default: cout<<"La opción digitada no existe "<<endl;
			}
	    	system("pause");
		    system("cls");
	}while(opcion != 4);
}
void escribirPulsacion(){
	ofstream archivoB;
	archivoB.open("pulsacion.dat", ios::out | ios::binary);
 
	if(archivoB.fail()){
		cout<<"El archivo no se pudo abrir "<<endl;
		exit(1);
	}
	Registro atleta;
 
	cout<<"\nDigite la hora de las pulsaciones ";
	cin>>atleta.hora;
	cout<<"\nDigite las pulsaciones del atleta ";
	cin>>atleta.pulsacion;
 
	archivoB.write((char *)&atleta,sizeof(Registro));
	archivoB.close();
}
void aniadirPulsacion(){
	ofstream archivoB;
	archivoB.open("pulsacion.dat",ios::app | ios::binary);
 
	if(archivoB.fail()){
		cout<<"El archivo no se pudo abrir"<<endl;
		exit(1);
	}
	Registro atleta;
 
	cout<<"Digite la hora de las nuevas pulsaciones\n ";
	cin>>atleta.hora;
	cout<<"Digite las nuevas pulsaciones del atleta \n";
	cin>>atleta.pulsacion;
 
	archivoB.write((char *)&atleta,sizeof(Registro));
	archivoB.close();
}
void mostrarPulsaciones(){
	ifstream archivoB;
	archivoB.open("pulsacion.dat",ios::in | ios::binary);
	if(archivoB.fail()){
		cout<<"El archivo no se pudo encontrar "<<endl;
		exit(1);
	}
	Registro atleta;
	while(!archivoB.eof()){
	archivoB.read((char *)&atleta,sizeof(Registro));
 
	if(!archivoB.eof()){
	cout<<"Hora de las pulsaciones "<<atleta.hora<<endl;
	cout<<"Pulsaciones del atleta "<<atleta.pulsacion<<endl<<endl;
    	}
	}
	archivoB.close();
}
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 Alfil
Val: 3.414
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

falla en la opcion 4 del menu, salir

Publicado por Alfil (923 intervenciones) el 06/10/2019 12:48:26
Si te fijas en el int main() después de llamar al menú ( es decir, una vez has pulsado 4 para salir), se ejecutan varias funciones, en las cuales se solicita la introducción de datos.

Trata de reescribir el programa y si no logras hacerlo funcionar explícanos lo mejor posible el enunciado y/o propósito del mismo.
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