Program Sistemas_de_Vendas; const max = 100; type produtosRegistro = record // Registros de clientes nomeProduto:string; preco: real; quantidade,codigo: integer; end; clientesRegistro = record // Registros de Produtos nomeCliente, cpf, rg, telefone: string; end; var posicaoCliente, posicaoProduto, alternativa, indiceProduto, codigo_procura, quantidade_comprada: integer; clientes:array[1..max] of clientesRegistro; produtos:array[1..max] of produtosRegistro; clienteNovo:char; usuario,senha: string; procedure cadastro_clientes; // Procedimento para cadastro de clientes begin clrscr; if (posicaoCliente <= max) then begin writeln('**************************************************************'); writeln('********************* CADASTRO PRODUTO ***********************'); writeln; writeln('Nome: '); gotoxy(35,4); writeln('Cpf: '); writeln('RG: '); gotoxy(35,5); writeln('Telefone: '); writeln('**************************************************************'); gotoxy(7,4); readln(clientes[posicaoCliente].nomeCliente); gotoxy(40,4); readln(clientes[posicaoCliente].cpf); gotoxy(5,5); readln(clientes[posicaoCliente].rg); gotoxy(45,5); readln(clientes[posicaoCliente].telefone); posicaoCliente := posicaoCliente + 1; readln; clrscr; gotoxy(20,10); write('Deseja cadastrar um novo cliente?'); gotoxy(24,11); write('1 - Sim ou 2 - Não: '); read(alternativa); if (alternativa = 1) then begin cadastro_clientes; end; clrscr; end else begin writeln('Banco de Dados Cheio'); readln; end; end; procedure cadastro_produtos; // Procedimento para cadastro de produtos begin clrscr; if (posicaoProduto <= max) then begin writeln('**************************************************************'); writeln('********************* CADASTRO PRODUTO ***********************'); writeln; writeln('Nome Produto: '); gotoxy(35,4); writeln('Código: '); writeln('Preço: '); gotoxy(35,5); writeln('Quantidade: '); writeln('**************************************************************'); gotoxy(15,4); readln(produtos[posicaoProduto].nomeProduto); gotoxy(43,4); readln(produtos[posicaoProduto].codigo); gotoxy(8,5); readln(produtos[posicaoProduto].preco); gotoxy(48,5); readln(produtos[posicaoProduto].quantidade); posicaoProduto := posicaoProduto + 1; readln; clrscr; gotoxy(20,10); write('Deseja cadastrar um novo produto?'); gotoxy(24,11); write('1 - Sim ou 2 - Não: '); read(alternativa); if (alternativa = 1) then begin cadastro_produtos; end; clrscr; end else begin writeln('Estoque Lotado'); readln; end; end; procedure cadastro_vendas; // Procedimento para cadastro de vendas DÚVIDA begin writeln; writeln('Produtos Disponíveis:'); for indiceProduto:=1 to (posicaoProduto - 1) do begin writeln; writeln('Nome: ',produtos[indiceProduto].nomeProduto); writeln('Código: ',produtos[indiceProduto].codigo); writeln('Quantidade em estoque: ',produtos[indiceProduto].quantidade); writeln; writeln('----------------'); writeln; end; write('Digite o código do produto para venda: '); readln(codigo_procura); write('Quantidade desejada: '); readln(quantidade_comprada); clrscr; end; procedure relatorio_clientes; // Procedimento para relatório de clientes var indiceCliente: integer; begin clrscr; writeln('*******************************************************************'); writeln('********************* RELATÓRIO DE CLIENTES ***********************'); writeln; for indiceCliente:=1 to (posicaoCliente - 1) do begin writeln('Nome:',clientes[indiceCliente].nomeCliente); writeln('CPF:',clientes[indiceCliente].cpf); writeln('RG:',clientes[indiceCliente].rg); writeln('Telefone:',clientes[indiceCliente].telefone); writeln('-----------------------------------'); writeln; end; readln; end; procedure relatorio_produtos; // Procedimento para relatório de produtos begin clrscr; writeln('*******************************************************************'); writeln('********************* RELATÓRIO DE PRODUTOS ***********************'); writeln; for indiceProduto:=1 to (posicaoProduto - 1) do begin writeln('Nome Produto: ',produtos[indiceProduto].nomeProduto); writeln('Código: ',produtos[indiceProduto].codigo); writeln('Preço: ',produtos[indiceProduto].preco:2:2); writeln('Quantidade: ',produtos[indiceProduto].quantidade); writeln('-----------------------------------'); writeln; end; readln; end; procedure tela_inicial; //Procedimento do Menu Principal var opcao: integer; begin opcao:=0; while(opcao<>9) do begin writeln(' MENU PRINCIPAL '); writeln(' '); writeln(' '); writeln(' SEJA BEM VINDO ',usuario ); writeln(' '); writeln(' '); writeln(' -----------------------------------'); writeln(' | [1] Cadastrar Clientes |'); writeln(' | [2] Cadastrar Produtos |'); writeln(' | [3] Cadastrar Vendas |'); writeln(' | [4] Relatório de Clientes |'); writeln(' | [5] Relatório de Produtos |'); writeln(' | [6] Emitir Nota Fiscal |'); writeln(' | [9] Encerrar |'); writeln(' ----------------------------------- '); write(' Escolha a opção desejada => '); readln(opcao); clrscr; case opcao of 1: begin cadastro_clientes; end; 2: begin cadastro_produtos; end; 3: begin cadastro_vendas; end; 4: begin relatorio_clientes; end; 5: begin relatorio_produtos; end; 9: writeln('Acabou o Programa'); else writeln('Opção inválida'); opcao:=0; readln; end; end; end; // Programa Principal Begin writeln('-----------------------------------------------------------------------------'); writeln('| |'); writeln('| |'); writeln('| |'); writeln('| |'); writeln('| Usuário: |'); writeln('| Senha: |'); writeln('| |'); writeln('| |'); writeln('| |'); writeln('| |'); writeln('| |'); writeln('-----------------------------------------------------------------------------'); gotoxy(42,6); readln(usuario); gotoxy(42,7); readln(senha); clrscr; posicaoCliente := 1; posicaoProduto := 1; tela_inicial; End.