Dev - C++ - programa.exe dejó de funcionar

   
Vista:

programa.exe dejó de funcionar

Publicado por georgia (3 intervenciones) el 17/05/2016 10:43:21
Hola!! Estoy haciendo un proyecto de c++ que gestione la información de los coches que tiene una empresa, con el que dar de alta y eliminar nuevos coches, etc. Pero me ha surgido un problema y es que, aunque el siguiente código compila sin errores, al ejecutarlo no marcha, pone "programa.exe dejó de funcionar". ¿Alguien podría explicarme por qué? :( Muchisimas gracias de antemano.

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
#include <iostream>
using namespace std;
#include <stdlib.h>
 
struct Fecha
{
	int dia;
	int mes;
	int year;
};
 
 
struct Coches
{
	string identificador;
	char marca[15], modelo [15];
	int plazas;
	float precio;
	Fecha f;
};
 
//Definimos un vector de N coches
 
const int MAX=100000;
typedef Coches V_Coches[MAX];
 
 
Coches IntroducirCoche();
void MostrarCoche(Coches);
void IntroducirVectorCoches(V_Coches);
void MuestraTodosCoches(const V_Coches);
 
int main(void)
{
	V_Coches autos;
	int op;
	int n;
 
	cout << "¿Que quieres hacer? 1-Introducir nuevo coche, 2-Ver coches " << endl;
	cin >> op;
 
	switch (op)
	{
		case (1):
			cout << "Introducimos: ";
			cin >> n ;
			cout << " coches al registro."<<endl;
			IntroducirVectorCoches(autos);
		case (2):
			cout << "Coches introducidos: "<<endl;
			MuestraTodosCoches(autos);
	}
 
system ("pause");
return 0;
}
/******************************
Entrada: 0
Salida: estructura coches llena
Objectivo: Función que pide datos del coche por teclado
******************************/
 
Coches IntroducirCoche ()
{
	Coches nuevocoche;
 
	cout << "Introduzca los datos del coche" << endl;
	cin>> nuevocoche.identificador;
	cin >> nuevocoche.marca ;
	cin >> nuevocoche.modelo ;
	cin>> nuevocoche.plazas >> nuevocoche.precio >> nuevocoche.f.dia >> nuevocoche.f.mes >> nuevocoche.f.year;
 
	return nuevocoche;
}
 
/**********************************************************
Entrada: Estructura coches
Salida: 0
Objectivo: Función que muestra por pantalla  los datos de los coches almacenados
***********************************************************/
 
 
void MuestraCoche (Coches nuevocoche)
{
	cout << nuevocoche.identificador << endl;
	cout << nuevocoche.marca << endl;
	cout << nuevocoche.modelo << endl;
	cout << nuevocoche.plazas << nuevocoche.precio << nuevocoche.f.dia << nuevocoche.f.mes << nuevocoche.f.year << endl;
 
}
 
/**********************************************************
Entrada: 0
Salida: V_Coches (vector de numero de coches)
************************************/
 
 
void IntroducirVectorCoches (V_Coches autos)
{
	int i, n;
 
	cout << "¿Cuántos coches quieres introducir?" << endl;
	cin >> n;
 
	for (i=0; i<n; i++)
		autos[i]= IntroducirCoche();
 
}
/**********************************************************
Entrada: V_Coches
Eixida: 0
Objectivo: Función que pide al usuario que introduzca datos del coche 
***********************************************************/
 
void MuestraTodosCoches (const V_Coches autos)
 
{
	int i, n;
	cout << "¿Cuantos coches quieres que muestre?" << endl;
	cin >> n;
 
	for (i=0; i<n; i++)
	{
		MuestraCoche(autos[i]);
		cout<< endl;
	}
 
}
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

programa.exe dejó de funcionar

Publicado por agustin (310 intervenciones) el 17/05/2016 23:12:15
¿En que parte te da el error? No uses variables globales para ahorrarte problemas, declara la en main y pasala como parámetro por referencia a las funciones. Si ya quieres hacerlo mejor puedes usar memoria dinámica para ir solicitando memoria para cada miembro.
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

programa.exe dejó de funcionar

Publicado por Twins (1 intervención) el 18/05/2016 03:23:40
El error es que tu variable MAX es demasiado grande, comienza con valores pequeños como 2 o 5 para hacer pruebas y cuando veas que tu programa funciona bien entonces podras ampliar su dimensión. saludos.
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

programa.exe dejó de funcionar

Publicado por georgia (3 intervenciones) el 19/05/2016 17:18:57
Gracias, con eso me he aclarado!
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