
Ayuda, programa compila pero no corre C++
Publicado por Matias (5 intervenciones) el 15/02/2015 23:16:52
Hola, buenos días. Estoy con problemas en un programa que estoy haciendo, al parecer compila bien pero cuando ejecuto el programa, se cierra en la parte de selección. Poniendo unos breakpoints, noto que al principio se queda el programa (tipeando cualquiera de las selecciones). Es muy largo para subirlo todo, no pretendo que lo lean, pero quizás tenga algún error que no vea en la primera parte. Acá les dejo el comienzo del programa. Estoy en Windows Vista.
Solo el main y las declaraciones subo, si está todo bien esto voy subiendo de a poco, ya que son 500 líneas.
Muchas gracias por su tiempo.
No sé que puede ser, quizá sea una sobrecarga del procesador, quizá definí mal alguna lista, no sé.
Es un trabajo en el que tengo que crear un fixture a partir de un archivo, de necesitarse más detalles de lo que tengo que hacer los paso sin tardanza.
Espero me puedan ayudar! Gracias de nuevo!
Solo el main y las declaraciones subo, si está todo bien esto voy subiendo de a poco, ya que son 500 líneas.
Muchas gracias por su tiempo.
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
#include <iostream>
#include "torneo.h" //algunas funciones preestablecidas
#include <cstdlib>
#include <math.h>
#include <string.h>
#include <time.h>
#define BUFFER_SIZE 1024
using namespace std;
typedef struct{ //acá entran los datos del archivo
short indice;
char nombre[31];
int paramA;
int paramB;
} Equipo; //para el array que va a tener cada partido
typedef struct{
char equipo[31];
int resultado;
int paramA;
int paramB;
int puntos;
}tipopartido;
typedef struct{ // local y visitante tienen almacenado un array tipopartido por fecha
tipopartido local[99];
tipopartido visitante[99];
}partidosfixture;
typedef struct{ // Para mostrar la tabla de posiciones uso otro array en vez de la lista, es más fácil de ordenar
int puntos;
char nombre[31];
}posiciones;
typedef struct{ //nodo de información de la lista
int fecha;
partidosfixture tabla[99];
bool fuesimulado;
}info;
typedef struct tipofixture{ // la lista del fixture
info infofixture;
tipofixture *siguiente;
}tipofixture;
void GenerarFixture(Equipo vectorequipos[], tipofixture *fixture, int &fechastotales, int &PartidosPorFecha, int &totalequipos);
void VerEquipo(Equipo vectorequipos);
void VerTabla();
void GuardarFixture();
void CargarFixture();
void LlenarVector(Equipo vectorequipos[], int &i);
void crearlista(tipofixture *fixture);
void ponerenlista (tipofixture *fixture, Equipo vectorequipos[], int &local, int &visitante, int i);
void buscarlocal (tipofixture *fixture, Equipo vectorequipos[], int local, int visitante, int i, int &a);
void buscarvisitante(tipofixture *fixture, Equipo vectorequipos[], int visitante, int i, int &a);
void menusimularpartido (tipofixture *fixture, tipofixture *listanueva, int fechastotales, int &PartidosPorFecha, posiciones vectortabla[],int &tamanio);
void comprobarsimulacion (tipofixture *fixture, int fechasimular, int fechastotales, int &PartidosPorFecha, posiciones vectortabla[], tipofixture *listanueva,int &tamanio);
bool recorrerlista(tipofixture *fixture, int fechasimular);
void simularfecha(tipofixture *fixture, tipofixture *listanueva, int fechasimular, int &PartidosPorFecha, posiciones vectortabla[], int &tamanio);
void vaciarlista (tipofixture *listaux);
void MostrarEquipo (tipofixture *fixture,int PartidosPorFecha, int fechastotales);
void Aleatoriafecha (int l, int fechastotales, tipofixture *fixture);
bool FechaEncontrada (int vec[], int fechastotales, int x);
void OrdenarLista(tipofixture *listanueva);
void ReinsertarEnLista (tipofixture *listanueva, tipofixture *ptr);
void MostrarTabla (tipofixture *listanueva, int m, int totalequipos, Equipo vectorequipos[]);
void acumularpuntaje (posiciones vec[],tipofixture *listanueva,int totalequipos);
void ordenarpuntaje(posiciones vec[], int totalequipos);
int main() {
int totalequipos= 0;
posiciones vectortabla[99];
tipofixture *fixture;
tipofixture *listanueva = NULL;
int fechastotales=0;
int v=0;
int a;
int PartidosPorFecha;
Equipo vectorequipos[99];
int tamanio= 0;
while (a!= 7) {
cout<<"FIXTURE 2014"<<endl;
cout<<"Ingrese un número"<<endl;
cout<<"1. Generar Fixture"<<endl;
cout<<"2. Simular Partidos"<<endl;
cout<<"3. Ver Equipo"<<endl;
cout<<"4. Ver Tabla de Posiciones"<<endl;
cout<<"5. Guardar Fixture"<<endl;
cout<<"6. Cargar Fixture"<<endl;
if (v==0){
cout<<"7. Salir"<<endl;
}
cin>>a;
v++;
int localA, localB, visitanteA, visitanteB, golesLocal, golesVisitante;
if(a=1){ //con el switch explotaba, no sé porqué
GenerarFixture(vectorequipos, fixture, fechastotales, PartidosPorFecha,totalequipos);
listanueva = fixture;
OrdenarLista(listanueva);
cout<<"Su fixture se ha generado con éxito"<<endl;
}
else if (a=2){
menusimularpartido (fixture,listanueva, fechastotales,PartidosPorFecha,vectortabla,tamanio);
} else if (a=4){
cout<<"ingrese una fecha, de querer ver la tabla hasta la ultima fecha simulada ingrese 0"<<endl;
int m;
cin>>m;
if(recorrerlista(listanueva,m)){
cout<<"No se simularon partidos hasta esa fecha";
}else if(m=0) { cout<<"No existe una fecha 0!";}
else MostrarTabla (listanueva,m,totalequipos,vectorequipos);
} else if (a=3){
MostrarEquipo(listanueva,PartidosPorFecha,fechastotales);
}else if(a=5){
FILE *archivo = fopen ("equipos.txt", "w");
for(int k=1;k<=totalequipos/2;k++){
int f=0;
fwrite((const void*)& f,sizeof(int)*1,1,archivo);
fwrite((const void*) & listanueva->infofixture.tabla[f].local[f].paramA,sizeof(int)*1,1,archivo);
fwrite((const void*) & listanueva->infofixture.tabla[f].local[f].paramB,sizeof(int)*1,1,archivo);
fwrite(listanueva->infofixture.tabla[f].local[f].equipo,sizeof(char)*31,1,archivo);
fwrite(listanueva->infofixture.tabla[f].visitante[f].equipo,sizeof(char)*31,1,archivo);
f++;
}
cout<<"Guardado con éxito";
fclose(archivo);
} else if (a=6){
vaciarlista(fixture);
vaciarlista(listanueva);
GenerarFixture(vectorequipos,fixture,fechastotales,PartidosPorFecha,totalequipos);
cout<<"Se ha cargado y generado un nuevo fixture!";
};
};
if(a=7)
vaciarlista(fixture);
vaciarlista(listanueva);
}
No sé que puede ser, quizá sea una sobrecarga del procesador, quizá definí mal alguna lista, no sé.
Es un trabajo en el que tengo que crear un fixture a partir de un archivo, de necesitarse más detalles de lo que tengo que hacer los paso sin tardanza.
Espero me puedan ayudar! Gracias de nuevo!
Valora esta pregunta


0