renomber
Registrado: 08 Sep 2007 Mensajes: 1
| Publicado: 08/09/2007 10:24 am | | | Título: Ayuda en C++ Builder 6 |
| Hola, ante todo disculpen si incumplo con alguna regla es que soy nuevo y no sé donde debería estar escrito esto.
Estoy haciendo un proyecto de la escuela en c++ builder, el programa me compila bien, abre bien, entran los datos( o eso creo) y cuando le doy a mostrar un dato, me sale del programa y me da un debugger exception notification. Ya probé insertándole return 0 y nada. Gracias de Antemano.
aquí les escribo el .cpp donde me marca el problema:
//------------------------------ //--Implementación de TEquipo -- //------------------------------ TEquipo::TEquipo(String aCodigo, float aPrecio) { fCodigo=aCodigo; fPrecio=aPrecio; }
String TEquipo::Codigo() { return fCodigo; } void TEquipo::Codigo(String aCodigo) { fCodigo=aCodigo; } float TEquipo::Precio() { return fPrecio; //aqui me señala el problema } void TEquipo::Precio(float aPrecio) { fPrecio=aPrecio; }
//------------------------------ //-- Implementación de Tienda -- //------------------------------ TTienda::TTienda(int aCantEquipos) { fCantEquipos = aCantEquipos; }
void TTienda::CantEquipos(int aCantidad) { fCantEquipos = aCantidad; }
int TTienda::CantEquipos() { return fCantEquipos; }
//Escribir todos los elementos de la matriz. void TTienda::SetVentas(float aVentas[Max_Filas][Max_Columnas]) { fVentas->SetArreglo(aVentas); }
//Recoger todos los elementos de la matriz en la matriz aVentas. void TTienda::GetVentas(float aVentas[Max_Filas][Max_Columnas]) { fVentas->GetArreglo(aVentas); }
//Escribir una valor en una posición de la matriz (Escribir un elemento). void TTienda::Venta(int fil, int col, float valor) { fVentas->SetElemento(fil, col, valor); }
//Recoger el valor almacenado en una posición de la matriz (celda [fil, col]) float TTienda::Venta(int fil, int col) { fVentas->GetElemento(fil, col); return 0; }
//Escribir todos los elementos en el arreglo de punteros a TEquipo. /*void TTienda::SetEquipos(TEquipo* aEquipos[Max_Filas]) { for(int i = 0; i <= fCantEquipos - 1; i++) { fEquipos = aEquipos[i]; } }
//Devolver todos los elementos en el arreglo de punteros a TEquipo. void TTienda::GetEquipos(TEquipo* aEquipos[Max_Filas]) { for(int i = 0; i<=fCantEquipos - 1; i++) { fEquipos[i] = aEquipos[i]; } }
//Escribir un elemento del arreglo (sería un puntero a la clase TEquipo) void TTienda::Equipo(int index, TEquipo* aEquipos) { fEquipos[index] = aEquipos; }
//Devolver un puntero a un elemento de la clase TEquipo (elemento del arreglo de equipos). TEquipo* TTienda::Equipo(int index) { return fEquipos[index]; }*/ void TTienda::addCod(String aCodigo) { TEquipo* Temp=new TEquipo(aCodigo); fEquipos[fCantEquipos++]=Temp; }
void TTienda::addPre(float aPrecio) { TEquipo* Temp=new TEquipo(aPrecio); fEquipos[fCantEquipos++]=Temp; }
//Buscar la posición en el arreglo dado el código; int TTienda::BuscaEquipo(String aCodigo) { for(int i = 0; i <= fCantEquipos - 1; i++) { //Se accede al codigo a través del procedimiento que lo devuelve Codigo(); if(fEquipos[i]->Codigo() == aCodigo) { return i; } } return 0; }
float TTienda::VerPrecio(String aCodigo) { int pos= BuscaEquipo(aCodigo); if(pos>=0)return fEquipos[pos]->Precio(); else return pos; } //Version 1//Devolver el valor de las ventas de un equipo dado en la semana. /*float TTienda::PromedioSemanalVentas(int pos) { return fVentas.Promedio(i, 0, i, fVentas.CantColumnas()); }*/
//Version 2//Devolver el valor de las ventas de un equipo dado en la semana. float TTienda::PromedioSemanalVentas (String aCodigo) { int filaEquipo = BuscaEquipo(aCodigo); return fVentas->Promedio(filaEquipo, 0, filaEquipo, fVentas->GetCantColumna()); }
//Devolver los códigos de los 3 equipos de mayor venta en la semana. /*void TTienda::MayoresVentasSemanal(String equipos[3]) { //Arreglo temporal para almacenar el total de ventas semanales de los equipos. float temp[CantEquipos]; int pos[CantEquipos]; //Arreglo temporal para las posiciones. int posTemp; //variable para almacenar de manera temporal una posición. float valorTemp; //variable para almacenar de manera temporal una venta. //Ciclo para obtener las ventas totales por equipo y guardarlas en el arreglo temp[]. for(int i = 0; i <= fCantEquipos - 1; i++) { temp[i] = fVentas.Suma(i, 0, i, fVentas.CantColumnas); pos[i] = i; //Inicialmente quedaría [0,1,2,3,4,5…CantEquipos] } //Organizar en otro arreglo las posiciones de los elementos. for (int j= 1; j <= CantEquipos - 1; j++) { for(int i = 0; i <= CantEquipos; i++) { if (temp[i] <= temp[i+1]) { //Cambio los valores de posición. valorTemp = temp[i]; temp[i] = temp[i+1]; temp[i+1] = valorTemp; //Intercambio las posiciones de los equipos cuyas ventas ya cambié anteriormente. posTemp = pos[i]; pos[i] = pos[i+1]; pos[i+1] = pos[i+1]; } } }
//Por último se toman los tres primeros códigos correspondientes a los equipos de mayores ventas. for(int i = 0; i <= 3 -1; i++) { int k = pos[i]; equipos[i] = fEquipos[k]->Codigo(); } }*/
|
|