Debe estar conectado para participar
Buscar en los foros:


 






Uso de Comodín:
*    coincide cualquier número de caracteres
%    coincide exactamente un caracter

Ayuda con C++

No hay Etiquetas
Entrada
Entry Level

Piquinikis

entradas: 69

09:34 18/04/2007

1

Les comento gente que estoy desarrollando un programita para manejar la base de datos de un video club, ni problema suege porque quiero q cada pelicula tenga un codigo de 4 digitos aleatorios, pero q no se repitan. Pense en incorporar una funcion a mi clase q genere dicho codigo y q lo vaya guardando en un archivo de texto y q a la su vez desde ese archivito controle todos los codigos ya utilizados para no repetirlo.
Si alguien pudiese darme una manito o q tengo algun algoritmo q se encargue de esto se lo agradeceria

Esto es por vos Piki !

Midle End Level

elitu

entradas: 167

11:20 18/04/2007

2

porque en ves de generar un codigo aleatorio haces un algoritmo para generar directamente un codigo vos , flaco , sos de la utn de parana , santa fe ?

Extreme Level

Dark-Link

entradas: 2864

11:59 18/04/2007

3
Cita Iniciado por Piquinikis
Ver Mensaje
Les comento gente que estoy desarrollando un programita para manejar la base de datos de un video club, ni problema suege porque quiero q cada pelicula tenga un codigo de 4 digitos aleatorios, pero q no se repitan. Pense en incorporar una funcion a mi clase q genere dicho codigo y q lo vaya guardando en un archivo de texto y q a la su vez desde ese archivito controle todos los codigos ya utilizados para no repetirlo.
Si alguien pudiese darme una manito o q tengo algun algoritmo q se encargue de esto se lo agradeceria

Eso que queres es muy parecido a lo que se llama "hashing" o "dispersion", leete algo de eso. Lo que pedis es muy costoso a nivel algoritmico, no te lo recomiendo.

Asignale numeros secuenciales, y listo . Porque tienen que ser aleatorios?

Entry Level

Piquinikis

entradas: 69

18:40 18/04/2007

4

porque en ves de generar un codigo aleatorio haces un algoritmo para generar directamente un codigo vos , flaco , sos de la utn de parana , santa fe ?

Me parece q es mas practico q sea automatico y aleatorio nose se me puso asi, estudiaba en Oro VErde pero ahora estoy trabajando en Santa Fe y estoy intentando retomar la programacion porque m gusta y ademas quiero retornar al estudio.
Con respecto a la funcion de generar codigos aleatorios se me puso se q es mas faciles otros metodos, ya sean manuales o secuenciales pero lo tome como una meta y si lelgo a conseguir algo se lo paso al algoritmo. Salu2 !!

Esto es por vos Piki !

Extreme Level

Lukas17

Córdoba

entradas: 1028

20:29 18/04/2007

5

Si usas Acess para la la base de datos, podrias usar un id_pelicula diferente para cada una. Para hacerlo hay una opcion en Acess (cuando creas las tablas) que te permite usar un ID q nunca se repite (no me acuerdo exactamnete cual era, pero se q existe porque la utilice). De esta manera le va asignando un ID a cada pelicula a medida q las cargas en la base de datos.

Suerte…

Core 2 Duo E6600 @3.2Ghz + Xigmatek HDT-S1283 // 2x1GB OCZ SLI-Ready Edition 800Mhz Lat. 4-4-4-12 // ATI Shappire HD4870 512MB GDDR5 // Samsung 2253NW // Gigabyte 965P-DS3 // Topower 580W P5-EZ Plugin // Sound Blaster Audigy SE M@D X-Fi Xtreme Audio + Edifier X400 // Cooler Master 690 // A4tech X-750F
Notebook Compaq Presario CQ40-305LA
Moderador

NetZ

Capital Federal

entradas: 8454

21:37 18/04/2007

6

Miren, lo q el pibe propone no es mala idea… generar el codigo es una huevada.. no se si queres q se genera a medida q ingresas una peli al catalogo o como…. el tema es q tenes q trabajar con streams para los archivos, y de paso guardalos en xls para podes agregar las pelis en 2 patadas desde el excel…. si no sabes muy bien avisame te doy una mano por PM.
lo levantas como una estructura con el fread… muy facil
saludos

Entry Level

Piquinikis

entradas: 69

15:34 20/04/2007

7

Muchachos, ya eh utilizado el access y no m gusto ademas mi idea es crear un programa propio sino seria muy facil porque con el exel ya tengo una herramienta mas q suficiente para tenes un control de un videoclub…

Esto es por vos Piki !

Midle End Level

MatiasEzequiel

entradas: 313

17:26 20/04/2007

8

Mira lo unico que se me ocurre es que los codigos generados los guardes en una archivo y el que generas te fijes si ya esta repetido para descartarlo. Lo que tendrias que tener en cuenta es que si tenes muchos codigos va a haber muchos codigos repetidos y se va a "tardar" mas por los multiples acceso al archivo, si no es muy grande lo podrias subir a memoria y hacer los accesos mas rapidos.
Para evitar las colisiones lo que haria es agrandar la cantidad de digitos del codigo si es que pienso guerdar muchas pelis.

