Você está na página 1de 18

Program Sistema_de_biblioteca;

uses crt;
const
QtdMaxAlunos = 50; {Quantidade maxima do contador de Alunos}
QtdMaxLivros = 100; {Quantidade maximado contador de Livros}
QtdMaxLocacoes = 100; {Quantidade maxima do contador de
Locacoes}
QtdMaxLocacao = 3; {Quantidade maxima da locacao}
QtdMaxData
= 10; {Quantidade maxima de caracteres da string
Data}
QtdMaxGenero = 15; {Quantidade maxima de caracteres da string
Genero}
QtdMaxTitulo = 30; {Quantidade maxima de Caracteres da string
Titulo}
QtdMaxNome
= 30;{ Quantidade maxima de Caracteres da string
nome}
QtdMaxCurso = 30;{ Quantidade maxima de Caracteres da string
Curso}
type
RAluno = record {Registro de identificacao dos Alunos}
nome: string[30];
sexo: string[1];
matricula:integer;
curso:string[20];
pendencia:integer;
end;
RLivros=record
titulo: string[30];
autor:string[30];
genero: string[25];
qlvl: integer;
qdisp: integer;
editora:string[20];
ISBN:integer;
end;
RLocacao = record {Registro de identificacao de Locacao}
id: word;
data: string[10];
qtdlocada: integer;
livros: array[1..3] of integer;
matricula_emprest:integer;
q: integer; {Identificador de matricula}
testado: boolean;
o: integer; {Identificador de emprestimos dos leitores}
end;
var
LivCadastro, AluCadastro, LocLivros: integer; {Contadores Globais de
Alunos, Livros e Locacao}
opcao, cond: integer;

Aluno : array[1..50] of RAluno;


livros : array[1..100] of Rlivros;
locacao : array[1..100] of RLocacao;
texto: text;
function TransformaString(st: string):string; {Funcao que retorna uma
string em maiusculo}
var
i: integer;
begin
for i := 1 to length(st) do
st[i] := upcase(st[i]);
TransformaString := st;
end;
function TesteSimNao(st: string):string; {Funcao de teste de escrita de
condicaoo sim ou nao}
var
teste: boolean;
begin
repeat
st := TransformaString(st);
if (st = 'SIM') or (st = 'NAO') then
begin
teste := false;
TesteSimNao := st;
end
else
begin
writeln('Opcao invalida. Digite uma opcao valida');
readln(st);
teste := true;
end;
until (teste = false);
end;
function TesteMF(st: string):string; {Funcao de teste de escrita de
condicao Masculino ou Feminina}
var
teste: boolean;
begin
repeat
st := TransformaString(st);
if (st = 'M') or (st = 'F') then
begin
teste := false;
TesteMF := st;
end
else
begin
writeln('Opcao invaida. Digite uma opcao valida');
readln(st);

teste := true;
end;
until (teste = false);
end;
procedure ValorVazio(st1: string); {Procendimento que exibe uma
mensagem de erro quando na houver valor cadastrado}
begin
Writeln();
Writeln('Voce nao possui ', st1,' cadastrados ainda.');
Writeln('Nao foi possivel realizar a locacao.');
Writeln('Pressione qualquer tecla para retornar ao menu...');
Readkey();
end;
procedure MostrarOpcao(); {Procedimeto que exibe uma lista de opcoes
na tela}
begin
Writeln('Sim');
Writeln('Nao');
Writeln();
Write('====> ');
end;
procedure NenhumCadastro(st: string); {Funcao que imprime a falta de
algum tipo de cadastro passado por parametro}
begin
Writeln('Voce nao possui nenhum ', st, ' cadastrado ainda.');
Writeln('Deseja cadastrar algum ', st,'?');
end;
procedure MostraTitulo(titulo: string);{Procedimento que exibe titulos}
var
i: integer;
begin
clrscr;
for i := 1 to 80 do
write('=');
for i := 1 to trunc((80 - length(titulo))/2) do
write (' ');
writeln(titulo);
for i := 1 to 80 do
write('=');
writeln();
end;
procedure QtdMax(st: string); {Imprime na tela uma mensagem de erro
caso nao se possa cadastrar mais livros e ou Alunos}
Begin
MostraTitulo(concat('ERRO TAMANHO MAXIMO'));
Writeln('Quantidade maxima de ', st,' cadastrados.');
Writeln('Nao foi possivel cadastrar mais ', st);
Writeln('Pressione qualquer tecla para retornar ao menu...');

