{ Funcao : Faca um programa que permita a usuario incluir, alterar, excluir, pesquisar e listar as informacoes num vetor de no maximo 200 clientes de uma agencia bancaria. Tendo as seguintes informacoes: numero da conta, nome, saldo e senha de 6 digitos.
Autor :
Data : 4/9/2012
Seção de Declarações }
Autor :
Data : 4/9/2012
Seção de Declarações }
Program Banco_Novo;
uses crt;
const
max = 200;
type
TContaCorrente = record
num: integer;
nome: string[40];
saldo: real;
senha: string[6];
end;
TContas = array[1.. max] of TContaCorrente;
var
contas : TContas; { *** upos - ultima posicao *** }
p, i, op, upos, pesq, erro : integer;
resp : char;
teste_senha,nova_senha,vsenha,senha_digitada : string[6];
{*** PROCEDURE MOSTRAR DADOS DA CONTA - UTILIZADO EM QUASE TODAS AS PARTES DESTE PROGRAMA ***}
procedure MostrarConta(conta: TContaCorrente);
begin
gotoxy (10,06); write (' Cliente Cadastrado - Banco PASCAL: ');
gotoxy (10,07); write ('-----------------------------------------------------');
gotoxy (10,08); write ('N£mero Nome Saldo');
gotoxy (10,09); write ('-------+-------------------------------+-------------');
writeln;
gotoxy (10,10); write (conta.num);
gotoxy (18,10); write (conta.nome);
gotoxy (53,10); write ('R$ ',conta.saldo:10:2);
end;
procedure criptografar_senha;
var
s : char;
begin
i:= 1;
while i <= 6 do
begin
s:=readkey;
i:= i + 1;
if (s <> ' ') then
begin
senha_digitada:= concat(senha_digitada+s);
write ('*');
end;
end;
end;
function localizar: integer;
var
achou: boolean;
begin
p:= 1;
achou := false;
while (p <= upos) and (not achou) do {not achou = achou = false}
if pesq = contas[p].num then
achou := true
else
p := p + 1;
if achou then {if achou then = if achou = true then}
localizar := p
else
localizar := -1; { numero negativo ira interrompoer as procedures: }
end; { alterar, excluir, pesquisar, listar }
{*** CADASTRAMENTO DE CLIENTES - Incluir ***}
procedure incluir;
begin
clrscr;
gotoxy (10,01); write (' Abertura de nova conta ');
gotoxy (10,02); write ('---------------------------------------- ');
gotoxy (10,04); write ('Ate o momento o banco tem ',upos,' clientes cadastrados');
gotoxy (10,06); write ('Podendo chegar a numero ',max,' de clientes');
if upos < max then
begin
gotoxy (10,24); write ('Deseja realmente cadastrar uma nova conta [S/N] : ');
readln (resp);
if (resp = 's') or (resp = 'S') then
begin
gotoxy (10,24); write (' ');
upos := upos + 1; { upos - ultima posicao }
gotoxy (10,08); write ('N£mero: '); readln (contas[upos].num);
gotoxy (10,09); write ('Nome : '); readln (contas[upos].nome);
gotoxy (10,10); write ('Saldo Inicial: R$ '); readln (contas[upos].saldo);
gotoxy (10,12); write ('Digite a senha: ');
criptografar_senha;
contas[upos].senha:=senha_digitada;
gotoxy (10,22); write ('Cadastramento de conta concluido com sucesso!!');
delay (2500);
end
else
begin
gotoxy (10,22); write ('Nao foi registrado uma conta nova.');
end;
gotoxy (10,22); write ('Tecle [ENTER] para retornar oa menu principal');
end
else
begin
gotoxy (10,17); write ('Nosso numero de clientes ja esta complento');
gotoxy (10,18); write ('Foi atingido o numero maximo de clientes');
gotoxy (10,19); write ('Um total de ',upos,' de ',max);
gotoxy (10,20); write ('Tecle [ENTER] para continuar.');
readkey;
end;
end;
{**** Procedimento para efetuar alteracoes nos dados dos clientes ****}
procedure alterar;
var
opl: integer;
begin
clrscr;
gotoxy (10,01); write ('Alterarcao de dados no registro do cliente cadastrado: ');
gotoxy (10,02); write ('---------- -- ----- -- -------- -- ------- ----------- ');
gotoxy (10,04); write ('Digite o n£mero da conta a ser alterada: ');
readln(pesq);
p := localizar; {aciona a procedure localizar e recebe um informacao }
if p > 0 then {se encontrou ou nao o numero da conta no registro de clientes }
begin
MostrarConta(contas[p]);
gotoxy (10,12); write ('Qual o campo que deseja alterar?');
gotoxy (10,13); write ('1 - Nome');
gotoxy (10,14); write ('2 - Saldo');
gotoxy (10,15); write ('3 - Senha');
gotoxy (10,16); write ('9 - Voltar ao menu principal');
gotoxy (10,18); write ('Digite a Opcao: '); readln(opl);
if opl = 1 then
begin
gotoxy (14,20); write ('Nome: ');
readln(contas[p].nome);
end
else
if opl = 2 then
begin
gotoxy (14,20); write ('Saldo: R$');
readln(contas[p].saldo);
end
else
if opl = 3 then
begin
gotoxy (14,20); write ('Digite a nova senha: ');
criptografar_senha;
contas[upos].senha:=senha_digitada;
end
else
if opl = 9 then
begin
gotoxy (14,24); write ('Tecle [ENTER] para voltar ao MENU PRINCIPAL')
end;
gotoxy (10,22); write ('Alera‡Æo de conta concluido com sucesso!!');
delay (2500);
end
else
begin
gotoxy (14,24); write ('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end;
{ *** PROCEDIMENTO PARA EXCLUIR CONTA DE CLIENTE *** }
procedure excluir;
begin
clrscr;
if upos > 0 then
begin
gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
gotoxy (10,03); write ('------- -------- -- ------- ----------- ');
gotoxy (10,05); write ('Digite o n£mero da conta a ser excluida: ');
readln(pesq);
p := localizar;
if p > 0 then
begin
MostrarConta(contas[p]);
gotoxy (10,24); write('Comfirma a exclusao <S/N>: ');
readln(resp);
resp := upcase(resp);
if resp = 'S' then
begin
for i := p to upos - 1 do
contas[i] := contas[i + 1];
upos := upos - 1;
end;
gotoxy (10,24); write ('Conta excluida com sucesso!!');
delay (2500);
end
else
begin
gotoxy (10,24);write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end
else
begin
gotoxy (07,08); write ('Banco Pascal');
gotoxy (07,24); write ('NÆo existe informa‡Æo a excluir. Tecle [ENTER] para continuar.');
readkey;
end;
end;
procedure pesquisar;
begin
clrscr;
gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
gotoxy (10,03); write ('------- -------- -- ------- ----------- ');
gotoxy (10,05); write('Didite o n£mero da conta a ser localizada: ');
readln(pesq);
p := localizar;
if p > 0 then
begin
MostrarConta(contas[p]);
gotoxy (10,24); write('Tecle [ENTER] para continuar.');
readkey;
end
else
begin
gotoxy (10,24); write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end;
procedure listar;
var
l, x: integer;
begin
X:=7;
clrscr;
if upos > 0 then
begin
l := 2;
gotoxy (10,02); write ('Listagem dos Cliente Cadastrados - Banco PASCAL: ');
gotoxy (10,03); write ('-------- --- ------- ----------- ----- ------- ');
gotoxy (10,05); write ('N£mero Nome Saldo');
gotoxy (10,06); write ('-------+--------------------------------+-----------------');
writeln;
for i := 1 to upos do
begin
gotoxy (10,x); write (contas[i].num:7);
gotoxy (18,x); write (contas[i].nome);
gotoxy (53,x); write ('R$ ',contas[i].saldo:10:2);
x:=x+1;
if l < 22 then
l := l + 1
else
begin
gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
readkey;
l := 1;
clrscr;
writeln('N£mero Nome Saldo : ');
end
end;
gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
readkey;
end
else
begin
gotoxy (10,24); write ('NÆo exitem contas cadastradas. Tecle [ENTER] para continuar.');
readkey;
end;
end;
{
procedure extrato_bancario;
Type
extrato = record
operacao : integer;
var }
{ *** Principal parte do programa *** }
begin
repeat
clrscr;
{Comandos do programa}
gotoxy (05,05); write (' Banco Pascal');
gotoxy (05,06); write ('----------------------------');
gotoxy (05,10); write (' MENU PRINCIPAL ');
gotoxy (05,12); write ('----------------------------');
gotoxy (13,14); write ('1 - Incluir');
gotoxy (13,15); write ('2 - Alterar');
gotoxy (13,16); write ('3 - Excluir');
gotoxy (13,17); write ('4 - Pesquisar');
gotoxy (13,18); write ('5 - Listar');
gotoxy (13,19); write ('6 - Extrato');
gotoxy (13,20); write ('9 - Sair');
gotoxy (10,22); write ('Digite a opcao: ');
val(readkey,op,erro);
clrscr;
case op of
1: incluir;
2: alterar;
3: excluir;
4: pesquisar;
5: listar;
6: begin
gotoxy (26,19); writeln ('EM CONSTRUCAO'); readkey;
end;
end;
until op = 9;
end.
Nenhum comentário:
Postar um comentário