Moderador

NetZ

Capital Federal

entradas: 8454

18:44 20/04/2007

9

Che piquinikis, leiste lo q te escribi?
Te estoy diciendo q utilices el excel para guardar los datos y q una persona pueda editarlos de forma mucho mas rapida sin tener q correr el ****ing exe…., por medio de los stream…
Ahora, si queres hacerlo TODO vos ES MUCHO MAS FACIL, creo q si deseas hacer algo bien la interaccion entre programas es algo q le da categoria. Si solo queres correrlo desde tu exe directamente guardalo como un archivo de texto o binario segun preferencia y te lo va a levantar segun la estructura con la cual lo guardes….O SEA, NO PODRIAS ABRIR EL ACHIVO CORRECTAMENTE CON NINGUN OTRO PROGRAMA…. he aqui otra ventaja de hacerlo en planillas compatibles con excel, mira si tu programa falla … el del club se queda en pelotas
saludos
pd: espero tomes el consejo, cualquier cosa pregunta

editado: VAS a tener q trabajar con memoria dinámica para optimizarlo, sino te vas a comer el stack+memos en una patada reservando cosas q no vas a aprovechar. Depende q tan complejo o simple quieras hacer el programa

Entry Level

Piquinikis

entradas: 69

15:06 23/04/2007

10

Bueno muchachos estaba perdido el finde pero volvi con una mala new .. no se q mierda le paso al disco y perdi el codigo fuente, voy a intentar recuperarlo. Cuando tengo el codigo lo subo porque habia logrado generar el codigo sin que se repita pero comparandolo en memoria faltaba guardarlo en un archibo binario habia pensado para q el acceso no sea tan lento aunque seria bueno todo el archivo volcarlo en una tabla dinamica para compararlo cog por cog aunque seria una labor muy ardua solo para compar un codigo. Lo que habia planteado era un codigo de solo 4 digitos y con la funcion random(9999) se iba generando el numero … espero volver a recuperar el programilla sino lo comienzo desde 0! salu2

Esto es por vos Piki !

Entry Level

Piquinikis

entradas: 69

10:52 24/04/2007

11

Aca les dejo un algoritmo q cumple con mis objetivos, hay q pulirlo un poco pero se los dejo para q tiren ideas

#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#include <fstream.h>

//—————————————————————————

main()
{
int codigo, codigo2;
long Tamanio;
fstream file("codigos.dat", ios::binary | ios:: out | ios::in | ios::ate );
Tamanio = file.tellg()/sizeof(long); //calculo la cantidad de codigos almacenados
// en el archivo
salto: //es un salto condicional… si aun lo utilizo ¿ es mala practica ?
codigo = random(9999); // genera un codigo aleatorio de 4 digitos
file.seekg(0L, ios::beg); // m posiciono al unicio del archivo
for( int i=0; i<Tamanio; i++)
{ file.read( reinterpret_cast <char *> (&codigo2), sizeof(long));
if(codigo == codigo2) //comparo los codigos
goto salto; // y salta si son iguales
};
file.write(reinterpret_cast <char *> (&codigo), sizeof(int)); // guardo el codigo
file.seekg(0L, ios::beg);
for( int i=0; i<Tamanio; i++) // muestro por pantalla el archivo completo
{ file.read( reinterpret_cast <char *> (&codigo), sizeof(long));
cout << codigo << "\t";
};
file.close();
getch();
}

Esta programado con Borland C++ 4.0 builder, m parece q este foro no es muy amante de la programacion pero veo q les interesa a muchos asi q estaria bueno q empecemos a subir codigos y compartamos mas info y experiencias.
Les dejo un salu2 a todos !

Esto es por vos Piki !

Midle End Level

elitu

entradas: 167

10:55 24/04/2007

12

jeje , devolve el logo !!! http://c.clubdesarrolladores.com.ar/, y si digamos que se ve como un lugar dedicado a la programación ( a mi parecer ) http://www.clubdeprogramadores.com/d…cfd5c2ae036f81

Midle End Level

MatiasEzequiel

entradas: 313

11:03 24/04/2007

13

TE DOY UN CONSEGO NO TE ACOSTUMBRES A USAR GOTO!!!!!! ES UNA PESIMA PRACTICA, POR FAVOR!!!!!! Y SI EN MAYUSCULA PORQUE TE LO ESTOY GRITANDO!!!

va con onda.

Moderador

NetZ

Capital Federal

entradas: 8454

21:03 24/04/2007

14

Coincido con matias, el usar GOTO es lo peor q podes hacer. Implementa un horroroso uso de memoria… sino pq pensas q windows se cuelga muchas veces¡?
Antes de q digan algo… el windows fue creado sobre C++ y se colgaba por el comando goto XD
saludos

Entry Level

Piquinikis

entradas: 69

20:40 01/05/2007

15

si me imaginaba q GOTO no era buena practica pero nunca m habian dicho las consecuencias
El tema del logo tengo q pagar derechos ??' jeje sory si se lo robe a alguien es solo de adorno !!

Esto es por vos Piki !