{ Criar um arquivo: cadastro.db e cadprod5.db } Program CADASTRO; uses crt; type ficha = record cod:integer; descricao:string; preco,qtd:real; end; VAR aux:ficha; arq:file of ficha; preco5:file of ficha; op:char; PROCEDURE Cadastrar; Var op:char; begin clrscr; op:='s'; WHILE ((op='s') or (op='S')) DO Begin CLRSCR; seek(arq,filesize(arq)); aux.cod:=filesize(arq); Writeln ('DIGITE A DESCRICAO'); Readln (aux.descricao); Writeln ('DIGITE A QUANTIDADE'); Readln (aux.QTD); Writeln ('DIGITE O PRECO'); Readln (aux.preco); Write(arq,aux); Writeln ('Deseja continuar cadastrando? S/N'); op:=Readkey; end; end; PROCEDURE Imprimir; Var linhas:integer; begin clrscr; reset(arq); linhas:=1; WRITELN ('ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍ»'); WriteLN ('º CODIGO º DESCRICAO º QUANTIDADE º PRECO º'); WHILE not eof(arq) DO Begin if linhas > 21 then begin Writeln (' Pressione qualquer tecla para continuar...'); readkey; linhas:=0; clrscr; end; read (arq,aux); gotoxy(1,linhas+2); Write ('º ',aux.cod); gotoxy(10,linhas+2); while length(aux.descricao)<50 do aux.descricao:=aux.descricao+'.'; Write ('º ',aux.descricao); gotoxy(58,linhas+2); Write ('º ',aux.QTD:8:2); gotoxy(70,linhas+2); Write (' º',aux.preco:7:2,'º '); linhas:=linhas+1; end; WRITE('ÈÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍͼ'); writeln; Write('Pressione [ENTER]'); readkey; end; PROCEDURE Verifica; Var Existe:boolean; Prod:integer; begin clrscr; reset (arq); Writeln ('DIGITE O CODIGO DO PRODUTO'); writeln; readln(prod); Existe := False; While not eof(arq) do begin read (arq,aux); if aux.cod = prod then Existe := true; end; If Existe then begin clrscr; writeln ('O PRODUTO JA ESTA CADASTRADO '); reset(arq); seek(arq,prod); writeln; read(arq,aux); Writeln('Codigo........',aux.cod); Writeln('Descricao.....',aux.descricao); Writeln('Estoque.......',aux.qtd:4:2); Writeln('Preco.........',aux.preco:6:2); end ELSE begin clrscr; textcolor(10); writeln (' O PRODUTO NAO ESTA CADASTRADO '); textcolor(15); end; writeln; Write('Pressione [ENTER]'); readkey; END; PROCEDURE Imp_Total; Var linhas:integer; begin clrscr; reset(arq); linhas:=1; WRITELN ('ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍ»'); WriteLN ('º CODIGO º DESCRICAO º VALOR TOTALº ESTOQ º'); WHILE not eof(arq) DO Begin if linhas > 20 then begin Writeln (' Pressione qualquer tecla para continuar...'); readkey; linhas:=0; clrscr; end; read (arq,aux); gotoxy(1,linhas+2); Write ('º ',aux.cod); gotoxy(10,linhas+2); Write ('º ',aux.descricao); gotoxy(58,linhas+2); Write ('º ',aux.QTD*AUX.QTD:8:2); gotoxy(70,linhas+2); Write (' º',aux.QTD:7:2,'º '); linhas:=linhas+1; end; WRITEln('ÈÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍͼ'); writeln; Write('Pressione [ENTER]'); readkey; end; PROCEDURE ESTOQUE; var i:integer; Begin reset (arq); assign(preco5,'a:\cadprod5.db'); { Arquivo com produtos que custam < R$5.00 } reset(preco5); clrscr; i:=0; IF filesize(preco5)=0 then rewrite(preco5); Repeat read(arq,aux); if aux.PRECO < 5 then begin writeln (' Produto......',aux.descricao); Writeln (' Estoque......',aux.qtd:6:2); Writeln (' Preco........',aux.preco:6:2); writeln ('ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ'); write(preco5,aux); i:=i+1; if i>4 then begin i:=0; writeln('Pressione qualquer tecla para continuar'); readkey; end; end; until eof(arq); writeln; Write('Pressione [ENTER]'); readkey; readln; end; BEGIN { PROGRAMA PRINCIPAL } Assign (arq,'c:\roberto\cadastro.db'); {Casdastro principal} reset(arq); IF filesize(arq)=0 then rewrite(arq); clrscr; while op<>'6' do begin clrscr; textcolor(0); textbackground(7); writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»'); writeln('º MENU º'); writeln('º º'); writeln('º 1.CADASTRAR º'); writeln('º 2.IMPRIMIR º'); writeln('º 3.PESQUISA º'); writeln('º 4.IMPRIMIR VALOR TOTAL DE CADA PRODUTO E ESTOQUE º'); writeln('º 5.LISTAR PRODUTOS COM VALOR < R$ 5.00 º'); writeln('º 6.SAIR º'); writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ'); textcolor(15); textbackground(4); writeln; writeln; writeln; writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»'); writeln('º PROGRAMA DESENVOLVIDO POR: º'); writeln('º º'); writeln('º º'); writeln('º ROBERTO JUNDI FURUTANI 0061/02 º'); writeln('º º'); writeln('º MATHEUS ROCHA 0731/02 º'); writeln('º º'); writeln('º CIENCIA DA COMPUTACAO - NOTURNO º'); writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ'); textcolor(15); textbackground(0); gotoxy(1,11); op:=readkey; case op of '1':Cadastrar; '2':Imprimir; '3':Verifica; '4':Imp_Total; '5':Estoque; '6':begin Write(' Saindo....'); delay(500); end else begin textcolor(10); Write (' Opcao Invalida'); delay(1000); textcolor(15); end; end; end; END.