P11. Trabajo con ficheros binarios

Anuncio
Programación 1
Tema III – Clase de problemas
Diseño de algoritmos que trabajan con ficheros binarios (1)
1
Sintaxis de un fichero binario que almacena una
secuencia de NIF de ciudadanos
<ficheroBinarioNif> ::= <número> { <unNif> } <número> ::= int
<unNif> ::= Nif
El valor de <numero> define el número de NIF almacenados en el
fichero
2
Recordatorio de las funciones visibles del módulo nif que
quizás convenga tener presentes en la resolución de alguno de
los problemas que se van a plantear.
•
•
•
•
•
Nif crearNif (int dni, char letra);
Nif crearNif (int dni);
int dni (Nif unNif);
char letra (Nif unNif);
bool esValido (Nif unNif);
3
Problema 1º Diseñar el código de esta función.
/*
* Pre: [nombre] define el nombre de un fichero binario de NIFs
* y [laLetra] es una letra mayúscula
* Post: Devuelve el número de NIFs almacenados en el fichero
* [nombre] cuya letra sea igual a [laLetra]
*/
int contarNIF (const char nombre[], const char laLetra);
4
Problema 2º Diseñar el código de esta función.
/*
* Pre: [nombre] define el nombre de un fichero binario de NIFs
* que almacena un número no nulo de NIFs
* Post: Devuelve el NIF almacenado en el fichero [nombre] cuyo * número de DNI sea el más bajo
*/
Nif masBajo (const char nombre[]);
5
Problema 3º Diseñar el código de esta función.
/*
* Pre: [nombre] define el nombre de un fichero binario de NIFs
* y [unaLetra] es una letra mayúscula
* Post: Crea un fichero binario de NIFs de nombre [nombreNuevo] * y almacena en él una copia de los NIFs del fichero
* [nombre] cuya letra coincide con el valor de [unaLetra]
*/
void seleccionar (const char nombre[], const char nombreNuevo[],
const char unaLetra);
6
Problema 4º Diseñar el código de esta función.
/*
* Pre: [nombre] define el nombre de un fichero binario de NIFs
* y [cifra] es un entero comprendido entre 0 y 9
* Post: Devuelve true si y solo si el fichero [nombre] almacena * un NIF cuyo número de DNI tiene como cifra menos * significativa [cifra]. En tal caso, asigna a [dato]
* uno de los NIF del fichero [nombre] cuya cifra menos
* significativa sea igual a [cifra]
*/
bool buscar (const char nombre[], const int cifra, Nif& dato);
7
18
Descargar