No quiero abusar pero si alguien me corrigiera este otro ejercicio me haria un gran favor. Me tengo que examinar y voy pilladisimo de tiempo, muchas garcias.
El codigo es el siguiente
Program gestion_biblioteca;
const
tamcoleccion=10;
type
tbiblioteca=record
titulo:string;
autor:string;
tema:string;
precio:integer;
nombre:string;
correo_electronico:string;
fecha:string;
end;
tcoleccion=array[1..tamcoleccion] of tbiblioteca;
tfichero=file of tbiblioteca;
var
coleccion1:tcoleccion;
libros:string;
opcion:integer;
procedure lee_biblioteca(var biblioteca:tcoleccion;var tam:integer);
begin
inc(tam);
if (tam>tamcoleccion) then
begin
writeln('Ha llegado al limite de almacenamiento.');
end
else
begin
writeln('Introduzca titulo: ');
readln(biblioteca [tam].titulo);
writeln('Introduzca autor: ');
readln(biblioteca [tam].autor);
writeln('Introduzca tema: ');
readln(biblioteca [tam].tema);
writeln('Introduzca precio: ');
readln(biblioteca [tam].precio);
biblioteca[tam].nombre:=";
biblioteca[tam].correo_electronico:=";
biblioteca[tam].fecha:=;
end;
end;
procedure prestar(var biblioteca:tbiblioteca);
begin
writeln('Libro prestado:');
writeln('Titulo:',biblioteca.titulo);
writeln('Autor:',biblioteca.autor);
writeln('Tema:',biblioteca.tema);
writeln('Precio:',biblioteca.precio);
write('Nombre de la persona: ');
readln(biblioteca.nombre);
write('correo electronico de la persona: ');
readln(biblioteca.correo_electronico);
write('Fecha: ');
realn(biblioteca.fecha);
end;
procedure modificar_libro(var biblioteca:tbiblioteca);
begin
writeln('Valores actuales');
writeln();
writeln('Titulo:',biblioteca.titulo);
writeln('Autor:',biblioteca.autor);
writeln('Tema:',biblioteca.tema);
writeln('Precio:',biblioteca.precio);
writeln('Nombre de la persona:',biblioteca.nombre);
writeln('Correo electronico de la persona:',biblioteca.correo_electronico);
writeln('Fecha del prestamo:',biblioteca.fecha);
writeln('-----------');
writeln();
writeln('Nuevos valores');
writeln();
writeln('Introduzca titulo: ');
readln(biblioteca.titulo);
writeln('Introduzca autor: ');
readln(biblioteca.autor);
writeln('Introduzca tema: ');
readln(biblioteca.tema);
writeln('Introduzca precio: ');
readln(biblioteca.precio);
writeln('Introduzca nombre de la persona:');
readln(biblioteca.nombre);
writeln('Introduca correo electronico de la persona:');
readln(biblioteca.correo_electronico);
writeln('Introduzca la fecha del prestamo:');
readln(biblioteca.fecha);
end;
procedure imprime_biblioteca(var biblioteca:tbiblioteca);
riteln('Titulo:',biblioteca.titulo);
writeln('Autor:',biblioteca.autor);
writeln('Tema:',biblioteca.tema);
writeln('Precio:',biblioteca.precio);
if(biblioteca.nombre<>") then
begin
writeln('Nombre de la persona:',biblioteca.nombre);
writeln('Correo electronico de la persona:',biblioteca.correo_electronico);
writeln('Fecha del prestamo:',biblioteca.fecha);
end;
writeln('-----------');
end;
procedure listado(var coleccion:tcoleccion;tam:integer;prestados:boolean);
var
i:integer;
begin
for i:=1 to tam do
if(prestados) then
if(coleccion.nombre<>") then
imprime_biblioteca(coleccion)
else
else imprime_biblioteca(coleccion)
end;
procedure estadistica(coleccion:tcolecion;tam:integer);
var
i:integer;
max,min,total:real;
begin
max:=coleccion[1].precio;
min:=max;
total:=0;
for i:=1 to tam do
begin
if (coleccion.precio>max) then max:=coleccion.precio;
if (coleccion.precio<min) then min:=coleccion.precio;
total:= total+coleccon.precio;
end;
writeln('Valores estadisticos:');
write('El precio maximo es de: ',max:5:2);
write('El precio minimo es de: ',min:5:2);
write('El valor medio es de: ',(total/tam):5:2);
write('El valor total de la coleccion es de: ',total:5:2);
end;
procedure lee_coleccion(var coleccion:tcoleccon;tam:integer);
var
i:integer;
begin
for i:=1 to 3 do
lee_biblioteca(coleccion);
end;
prcedure imprime_coleccion(var coleccion:tcoleccion;tam:integer);
var
i:integer;
begin
for i:=1to 3 do
imprime_biblioteca(coleccion);
end;
procedure lee_fichero(libros:string;coleccion:tcolecion;tam:integer);
var
i:integer;
fichero:tfichero;
begin
i:=0;
assign(fichero,'libros.txt');
reset(fichero);
while (not(eof(fichero))and (i<tam)) do
begin
i:=i+1;
read(fichero,coleccion1);
end;
close(fichero);
end;
procedure graba_fichero(libros:string;coleccion:tcoleccion;tam:integer);
var
i:integer;
fichero:tfichero;
begin
assing(fichero,'libros.txt');
rewrite(fichero);
for i:=1 to tam do
write(fichero,coleccion1);
close(fichero);
end;
function menu: integer;
var
opc:integer;
begin
repeat
writeln('Centro de control de prestamos');
writeln('------------------------------');
writeln();
writeln('1.Lectura de datos por el teclado y guardar la tabla en un fichero');
writeln('2.Dar de alta un prestamo y guardar la tabla en un fichero');
writeln('3.Dar de baja un prestamo y guardar la tabla en un fichero');
writeln('4.Introducir un nuevo prestamo y guardar la tabla en un fichero');
writeln('5.Modificar datos de un prestamo y guardar la tabla en un fiechero');
writeln('6.Guardar en un fichero);
writeln('7.Presentacion de los datos de la talba leida del fichero');
writeln('8.Salir del programa');
readln(opc);
until(((opc>=1)and(opc<=7))or(opc=8));
menu:=opc;
end;
begin
repeat
opc:=menu;
case opc of
1: begin
writeln('> Datos de la coleccion de libros');
lee_coleccion(coleccion1,tamcoleccion);
write('Introduzca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,tamcoleccion);
end;
2: begin
writeln('>> Prestamo a dar de alta <<');
writeln('Introduzca titulo: ');
readln(biblioteca.titulo);
writeln('Introduzca autor: ');
readln(biblioteca.autor);
writeln('Introduzca tema: ');
readln(biblioteca.tema);
writeln('Introduzca precio: ');
readln(biblioteca.precio);
writeln('Introduzca nombre de la persona:');
readln(biblioteca.nombre);
writeln('Introduca correo electronico de la persona:');
readln(biblioteca.correo_electronico);
writeln('Introduzca la fecha del prestamo:');
readln(biblioteca.fecha);
write('Introduzca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,tamcoleccion);
end;
3: begin
erase(
write('introduzca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,tamcoleccion);
end;
7: begin
lee_fichero('libros.txt',coleccion1,tamcoleccion);
writeln('> Datos de la coleccion de libros');
imprime_coleccion(coleccion1,tamcoleccion);
end;
end;
until (opc=8);
end.