|
1. Còpia encriptada
A partir dels programes de la
pràctica 4 i de la pràctica
3 del mòdul 6 feu un programa que permeti encriptar i desencriptar
arxius amb el mètode de Juli Cèsar. El programa ha de ser molt semblant al
de la pràctica 4, és a dir, s'ha de passar a la funció main dos arguments
que corresponen al nom de l'arxiu que es vol encriptar i al nom de l'arxiu
encriptat. Abans de fer l'encriptació, el programa ha de demanar el codi.
Aquest codi serà un número entre 0 i 25. Per tal de desencriptar un arxiu
només s'ha de tornar a cridar al mateix programa amb un codi igual a
26-codi anterior.
Anomeneu l'arxiu
font: m8e1.cpp.
|
|
2.
Emmagatzematge de vectors en disc
Feu una aplicació on es declari un vector de
tipus double de 100 elements:
L'aplicació ens ha de
permetre introduir aquests números per teclat fins a un màxim de 100. La
introducció d'un -1 ha de servir per finalitzar la introducció
de dades. El número -1 no s'ha de guardar. Una vegada
introduïts tots aquests números, s'han de guardar en disc en una sola
operació amb la funció fwrite(). El nombre de l'arxiu on es
guardaran tots aquests números també s'introduirà per teclat abans
d'introduir qualsevol dada.
Feu també la versió que
permet recuperar les dades del disc i imprimir-les a la pantalla.
Anomeneu l'arxiu
font: m8e2.cpp.
|
|
3.
Dividir un arxiu en trossos de 1.450.000 octets
L'aplicació de la pràctica
6 només ens permet solucionar el problema a mitges. Feu una aplicació
que faci les parts que siguin necessàries per tal que cadascuna de les
parts càpiga en un disc de 3 1/4 polzades. Per exemple, si l'arxiu
original té una mida de 5.356.320 d'octets, s'han de fer 4 parts, tres de
1.450.000 i una de 1.006.320 octets. Feu que el nom de l'arxiu original
s'introdueixi com un argument de la funció main(). El noms de les
parts serà arxiu1.dat, arxiu2.dat,....
Anomeneu l'arxiu
font: m8e3.cpp.
|
|
4.
Guardar i recuperar registres de la base de dades de pel·lícules
Feu un programa que permeti
guardar i recuperar en disc les dades de la base de dades del exercici
1 del mòdul anterior. Seguiu el mateix procés de la pràctica
8. Recordarem que els registres són de l'estructura definida a
continuació:
struct {
char titol[50];
char director[50];
char protagonista[50];
int duracio;
} ;
Podeu optar per fer dos
programes o un de sol amb un menú que permeti triar l'opció guardar en
disc o recuperar del disc. A
l'opció guardar s'ha de comprovar si el camp titol introduït per
teclat és la cadena buida. En cas afirmatiu, finalitza l'entrada de
dades. A l'opció recuperar ha permetre treure totes les dades de tots els
registres a la pantalla.
Anomeneu l'arxiu
font: m8e4.cpp.
|
|
Problemes
complementaris
Aquests exercicis serveixen per completar
aquest mòdul però suposen una ampliació voluntària. No és necessari
lliurar aquests exercicis. No obstant això, és convenient fer-los i
lliurar-los.
|
|
5.
Miniagenda telefònica
Podeu perfeccionar la
miniagenda telefònica de la pràctica
1 del mòdul 7 per tal de permetre que els registres es guardin en un
arxiu. Podeu triar el nivell de perfeccionament que volgueu fent servir
alguna o totes de les següent indicacions:
-
L'opció de nova_entrada
ha d'obrir l'arxiu en mode d'afegir dades ("a+"). Aquest mode
farà que es creï l'arxiu si no existeix prèviament.
-
En qualsevol moment es
pot calcular el nombre de registres emmagatzemats en disc amb la mida de
l'arxiu dividit entre la mida de l'estructura.
-
L'opció d'esborrar_entrada
ha de permetre triar un número d'entrada. Com que les entrades són
correlatives serà fàcil trobar la posició correcta del registre que
volem eliminar. L'esborrat total s'aconsegueix copiant l'arxiu en un
altre arxiu deixant de copiar els octets corresponents al registre que
volem copiar. Després es borra l'arxiu original i es canvia el nom del
segon arxiu.
Normalment, en les bases de
dades reals, no s'esborren definitivament els registres, només es marquen
com a esborrats i totes les funcions de cerca i presentació de registres
ignora als que estan marcats. Només una segona confirmació elimina
definitivament els registres de la base de dades.
-
Incorporar també opcions
de cerca, de moment cerca seqüencial, encara que es pot crear opcions
d'ordenar els registres per un camp determinat i que hi hagi l'opció de
cerques binàries per aquest camp.
Tot això representa moltes
millores possibles a la miniagenda telefònica. Feu les que pugueu.
Incorporar totes aquestes millores podria representar un dels projectes de
final de curs.
Anomeneu l'arxiu
font: m8e5.cpp.
|
|
|