Readkey ();
clrscr;
end;
function OutroCadastro(st: string):string; {Funcao que permite outro
cadastro, caso a pessoa permita}
var
opcao: string;
begin
MostraTitulo(concat('Deseja cadastrar outro ', st,'?'));
MostrarOpcao();
readln(opcao);
OutroCadastro := TesteSimNao(opcao);
clrscr;
end;
procedure MenuPrincipal(); {Este procedimento exibe o menu principal}
begin
MostraTitulo('MENU BIBLIOTECA');
Writeln('1. Cadastrar Aluno');
Writeln('2. Cadastrar Livros');
Writeln('3. Pedido de emprstimo de livros');
writeln('4. Devolver livros');
Writeln('5. Consulta de pendncia de alunos');
Writeln('6. Consultar ID dos livros para posterior locacao');
Writeln('7. Consultar livros mais alugados');
Writeln('8. Gerar Arquivo Livros Alugados');
Writeln('9. Sair');
Writeln();
end;
procedure CadastroAluno(); {Procedimento responsavel por cadastrar
Alunos}
var
i,j,x,matricula: integer;
S2:CHAR;
au:shortstring;
opcao: string;
Begin
j:=0;
au:='Cadastro apagado';
if AluCadastro = 0 then
i := 1
else
i := AluCadastro;
Repeat
MostraTitulo('CADASTRAR ALUNO');
Write('Digite o nome do aluno: ');
Readln(aluno[i].nome);
Write('Digite o sexo do aluno. (M para masculino. F para feminino):
');

readln(aluno[i].sexo);
aluno[i].sexo := TesteMF(aluno[i].sexo);
writeln('Digite o curso do aluno');
readln(aluno[i].curso);
write('Digite a matricula do aluno: ');
readln(aluno[i].matricula);
matricula:=aluno[i].matricula;
repeat
for j:=1 to 50 do
begin
if j<>i then
begin
if ( matricula=aluno[j].matricula) then
begin
x:=1;
Writeln('Ja existe um aluno com o mesmo numero de matricula');
writeln(aluno[j].nome);
Writeln('Deseja atualizar os dados desse aluno? "S" Para sim e "N" para
nao');
readln(s2);
s2:=upcase(s2);
if s2='S' then
begin
aluno[j].nome:=aluno[i].nome;
aluno[j].sexo:=aluno[i].sexo;
aluno[j].curso:=aluno[i].curso;
aluno[j].matricula:=aluno[i].matricula;
aluno[i].nome:=au;
aluno[i].sexo:=au;
aluno[i].curso:=au;
aluno[i].matricula:=00000;
Writeln('Atualizado com sucesso');
readln;
end;
if s2='N' then
begin
Writeln('Deseja cadastrar outro aluno? "S" Para sim e "N" para nao');
if s2='S' then
begin
i:=i+1;
Write('Digite o nome do aluno: ');
Readln(aluno[i].nome);
Write('Digite o sexo do aluno. (M para masculino. F para feminino): ');
readln(aluno[i].sexo);
aluno[i].sexo := TesteMF(aluno[i].sexo);
writeln('Digite o curso do aluno');
readln(aluno[i].curso);
write('Digite a matricula do aluno: ');
readln(aluno[i].matricula);
end;
end;
end

else x:=1;
x:=x+1;
end;
end;
until x=2;
i := i + 1;
clrscr;
if (i <= QtdMaxAlunos) then
opcao := OutroCadastro('aluno');
until ((opcao = 'NAO') or (i > QtdMaxAlunos));
AluCadastro := i; {Variavel de contagem global dos alunos ate entao
cadastrados}
if AluCadastro > QtdMaxAlunos then {Teste de condicao caso ja tenha
atingido o limite isso exibira uma tela de erro}
QtdMax('alunos');
End;
procedure CadastroLivro(); {Procedimento responsavel por cadastrar
Livros}
var
i,j,x,isbn: integer;
opcao: string;
s2:char;
Begin
j:=0;
if LivCadastro = 0 then
i := 1
else
i := LivCadastro;
repeat
MostraTitulo('CADASTRAR LIVROS');
Write ('Digite o titulo do livro a ser cadastrado: ');
Readln (livros[i].titulo);
Write ('Digite o nome do autor: ');
Readln (livros[i].autor);
Write ('Digite o editora do autor: ');
Readln (livros[i].editora);
Write ('Digite o genero deste livro: ');
Readln (livros[i].genero);
Write ('Digite a quantidade de copias deste livro: ');
Readln (livros[i].qlvl);
while ((livros[i].qlvl = 0) or (livros[i].qlvl < 0)) do
begin
Writeln('Quantidade invalida. Digite uma quantidade valida.');
Readln(livros[i].qlvl);
end;
livros[i].qdisp := livros[i].qlvl;
writeln('Digite o ISBN "ISBN - International Standard Book
Number"');
readln(livros[i].ISBN);
isbn:=livros[i].isbn;
repeat

for j:=1 to 100 do


begin
if j<>i then
if (isbN=livros[j].ISBN) and (j<>i) then
begin
Writeln('Ja existe um livro com mesmo ISBN cadastrado');
Writeln(livros[j].titulo);
writeln('Deseja atualizar a lista com a quantidade de livros disponivel?
"S" Para sim e "C" para cadastrar outro livro');
readln(S2);
s2:=upcase(s2);
if s2='S' then
begin
livros[i].qlvl:=livros[i].qlvl+1;
end;
if s2='C' then
begin
x:=1;
i:=i+1;
Writeln('Digite o titulo do livro');
readln(livros[i].titulo);
writeln('Digite o genero');
readln(livros[i].genero);
writeln('Digite a quantidade de livros');
readln(livros[i].qlvl);
writeln('Digite a editora do livro');
readln(livros[i].editora);
writeln('Digite o autor');
readln(livros[i].autor);
writeln('Digite o ISBN "ISBN - International Standard Book Number"');
readln(livros[i].ISBN);
end;
end
else x:=1;
end;
x:=x+1;;
until x=2;
i := i + 1;
clrscr;
if (i <= QtdMaxLivros) then
opcao := OutroCadastro('livro');
until ((opcao = 'NAO') or (i > QtdMaxLivros));
livCadastro := i; {Variavel de contagem global de livros ate entao
cadastrados}
if (livCadastro > QtdMaxLivros) then {Teste de condicao caso ja tenha
atingido o limite isso exibira uma tela de erro}
QtdMax('livros');
end;

procedure MostraLivros(); {Procedimento responsavel por exibir na tela


livros }
var
i: integer;
begin
for i := 1 to (LivCadastro - 1) do
Writeln('ID: ', i, ' | Nome: ', livros[i].titulo,' | Genero: ',
livros[i].genero, ' | Qtd. disponivel: ', livros[i].qdisp,'/',livros[i].qlvl);
end;
Procedure Mostraalunos(); {Procedimento responsavel por exibir na tela
aluno}
var
i,x,matricula: integer;
begin
Writeln('Digite a matricula do aluno');
readln(matricula);
i:=0;
x:=0;
repeat
i:=i+1;
if (matricula=aluno[i].matricula) then
begin
Writeln('Aluno', aluno[i].nome);
Writeln('pendencias', aluno[i].pendencia);
Writeln('Curso', aluno[i].curso);
Writeln('ID do Aluno', i);
x:=1;
end;
until x=1;
end;
procedure devolver(); {Esse procedimento permite a realizacao da
devolucao dos livros}
var
matricula1,i,w:integer;
begin
i:=0;
w:=0;
Writeln('Digite a Matricula do aluno');
readln(matricula1);
repeat
if (aluno[i].matricula=matricula1) then
begin
Writeln('Aluno com nome', aluno[i].nome,' esta devolvendo um livro');
writeln('ID do aluno', i);
Writeln('Curso do aluno', aluno[i].curso);
writeln('Livros em sua posse', aluno[i].pendencia);
Writeln('Livro devolvido com sucesso');
aluno[i].pendencia:=aluno[i].pendencia-1;
writeln('Aluno agora com',aluno[i].pendencia,' pendencias');
w:=1;
end;

until w=1;
end;
procedure RealizaLocacao(); {Esse procedimento permite a realizacao da
locacao dos livros}
var
i, j,x,a: integer;
opcao: string;
cancela : boolean;
begin
if (LocLivros = 0) then
i := 1
else
i := LocLivros;
repeat
cancela := false;
MostraTitulo(concat('REALIZAR LOCACAO OU DEVOLUO'));
Writeln('VOCE DESEJA ALUGAR UM LIVRO?');
Writeln('1- Alugar');
Writeln('2-Sair');
readln(x);
if x=1 then
begin
Writeln('Alunos Cadastrados:');
Writeln();
MostraAlunos();
Writeln();
Write('Digite a ID do Aluno: ');
Readln(locacao[i].id);
if aluno[i].pendencia=0 then
begin
while (locacao[i].id > AluCadastro - 1) or (locacao[i].id <= 0) do
{condicao de Erro ID nao existente ou invalido}
begin
Writeln ('Nao existe nenhum aluno cadastrado com esse ID');
Writeln ('Digite outro ID');
Readln(locacao[i].id);
end;
a := locacao[i].id;
Write('Digite a data. (DD/MM/AAAA): ');
Readln(locacao[i].data);
Writeln();
if (LivCadastro = 0) then {Verifica a existencia de livros no registro}
begin
NenhumCadastro('livro');
Writeln();
MostrarOpcao();
readln(opcao);
opcao := TesteSimNao(opcao);
if (opcao = 'SIM') then {Confirma se a pessoa deseja cadastrar caso nao
exista um livro no momento}
CadastroLivro()

else {Mensagem de erro para retornar ao menu}


ValorVazio('livros');
end;
if (LivCadastro <> 0) then
opcao := 'SIM';
if (LivCadastro <> 0) and (opcao <> 'NAO') then {locacao padrao}
begin
j := 1;
repeat
MostraTitulo(concat('PESQUISA DE LIVROS DISPONIVEIS'));
Writeln('Locando para: ', Aluno[a].nome);
aluno[a].pendencia:=aluno[a].pendencia+1;
Writeln('Qtd. locada ',j-1,'/3');
writeln();
Writeln('Livros Disponiveis:');
Writeln();
MostraLivros();
writeln();
Write('Digite a ID do livro que deseja locar: ');
Readln(locacao[i].livros[j]);
while (locacao[i].livros[j] > LivCadastro - 1) or (locacao[i].livros[j] <= 0)
do {condicaoo de erro ID invalida}
begin
Writeln('Nao ha nenhum livro cadastrado com este ID ainda.');
Writeln('Digite uma id valida.');
readln(locacao[i].livros[j]);
end;
while ((livros[locacao[i].livros[j]].qdisp = 0) and (opcao <>
'NAO')) do {condicao de erro sem copias disponiveis}
begin
Writeln('Nao ha mais copias disponiveis deste livro.');
Writeln('Digite a ID de outro livro ou digite 0 para
cancelar ou continuar esta locacao.');
Writeln('Caso esse seja seu primeiro livro ao digitar zero
voce ira cancelar esta locacao.');
Readln(locacao[i].livros[j]);
opcao := 'NAO';
cancela := TRUE;
if (locacao[i].livros[j] = 0) and (j = 1) then {Reseta o
contador caso a pessoa digite 0 e nao tenha outro livro}
i := i - 1;
end;
if (livros[locacao[i].livros[j]].qdisp <> 0) then
livros[locacao[i].livros[j]].qdisp :=
livros[locacao[i].livros[j]].qdisp - 1;
if (locacao[i].livros[j] <> 0) and (cancela <> TRUE) then
begin
j := j + 1;
if (j <= QtdMaxLocacao) then {Verifica se ainda
possivel locar mais algum livro}
begin
writeln('Deseja locar mais algum livro? (sim/nao)');

Readln(opcao);
opcao := TesteSimNao(opcao);
end;
end;
until ((opcao = 'NAO') or (j > QtdMaxLocacao));
locacao[i].qtdlocada := j - 1;
MostraTitulo(concat('REALIZAR OUTRA LOCACAO'));
writeln('Deseja realizar outra locacao?');
writeln();
MostrarOpcao();
readln(opcao);
opcao := TesteSimNao(opcao);
i := i + 1;
LocLivros := i;
end;
end
else Writeln('Aluno possui pendencias');
end
else
until x=2;
end;
procedure ConsultaLocacao(); {Procedimento que realiza consultas no
vetor de registro}
var
i, x,matricula: integer;
begin
Writeln('Digite a matricula do Aluno em questao');
readln(matricula);
i:=0;
repeat
i:=1+1;
x:=0;
if matricula=aluno[i].matricula then
begin
WRiteln('O aluno', aluno[i].nome,'tem',aluno[i].pendencia,'pendencias');
readln;
if aluno[i].pendencia=0 then
begin
writeln('Aluno nao tem pendencias');
readln;
end;
x:=1;
end;
until x=1;
end;
Procedure livro_id(); {Procedimento para saber ID do livro}
var
x,j,y,count: integer;
busca:string;
begin
Writeln('
');

Writeln('Digite como voce quer pesquisar o livro');


PQ NAO PESQUISA 08/02}
writeln('1- Nome do autor');
writeln('2- Nome da editora');
writeln('3- Titulo do livro');
readln(x);
count:=0;
repeat
begin
if x=1 then
begin
writeln('Digite o nome do autor');
readln(busca);
j:=1;
repeat
if busca=livros[j].autor then
begin
writeln('ISBN do livro',livros[j].ISBN);
writeln('Titulo do livro',livros[j].titulo);
writeln('Editora do livro',livros[j].editora);
writeln('Quantidade de livros',livros[j].qlvl);
writeln('Quantidade disponivel',livros[j].qdisp);
Writeln('ID do livro', j);
readln;
count:=1;
y:=3;
end;
if busca<>livros[j].autor then
begin
j:=j+1;
end;
until y=3;
if x=2 then
begin
writeln('Digite o nome da editora');
readln(busca);
j:=1;
repeat
if busca=livros[j].editora then
begin
writeln('ISBN do livro',livros[j].ISBN);
writeln('Titulo do livro',livros[j].titulo);
writeln('Nome do autor',livros[j].autor);
writeln('Quantidade de livros',livros[j].qlvl);
writeln('Quantidade disponivel',livros[j].qdisp);
Writeln('ID do livro', j);
readln;
y:=3;
count:=1;
end;
if busca<>livros[j].editora then
begin

{ACORDAR CHECAR

j:=j+1;
end;
until y=3;
if x=3 then
begin
writeln('Digite o nome da titulo');
readln(busca);
j:=1;
repeat
if busca=livros[j].titulo then
begin
writeln('ISBN do livro',livros[j].ISBN);
writeln('Nome da editora',livros[j].editora);
writeln('Nome do autor',livros[j].autor);
writeln('Quantidade de livros',livros[j].qlvl);
writeln('Quantidade disponivel',livros[j].qdisp);
Writeln('ID do livro', j);
readln;
y:=3;
count:=1;
end;
if busca<>livros[j].editora then
begin
j:=j+1;
end;
until y=3;
end;
end;
end;
end;
until count=1;
end;
procedure ConsultalivroMaisLocado();
var
i, aux, id, outros: integer;
repetidos: array[1..100] of integer;
begin
aux := 0;
outros := 0;
for i := 1 to LivCadastro do
begin
if ((livros[i].qlvl - livros[i].qdisp) > aux) then
begin
aux := livros[i].qlvl - livros[i].qdisp;
id := i;
end;
if ((livros[i].qlvl - livros[i].qdisp) = aux) then
begin
outros := outros + 1;
repetidos[outros] := i;
end;

end;
MostraTitulo('LIVRO MAIS LOCADO');
if (outros = 0) then
begin
Writeln('O livro que teve a maior quantidade de locacoes foi:');
writeln();
Writeln('ID: ',id, ' | Titulo: ', livros[id].titulo, ' | Quantidade Locada: ',aux);
end
else
begin
Writeln('Os livro que tiveram maior quantidade de locacaes foi:');
Writeln();
for i := 1 to outros do
Writeln('ID: ',repetidos[i], ' | Titulo: ', livros[repetidos[i]].titulo, ' |
Quantidade Locada: ',aux);
end;
Writeln();
Writeln('Pressione qualquer tecla para retornar ao menu...');
Readkey;
end;
function Contarlivros(ID:integer):String; {Funcao de contagem de livros
de um determinado ID passado por parametro}
var
i, cont: integer;
st: string;
begin
cont := 0;
for i := 1 to Loclivros do
If (ID = Locacao[i].Id) then
Cont := Cont + Locacao[i].QtdLocada;
str(cont, st);
ContarLivros := st;
end;
procedure GeraArquivoTexto(); {Procedimento que gera arquivo texto}
var
i: integer;
begin
MostraTitulo('GERAR ARQUIVO TEXTO');
rewrite(texto);
Writeln(texto, '...Locadora de Livros...');
Writeln(texto);
writeln(texto, 'alunos: ');
writeln(texto);
for i := 1 to (AluCadastro - 1) do
writeln(texto, aluno[i].nome + ' - ' + ContarLivros(i) + ' livro(s)');
close(texto);
Writeln('Gerando arquivo por favor aguarde...');
Write('[Carregando...');
for i := 1 to 61 do
begin

Write(chr(178));
delay(i);
end;
write('100%]');
Writeln();
Writeln('Arquivo Gerado Com Sucesso!',chr(7));
Writeln('Pressione qualquer tecla para retornar ao menu...');
Readkey();
end;
procedure TesteQtdAluno(); {Teste de quantidade de alunos
cadastrados}
begin
if (AluCadastro > QtdMaxAlunos) then
QtdMax('alunos')
else
CadastroAluno();
end;
procedure TesteQtdLivro(); {Teste de quantidade de livros cadastrados}
begin
if (LivCadastro > QtdMaxlivros) then
QtdMax('livros')
else
CadastroLivro();
end;
procedure TesteQtdLocacoes(); {Teste de quantidade de alunos que
pegaram livros}
var
opcao: string;
begin
if (AluCadastro = 0) then
begin
MostraTitulo('SEM ALUNOS CADASTRADOS');
NenhumCadastro('aluno');
Writeln();
MostrarOpcao();
Readln(opcao);
opcao := TesteSimNao(opcao);
if (opcao = 'SIM') then
CadastroAluno()
else
ValorVazio('alunos');
end;
if (LocLivros > QtdMaxLocacoes) then
QtdMax(concat('locacoes'));
if (LocLivros <= QtdMaxLocacoes) and (AluCadastro <> 0) then
realizalocacao();
end;

procedure TesteQtdConsulta(tipo: integer); {Teste de quantidade dos


livros locados, para consulta locao}
var
opcao: string;
begin
opcao := 'SIM';
if (LocLivros = 0) then
Begin
opcao := concat('NENHUMA LOCACAO');
MostraTitulo(opcao);
Writeln('Ainda nao foram efetuadas locacoes ate o momento.');
Writeln('Deseja realizar uma locacao agora?');
Writeln();
MostrarOpcao();
Readln(opcao);
opcao := TesteSimNao(opcao);
if (opcao = 'SIM') then
TesteQtdLocacoes()
else
begin
Writeln();
Writeln('Voce nao realizou nenhuma locacao ate o
momento.');
Writeln('Nao foi possivel realizar o procedimento.');
Writeln('Pressione qualquer tecla para retornar ao menu...');
Readkey();
end;
end;
if (LocLivros <> 0) and (AluCadastro <> 0) and (opcao = 'SIM') and
(tipo = 4) then
ConsultaLocacao();
if (LocLivros <> 0) and (AluCadastro <> 0) and (opcao = 'SIM') and
(tipo = 5) then
ConsultaLivroMaisLocado();
if (LocLivros <> 0) and (AluCadastro <> 0) and (opcao = 'SIM') and
(tipo = 6) then
GeraArquivoTexto();
if (opcao = 'SIM') and (LocLivros = 0) then
begin
Writeln();
Writeln('Voce nao realizou nenhuma locacao ate o momento.');
Writeln('Nao foi possivel realizar a ');
if (tipo = 4) then
write(' consulta.');
if (tipo = 5) then
write(' consulta livro mais locado');
if (tipo = 6) then
write(' geracao de arquivo.');
Writeln('Pressione qualquer tecla para retornar ao menu...');
Readkey();
end;
end;

procedure TesteQtdMaisLocado(tipo: integer); {Teste 10/02}


begin
TesteQtdConsulta(tipo);
end;
procedure TesteQtdGeraArquivo(tipo: integer); {Teste de quantidade de
locacao para geracao de arquivo texto}
begin
TesteQtdConsulta(tipo);
end;
procedure MensagemAgradecimento(); {Imprime uma mensagem de
despedidada do programa}
begin
MostraTitulo('OBRIGADO POR UTILIZAR NOSSO PROGRAMA!');
Writeln('Pressione qualquer tecla para continuar...');
Readkey;
end;
{ ///// Codigo Principal \\\\\}
BEGIN
Assign(texto, 'C:\trabalho\alunos.txt');
cond := 0;
LivCadastro := 0;
AluCadastro := 0;
LocLivros := 0;
while cond <> 1 do
Begin
MenuPrincipal();
Write('====> ');
Readln(opcao);
while (opcao <= 0) or (opcao > 9) do
Begin
writeln('Opcao invalida. Digite uma opcao valida');
Readln (opcao);
End;
clrscr;
case opcao of
1: TesteQtdAluno() ;
2: TesteQtdLivro() ;
3: TesteQtdLocacoes() ;
4: Devolver();
5: TesteQtdConsulta(opcao) ;
6: Livro_id();
7: TesteQtdMaisLocado(opcao);
8: TesteQtdGeraArquivo(opcao);
9: cond := 1;
end;
End;
MensagemAgradecimento();

END.

Você também pode gostar