Ayuda ejercicio pascal. URGENTE

Hola tengo que realizar un ejercicio en pascal par mi bastante complejo, me urge.
Este es el enunciado del ejercicio:
El programa deberá permitir gestionar su biblioteca particular. Si desea, y tras consultarlo con su tutor, podría modificar este programa para gestionar su colección de compactos (CD's), o de discos, o..
El programa deberá almacenar la información de cada libro:
-Titulo
-Autor
-Tema
-Precio
-Prestado:
    --Nombre de la persona a la que ha prestado un libro.
    -- Dirección de correo electrónico
    -- Fecha del préstamo
Las operaciones sobre su biblioteca serán:
   - Dar de alta
   - Dar de baja
   - Introducir datos de un préstamo
   - Modificar datos
   - Presentar listados de su biblioteca:
         -- Listado de todos los libros
         -- Listado de los libros prestados
         -- Listado con precios máximos, mínimos, la media y el valor total de su colección.

Será necesario usar un fichero para almacenar los datos de su colección.
Si me le podrías acer te lo agradecería muchísimo porque yo llevo intentándolo durante 2 semanas y nada. Gracias
Respuesta
1
Tengo un problema y es que estoy muy limitado con el tiempo
Pásame todo lo que hayas hecho, así puedo seguir a partid de ahí.
Todo caso, mandamelo a gabarenas at hotmail dot com
Ok ya te agregare, agrégame tu también. Soy:
[email protected]
Aquí te envío el ejercicio que me has pedido.(La opción 2 de dar de alta no me lo guarda en el archivo). Si me lo podrías acer te lo agradecería mucho, lo tengo que entregar como muy tard el sábado. Las opciones que no están como dar de baja, etc. sk no me salen ni pa adelante ni patras. Gracias
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;
opc: integer;
biblioteca: Tbiblioteca;
Procedure lee_biblioteca(var biblioteca: Tbiblioteca);
begin
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('Introduzca 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);
begin
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('la fecha del prestamo: ', biblioteca.fecha);
writeln('---------------');
end;
Procedure lee_coleccion(var coleccion: Tcoleccion;tam: integer);
var
i: integer;
begin
for i:= 1 to 3 do
lee_biblioteca(coleccion);
end;
Procedure imprime_coleccion(var coleccion: Tcoleccion;tam: integer);
var
i: integer;
begin
for i:= 1 to 3 do
imprime_biblioteca(coleccion);
end;
Procedure lee_fichero (libros: string;coleccion: Tcoleccion;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
assign(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 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 fichero');
writeln(' 6. Guardar en un fichero');
writeln(' 7. Presentacion de los datos de la tabla 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('Introduca 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('Introduzca correo electronico de la persona: ');
readln(biblioteca.correo_electronico);
writeln('Introduzca la fecha del prestamo: ');
readln(biblioteca.fecha);
write('Introduca el nombre del fichero de datos: ');
readln(libros);
graba_fichero('libros.txt',coleccion1,TAMCOLECCION);
end;
3:begin
erase(
write('Introduca 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 coleccon de libros');
imprime_coleccion(coleccion1, TAMCOLECCION);
end;
end;
until (opc=8);
end.
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;
opc: integer;
{ biblioteca: Tbiblioteca; }
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 := '';
{
writeln('Introduzca nombre de la persona: ');
readln(biblioteca[tam].nombre);
writeln('Introduzca correo electronico de la persona: ');
readln(biblioteca[tam].correo_electronico);
writeln('Introduzca la fecha del prestamo: ');
readln(biblioteca[tam].fecha);
}
end;
end;
Procedure prestar(var biblioteca:Tbiblioteca);
Begin
WriteLn('Prestando LIBRO:');
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: ');
readln(biblioteca.fecha);
End;
Procedure ModificarLibro(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('la fecha del prestamo: ', biblioteca.fecha);
writeln('---------------');
writeln();
writeln('Ingrese los 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('Introduzca 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);
begin
writeln('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('la 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: Tcoleccion;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 + coleccion.precio;
End;
WriteLn('Valores estadisticos:');
WriteLn('El mayor valor es de : ' , max:5:2);
WriteLn('El menor valor es de : ' , min:5:2);
WriteLn('El valor medio es de : ' , (total / tam):5:2);
WriteLn('El valor total de la coleccion es de : ' , total:5:2);
End;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas