Programación General => C/C++ => Mensaje iniciado por: caralarga en Viernes 4 de Junio de 2004, 15:28
Título: Helpme!!!!! Con Archivos
Publicado por: caralarga en Viernes 4 de Junio de 2004, 15:28
Hola a todos, desede ya les digo que soy bastante newbie en programación. Entonces quería pedirles que me tiren una mano, o que me orienten un poco nomás con lo sig.
Tengo que usar c/c++
El problema es este
**********************************************
Leer el archivo datosproy2.txt, que contiene informacion sobre personas. Los primeros 20 caracteres corresponde al nombre, los siguientes 8, es decir la posicion 21 a la 28, representean su numero de documento, y los restantes 10, de la posicion 29 a la 38, su fecha de nacimiento.
Ud. debera ordenar la informacion de las personas bajo los 3 campos, es decir, ordenadas por nombre, fecha de nacimiento y numero de documento. Debera poder emitir un listado en archivo de tipo texto, de las personas ordenadas por cualquiera de los 3 criterios a solicitud de la respectiva opcion de menu, con el nombre "pernom.txt", "perdoc.txt" y "pernac.txt", respectivamente para cada criterio. Ademas debera poder hacer una busqueda de alguna de ellas por cualquiera de los 3 criterios a partir de un dato a buscar que se lea desde teclado, y mostrar por pantalla todos su datos de la persona si es hallada o informar su inexistencia si fracasa la busqueda.
Podra utilizar la estructura de datos que crea mas conveniente para el soporte de la informacion (arreglo, lista, arbol) y cualquier algoritmo de ordenamiento. Tenga en cuenta que un algoritmo de orden O(n2) tendra menor nota que uno de tipo O(nlogn).
Ademas se debera codificar un solo algoritmo de ordenamiento y uno de solo de busqueda, ambos que utilicen 3 funciones comparadoras segun sea el criterio por el cual se hace el ordenamiento / busqueda, y no 3 versiones distintas de ordenamiento y de busqueda, segun sea el tipo de dato.
***********************************************
Bueno, mi problema principar es tomar los datos desde el archivo y guardarlos. Quisiera saber como tomr "los primeros 20 caracteres y guardarlos en un campo, los segundos 8 en otro y así". Ya que por ejemplo Cuando cargo "Juan Manuel" Juan me lo pone en un campo y Manuel en otro. Se que tengo que hacerlo por bloques.
Bueno, lo otro es solo guia. Como lo hago ¿pilas, listas simples, listas dobles, arreglos? arboles no gracias, no tengo ni idea de como trabajar con estos. Se que tiene pocos datos como para hacerlo con una estructura de datos dinámica, pero supongamos que vamos a ampliar la lista. la otra el ordenamiento ¿busrbuja, insercion, seleccion, quicksort? Busqueda ¿lineal,binaria? se que sería mas facil con un arrar, busrbuja y busqueda lieal. Pero quiero hacerlo bine, quisiera usar algun algoritmo de orden O(nlogn) o O(logn).
Les manos lod datos como están en el archivo, para que se den una idea de como estan ordenados.
ACOSTA ANGEL 2321269925/11/1970 ALARCON MONICA 5092530 15/02/1966 ALBA MIRIAM 5618161 02/08/1980 ALCAZAR RAUL 6518480 16/12/1975 ALVAREZ CESAR 6598752 31/01/1956 AMAYA JULIO 7709019 25/07/1988 ANDRADE NESTOR G 7960371 20/02/1960 ARGUELLO CRISTIAN 1077169820/02/1962 ARGUELLO MARCELO 1080583008/08/1960 ATAIDE JORGE 1152745016/12/1954 BAEZA EUGENIO 1155754919/08/1975 BAEZA FEDERICO 1234068508/08/1988 BELTRITTI JORGE 1292365307/04/1988 BERGES ZULEMA 1337367723/09/2001 BIASUTTI MARTIN 1372236515/05/1891 BIONDINI SERGIO 1483770924/01/1950 BIROLO DAVID 1529506306/08/1975 BIZZOCCHI MARIO 1732633512/10/1492 BONARDI BERNARDO 2007851830/03/1969 BOVO FABIAN 2038153928/02/1978 BRAVO CLAUDIO 2043973302/03/1950 BREGA JUAN 2078368519/06/1967 BRINGAS CARLOS 2139812711/10/1992 BRUNO EZEQUIEL 2148209807/03/2002 BUSSO ERICA P 2175509006/11/1943 CABRAL JOSE 2216310512/10/1966 CAMPOS ANIBAL 2256435206/11/1988 CANAPINO RUBEN 2277422115/02/1966 CARLOS ELIAS 2296834913/12/1945 CATIVA MARISA F 2346117425/12/1930 CENTENO VICTOR 2373641914/07/1962 CERIANI ALEJANDRO 2415097024/01/1950 COMPOLO MARCELA 2524799930/03/1975 CONREF FERNANDEZ NOR2527054315/06/1962 COOPER EDUARDO 2563344925/10/1980 COSENZA OMAR 8295489 01/11/1993 DIAZ MANUEL 1301572819/05/1995 DIAZ ROQUE 1314166717/07/1961 EROLES MARIANO 2308938212/02/1990 FACARO FABIAN 2681745214/05/1974 FERRERO LAURA 5218869 19/01/1996 FERREYRA JUAN 5880319 04/07/1982 FIGUEROA LUIS 1102679031/07/1953 FRAYLE MIGUEL E 1240596609/09/1949 FRENCIA CRISTIAN 1301557122/02/1970 GARCIA MARIA 2057567912/09/1984 GARZON JUAN MANUEL 2102331113/02/1981 GIACOMELLI DANTE 2153527030/08/1957 GLESSIC FRANCISCO A 2551218606/05/1982 GONZALEZ RAFAEL 6854315223/04/1970 IRAZOQUI SEBASTIAN 7010455016/01/1968 ISSIDORO ALEJANDRO 7072194414/11/1964
Los datos están bien, así que no se fijen si hay un documento 70.000.000 o algo así.
Bueno, desde ya muchas gracias, ojalá me puedan ayudar ya que es un proyecto que tengo que entregar y no tengo mucha idea.