Ir ao conteúdo
  • Cadastre-se

Programa Agência de Viagens Pascal


Visitante: marcoslx

Posts recomendados

Visitante: marcoslx
 

:eek:

Oi pessoal, entrei numa de entregar um projeto para o meu

professor de programação mas estou com um periodo de entrega escasso,

tenho que entregar segunda agora.... e estou meio enrolado

porque até agora só fiz a interface do utilizador ou seja, o login

e um cadastramento de um novo vendedor, o meu programa é

apenas voltado para a parte administrativa da agência, ou seja

só os vendedores terão acesso, mas com ele poderão construir os

pacotes de viagens, escolhendo local, preço, podem posteriormente ser traçadas

viagens sugestivas para cada caso, digamos que a pessoa só tem 200 euros no bolso, o programa vera os destinos disponiveis e mostrara ao vendedor

os destinos a 200 euros ou menos.... basicamente isso...

aceito sugestões e segue o que eu fiz até agora...

Program Pzim ;
uses crt;

type agente= record
user: string[16];
pass: string[10];
nome: string[20];
nasc: string[30];
venc: real;
morada: string[30];

end;






Var
op: integer; f_ag: file of agente; tmp_ag: file of agente;
reg_ag, reg2, regi_ag: agente;




Procedure init;
(*var*)

Begin
Assign(f_ag, 'Z:\Prolp\user.bin');
Assign(tmp_ag, 'Z:\Prolp\temp_user');
(*Assign( *)
{$I-}
Reset(f_ag);
{$I+}
If IOResult <> 0 then Rewrite(f_ag);
close(f_ag);



End;


Procedure nuser;
Var i,j: integer;
password, nasc: string[20];
usuario,nome,morada: char;
venc:real;
oc: integer;
Begin
(* Repeat*)
clrscr;
textcolor(lightred);
for i:=25 to 61 do
begin
gotoxy(i,5);
write(#178);
gotoxy(i,19);
write(#178);
for j:=6 to 19 do
begin
gotoxy(25,j);
write(#178);
gotoxy(61,j);
write(#178);
end;
end;

gotoxy(27,7);
writeln('ESCOLHA UM NOME DE USUARIO:');
gotoxy(27,13);
writeln('ESCOLHA UMA PASSWORD: ');
gotoxy(27,11);
writeln('INSIRA O SEU NOME UM NOME:');
gotoxy(27,9);
writeln('INSIRA A SUA DATA DE NASCIMENTO:');
gotoxy(27,15);
writeln('INSIRA O VALOR DO SEU VENCIMENTO:');
gotoxy(27,17);
writeln('INSIRA A SUA MORADA:');
(* gotoxy(27,3);*)

textcolor(14);
gotoxy(27,8);
readln(reg2.nome);
gotoxy(27,10);
readln(reg2.pass);
gotoxy(27,12);
readln(reg2.user);
gotoxy(27,14);
readln(reg2.nasc);
gotoxy(27,16);
readln(reg2.venc);
gotoxy(27,18);
readln(reg2.morada);
Reset(f_ag);
Rewrite(tmp_ag);
While NOT EOF(f_ag) do
Begin
Read(f_ag, reg_ag);
Write(tmp_ag, reg_ag);
End;
write(tmp_ag, reg2);
reset(tmp_ag);
rewrite(f_ag);

While NOT EOF(tmp_ag) do
Begin
write(tmp_ag, reg_ag);
write(f_ag, reg_ag);
End;
close(tmp_ag);
close(f_ag);



(* writeln(' AGORA PRIMA 1 PARA EFECTUAR LOGIN!');
readln(oc);
Until (oc = !);
*)

end;



Procedure Menu;
Begin
writeln('OLA MUNDO');
End;


Procedure Saida;
Begin
clrscr;
writeln(' MUITO OBRIGADO POR UTILIZAR NOSSOS SERVICOS, ATE A PROXIMA!');
readkey;
End;

Procedure plogin;
Var usuario: string[16];
i,j:integer;
password: string[10];
enc: boolean;
opc: integer;
Begin
clrscr;
textcolor(lightred);
for i:=30 to 50 do
begin
gotoxy(i,8);
write(#178);
gotoxy(i,17);
write(#178);
for j:=8 to 17 do
begin
gotoxy(30,j);
write(#178);
gotoxy(50,j);
write(#178);
end;
end;
gotoxy(33,10);
writeln('NOME DE USUARIO:');
gotoxy(33,13);
writeln('PASSWORD:');
textcolor(14);
gotoxy(33,11);
readln(usuario);
gotoxy(33,14);
readln(password);
enc:=false;
Begin
Reset(f_ag);
While NOT EOF(f_ag) and not enc do
Begin
read(f_ag, regi_ag);
If (usuario = regi_ag.user) AND (password = regi_ag.pass) then
enc:=true;
end;
close(f_ag);
If enc then
Menu
else
Begin
writeln(' NAO SE ENCONTRA CADASTRADO, PRIMA 1 PARA CADASTRAR OU 2 PARA TENTAR OUTRA VEZ!');
readln(opc);
Case opc of
1:nuser;
2:plogin;
3:saida;

End;

End;
End;
End;



Begin
Repeat
init;
textbackground(1);
textcolor(46); clrscr;
gotoxy(4,14); write(' GGGGGGGGGGGGGG TTTTTT OOOO U UU RRRR ');
gotoxy(4,15); write(' GGGGGGGGGGGGGGG TT O O U UU RR R ');
gotoxy(4,16); write(' GGG TT OOOO UUUUU RRRR ');
gotoxy(4,17); write(' GGG RR RR ');
gotoxy(4,18); write(' GGG LL AAA LL ');
gotoxy(4,19); write(' GGG GGGGGGGGGGGG LLL OOOOOOOO BBBBBB AA AA LLL ');
gotoxy(4,20); write(' GGG GGGGGGGG LL 00 0O BB BB AA AA LL ');
gotoxy(4,21); write(' GGG GGG LL 00 0O BB BB AA AA LL ');
gotoxy(4,22); write(' GGG GGG LL 00 0O BBBBBBB AA AA LL ');
gotoxy(4,23); write(' GGG GGG LL 00 00 BB BB AAAAA LL ');
gotoxy(4,24); write(' GGGGGGGGGGGGGGG LLLLLLLL 00 0O BB BB AA AA LLLLLLLL ');
gotoxy(4,25); write(' GGGGGGGGGGGGGG LLLLLLLL OOOOOOOO BBBBBBB AA AA LLLLLLLL ');

textcolor(10);gotoxy(30,27); writeln('A SUA VIAGEM COMECA AQUI!');
gotoxy(11,29);writeln('PRESSIONE 1 PARA FAZER LOGIN OU PRESSIONE 2 PARA CADASTRAR-SE');
gotoxy(40,30);readln(op);


Case op of


1: Begin
plogin;
End;

2: Begin
nuser;
End;

3: Begin
saida;
End;



End;
Until (op<>1) and (op<>2) and (op<>3);

End.

se puderem ajudar agradeço, os procedimentos que eu vou precisar

de ter no programa são os procedimentos base para uma gestão....

-inserir novo utilizador(vendedor)

-Inserir novo cliente

-inserir um novo pacote de viagem

-alterar dados do utilizador

-alterar dados do cliente

-alterar um pacote de viagem

-remover um utilizador

-remover um cliente

-remover um pacote

ou seja basicamente criar 3 files que guardem a informação do cliente

do vendedor(user) e dos pacotes e depois so fazer pequenas operações

entre eles, é um pouco trabalhoso, mas no que puderem ajudar agradeço....

cumps!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

:eek:

Oi pessoal, entrei numa de entregar um projeto para o meu

professor de programação mas estou com um periodo de entrega escasso,

tenho que entregar segunda agora.... e estou meio enrolado

porque até agora só fiz a interface do utilizador ou seja, o login

e um cadastramento de um novo vendedor, o meu programa é

apenas voltado para a parte administrativa da agência, ou seja

só os vendedores terão acesso, mas com ele poderão construir os

pacotes de viagens, escolhendo local, preço, podem posteriormente ser traçadas

viagens sugestivas para cada caso, digamos que a pessoa só tem 200 euros no bolso, o programa vera os destinos disponiveis e mostrara ao vendedor

os destinos a 200 euros ou menos.... basicamente isso...

aceito sugestões e segue o que eu fiz até agora...


uses crt;

type agente= record
user: string[16];
pass: string[10];
nome: string[20];
nasc: string[30];
venc: real;
morada: string[30];

end;






Var
op: integer; f_ag: file of agente; tmp_ag: file of agente;
reg_ag, reg2, regi_ag: agente;




Procedure init;
(*var*)

Begin
Assign(f_ag, 'Z:\Prolp\user.bin');
Assign(tmp_ag, 'Z:\Prolp\temp_user');
(*Assign( *)
{$I-}
Reset(f_ag);
{$I+}
If IOResult <> 0 then Rewrite(f_ag);
close(f_ag);



End;


Procedure nuser;
Var i,j: integer;
password, nasc: string[20];
usuario,nome,morada: char;
venc:real;
oc: integer;
Begin
(* Repeat*)
clrscr;
textcolor(lightred);
for i:=25 to 61 do
begin
gotoxy(i,5);
write(#178);
gotoxy(i,19);
write(#178);
for j:=6 to 19 do
begin
gotoxy(25,j);
write(#178);
gotoxy(61,j);
write(#178);
end;
end;

gotoxy(27,7);
writeln('ESCOLHA UM NOME DE USUARIO:');
gotoxy(27,13);
writeln('ESCOLHA UMA PASSWORD: ');
gotoxy(27,11);
writeln('INSIRA O SEU NOME UM NOME:');
gotoxy(27,9);
writeln('INSIRA A SUA DATA DE NASCIMENTO:');
gotoxy(27,15);
writeln('INSIRA O VALOR DO SEU VENCIMENTO:');
gotoxy(27,17);
writeln('INSIRA A SUA MORADA:');
(* gotoxy(27,3);*)

textcolor(14);
gotoxy(27,8);
readln(reg2.nome);
gotoxy(27,10);
readln(reg2.pass);
gotoxy(27,12);
readln(reg2.user);
gotoxy(27,14);
readln(reg2.nasc);
gotoxy(27,16);
readln(reg2.venc);
gotoxy(27,18);
readln(reg2.morada);
Reset(f_ag);
Rewrite(tmp_ag);
While NOT EOF(f_ag) do
Begin
Read(f_ag, reg_ag);
Write(tmp_ag, reg_ag);
End;
write(tmp_ag, reg2);
reset(tmp_ag);
rewrite(f_ag);

While NOT EOF(tmp_ag) do
Begin
write(tmp_ag, reg_ag);
write(f_ag, reg_ag);
End;
close(tmp_ag);
close(f_ag);



(* writeln(' AGORA PRIMA 1 PARA EFECTUAR LOGIN!');
readln(oc);
Until (oc = !);
*)

end;



Procedure Menu;
Begin
writeln('OLA MUNDO');
End;


Procedure Saida;
Begin
clrscr;
writeln(' MUITO OBRIGADO POR UTILIZAR NOSSOS SERVICOS, ATE A PROXIMA!');
readkey;
End;

Procedure plogin;
Var usuario: string[16];
i,j:integer;
password: string[10];
enc: boolean;
opc: integer;
Begin
clrscr;
textcolor(lightred);
for i:=30 to 50 do
begin
gotoxy(i,8);
write(#178);
gotoxy(i,17);
write(#178);
for j:=8 to 17 do
begin
gotoxy(30,j);
write(#178);
gotoxy(50,j);
write(#178);
end;
end;
gotoxy(33,10);
writeln('NOME DE USUARIO:');
gotoxy(33,13);
writeln('PASSWORD:');
textcolor(14);
gotoxy(33,11);
readln(usuario);
gotoxy(33,14);
readln(password);
enc:=false;
Begin
Reset(f_ag);
While NOT EOF(f_ag) and not enc do
Begin
read(f_ag, regi_ag);
If (usuario = regi_ag.user) AND (password = regi_ag.pass) then
enc:=true;
end;
close(f_ag);
If enc then
Menu
else
Begin
writeln(' NAO SE ENCONTRA CADASTRADO, PRIMA 1 PARA CADASTRAR OU 2 PARA TENTAR OUTRA VEZ!');
readln(opc);
Case opc of
1:nuser;
2:plogin;
3:saida;

End;

End;
End;
End;



Begin
Repeat
init;
textbackground(1);
textcolor(46); clrscr;
gotoxy(4,14); write(' GGGGGGGGGGGGGG TTTTTT OOOO U UU RRRR ');
gotoxy(4,15); write(' GGGGGGGGGGGGGGG TT O O U UU RR R ');
gotoxy(4,16); write(' GGG TT OOOO UUUUU RRRR ');
gotoxy(4,17); write(' GGG RR RR ');
gotoxy(4,18); write(' GGG LL AAA LL ');
gotoxy(4,19); write(' GGG GGGGGGGGGGGG LLL OOOOOOOO BBBBBB AA AA LLL ');
gotoxy(4,20); write(' GGG GGGGGGGG LL 00 0O BB BB AA AA LL ');
gotoxy(4,21); write(' GGG GGG LL 00 0O BB BB AA AA LL ');
gotoxy(4,22); write(' GGG GGG LL 00 0O BBBBBBB AA AA LL ');
gotoxy(4,23); write(' GGG GGG LL 00 00 BB BB AAAAA LL ');
gotoxy(4,24); write(' GGGGGGGGGGGGGGG LLLLLLLL 00 0O BB BB AA AA LLLLLLLL ');
gotoxy(4,25); write(' GGGGGGGGGGGGGG LLLLLLLL OOOOOOOO BBBBBBB AA AA LLLLLLLL ');

textcolor(10);gotoxy(30,27); writeln('A SUA VIAGEM COMECA AQUI!');
gotoxy(11,29);writeln('PRESSIONE 1 PARA FAZER LOGIN OU PRESSIONE 2 PARA CADASTRAR-SE');
gotoxy(40,30);readln(op);


Case op of


1: Begin
plogin;
End;

2: Begin
nuser;
End;

3: Begin
saida;
End;



End;
Until (op<>1) and (op<>2) and (op<>3);

End.
Program Pzim ;

se puderem ajudar agradeço, os procedimentos que eu vou precisar

de ter no programa são os procedimentos base para uma gestão....

-inserir novo utilizador(vendedor)

-Inserir novo cliente

-inserir um novo pacote de viagem

-alterar dados do utilizador

-alterar dados do cliente

-alterar um pacote de viagem

-remover um utilizador

-remover um cliente

-remover um pacote

ou seja basicamente criar 3 files que guardem a informação do cliente

do vendedor(user) e dos pacotes e depois so fazer pequenas operações

entre eles, é um pouco trabalhoso, mas no que puderem ajudar agradeço....

cumps!

Olá,

marcoslx, vou te passar algumas dicas:

1) caminho dos arquivos

use constantes para definir o caminho dos arquivos, ex.:

[color=#0000ff]const[/color]
endUser [color=#000000]=[/color] [color=#a31515]'uses.bin'[/color][color=#000000];[/color]
endTemp [color=#000000]=[/color] [color=#a31515]'temp_user'[/color][color=#000000];[/color]

  Assign(f_ag,endUser);
Assign(tmp_ag,endTemp);

2) Erros de I/O (entrada e saída)

Assim como o Reset(), o ReWrite() e o Close() também podem dar erro, e devem ser tratados.

3) Variáveis globais x variáveis locais

Tome cuidado para não usar uma variável global por engano. No caso, quando um procedimento precisa de uma variável "auxiliar", essa variável deve ser preferencialmente declarada no próprio procedimento. Veja o exemplo abaixo do nUser(). Assim como você declarou i e j, você deveria declara o novo registro no próprio procedimento, ex.:

[color=#0000ff]procedure[/color] nUser[color=#000000];[/color]
[color=#0000ff]var[/color]
i[color=#000000],[/color] j [color=#000000]:[/color][color=#0000ff]integer[/color][color=#000000];[/color]
regNovo [color=#000000]:[/color]agente[color=#000000];[/color]
[color=#0000ff]begin[/color]

Em vez de usar uma variável global (no caso reg2), ou seja, a medida que você for precisando dessas novas variáveis, você vai declarando no próprio procedimento. Desta forma, cadas procedimento será independente do outro.

4) Inserção de novo registro

  [color=#000000]Reset[/color][color=#000000]([/color]f_ag[color=#000000]);[/color] 
[color=#000000]Rewrite[/color][color=#000000]([/color]tmp_ag[color=#000000]);[/color]
[color=#2b91af]While[/color] [color=#0000ff]NOT[/color] [color=#000000]EOF[/color][color=#000000]([/color]f_ag[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]Begin[/color]
[color=#000000]Read[/color][color=#000000]([/color]f_ag[color=#000000],[/color] reg_ag[color=#000000]);[/color]
[color=#000000]Write[/color][color=#000000]([/color]tmp_ag[color=#000000],[/color] reg_ag[color=#000000]);[/color]
[color=#0000ff]End[/color][color=#000000];[/color]
[color=#000000]write[/color][color=#000000]([/color]tmp_ag[color=#000000],[/color] reg2[color=#000000]);[/color]
[color=#000000]reset[/color][color=#000000]([/color]tmp_ag[color=#000000]);[/color]
[color=#000000]rewrite[/color][color=#000000]([/color]f_ag[color=#000000]);[/color]
[color=#2b91af]While[/color] [color=#0000ff]NOT[/color] [color=#000000]EOF[/color][color=#000000]([/color]tmp_ag[color=#000000])[/color] [color=#2b91af]do[/color]
[color=#0000ff]Begin[/color]
[color=#000000]write[/color][color=#000000]([/color]tmp_ag[color=#000000],[/color] reg_ag[color=#000000]);[/color]
[color=#000000]write[/color][color=#000000]([/color]f_ag[color=#000000],[/color] reg_ag[color=#000000]);[/color]
[color=#0000ff]End[/color][color=#000000];[/color]
[color=#000000]close[/color][color=#000000]([/color]tmp_ag[color=#000000]);[/color]
[color=#000000]close[/color][color=#000000]([/color]f_ag[color=#000000]);[/color]

Nesse trecho observo que você criou um arquivo temporário para auxiliar na inserção de um novo registro no final do arquivo. A técnica é interessante, mas você não precisa fazer isso desta forma, para tanto existe o seek(), que posiciona o ponteiro do arquivo, ex.:

Seek(f_ag,FileSize(reg_ag));

Ou seja, vai deixar na posição que é o tamanho do arquivo, logo no final. Assim basta inserir o novo registro.

Em fim, tente ver inicialmente essas questões, depois reanaliso e te passo mais sugestões.

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante: marcoslx
 

Oi Simon(estilingueatomico) !

valeu pelas dicas, estou num dilema aqui

com esse programa cara, estou tentando

arrumar ele, e gostei muito das suas dicas,

estou agora entretanto avançando mais,

pois tenho de entregá-lo segunda feira agora...

está corrido mas eu chego la, muito obrigado

mesmo, e se possuir mais alguma dica me mande...

nesta etapa, toda dica é lucro! muito obrigado, e

bom final de semana!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!