Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Algoritmo "IJ Construções" // Função : Gerenciar produtos de uma loja de material de construções // Autor(a) : Josivan Junior // Auxiliar : Italo Rhamon // Data inicio : 15/05/2016 // Data da apresentação : 07/06/2016 // Professor : Jeovane Reges tipo produto = registro nome: caractere qnt_produto: real preco: real nova_qnt_produto : inteiro novo_nome : caractere novo_valor : real fimregistro Var // Seção de Declarações das variáveis globais produtos: vetor [1..6] de produto codigos : vetor [1..6] de caractere indice: inteiro max_itens : inteiro procedimento titulo() // Cabeçalho para aparecer em toda tela inicio escreval("--------------------------------------------------------------") escreval("| IJ CONSTRUÇÕES® |") escreval("| Vendendo sonhos, construindo emoções |") escreval("--------------------------------------------------------------") fimprocedimento procedimento Menu() // Menu principal var op: inteiro esc: caractere entrar : caractere inicio max_itens <- 6 enquanto (op <> 7) faca titulo() escreval ("| 1- Cadastrar |") escreval ("| 2- Listar |") escreval ("| 3- Buscar |") escreval ("| 4- Vender |") escreval ("| 5- Alterar |") escreval ("| 6- Excluir |") escreval ("| 7- Sair |") escreval ("--------------------------------------------------------------") escreval () escreva (" Escolha uma opção:") leia (op) limpatela escolha (op) caso 1 Cadastrar() caso 2 Listar() caso 3 Busca() caso 4 Venda() caso 5 Alterar() caso 6 Excluir() caso 7 limpatela titulo() escreval("OBRIGADO POR USAR NOSSO SISTEMA!") fimescolha se (op <> 7) entao limpatela titulo() escreva("Retornar ao menu inicial? [S/N]: ") leia(esc) se (esc = "s") entao limpatela senao op <- 7 fimse fimse fimenquanto fimprocedimento funcao PESQUISA(xcod : caractere): Inteiro Var p_Item, XP : inteiro Inicio XP := 0 para p_Item de 1 ate Max_itens faca // LÊ TODOS OS ELEMENTOS se (xcod = Codigos[p_Item]) entao // SE ACHÁ-LO VOLTA O ELEMENTO XP := p_Item fimse fimpara retorne XP // retorna o conteúdo fimfuncao procedimento Cadastrar() // Processo de cadastro var xproduto : produto xpro : logico xcodigo,op,esc : caractere p1: inteiro iPESQ : inteiro inicio titulo() xpro <- Verdadeiro Enquanto xpro faca se (indice > max_itens) entao // Verificar se ainda há espaço para cadastrar um novo produto escreval("Limite de cadastros atingido") escrevaL() escreval("Pressione [ENTER] para continuar") leia(p1) xpro <- falso escreval() senao escreval (" CADASTRAR NOVO PRODUTO ") escreval () fimse xpro <- Verdadeiro limpatela titulo() escreval (" CADASTRAR NOVO PRODUTO ") escreval () escreval("Descrição: ") leia(xproduto.nome) escreva ("Quantidade: ") leia(xproduto.qnt_produto) escreva("Preço unidade: ") leia(xproduto.preco) escreval ("Codigo de referencia:") leia(xcodigo) iPesq <- PESQUISA(xcodigo) SE ((iPesq = 0) E (xcodigo <> "0")) ENTAO indice <- indice + 1 se (indice > max_itens) entao limpatela titulo() escreval("Limite de cadastros atingido") escreval("Pressione [ENTER] para continuar") leia(p1) xpro <- falso indice <- indice - 1 senao produtos[indice] <- xproduto codigos[indice] <- xcodigo fimse senao SE (xcodigo = "0") ENTAO SE indice > 0 ENTAO Indice := indice - 1 FIMSE xpro := Falso SENAO // Não permite cadastrar 2 produtos com o mesmo código LIMPATELA titulo() Escreval(" ") Escreva("Esse Código já esta cadastrado!") Escreval(" ") fimse fimse escreval() escreval ("Deseja cadastrar outro produto?[S/N]") leia(op) se (op = "S") entao limpatela xpro <- verdadeiro senao se (op = "N") entao limpatela titulo() xpro <- falso fimse fimse fimenquanto fimprocedimento procedimento Listar() // Listagem var i: inteiro valor_total: real inicio se (indice = 0) entao escreval ("Nenhum produto cadastrado") senao para i de 1 ate indice faca valor_total <- (produtos[i].qnt_produto * produtos[i].preco) escreval ("Descrição: ",produtos[i].nome) escreval ("Codigo: ",codigos[i]) escreval ("Quantidade: " ,produtos[i].qnt_produto) escreval ("Preço unidade: R$",produtos[i].preco,",00") escreval ("Valor Total: R$",valor_total,",00") escreval ("-----------------------------------") fimpara fimse fimprocedimento Procedimento Busca() // Consultar produto através do codigo Var encontrado : Logico cPesq : inteiro xcodigo,esc: caractere valor_total : real Inicio limpatela titulo() encontrado := VERDADEIRO enquanto encontrado faca se indice < 1 entao // Verifica se há produto cadastrado encontrado := Falso escreval("Nenhum produto cadastrado") senao limpaTela titulo() escreval (" BUSCAR PRODUTO ") escreval () escreva("Digite o codigo do produro que deseja encontrar: ") leia(xcodigo) se (xcodigo = "0") entao encontrado := Falso senao limpatela titulo() cPesq := PESQUISA(xcodigo) se cPesq > 0 entao // O produto existe no vetor valor_total := (produtos[cpesq].qnt_produto * produtos[cpesq].preco) // Informações referentes ao produto do codigo usado para buscar escrevaL("Descrição : ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].qnt_produto) escreval("Preço da unidade : R$",produtos[cPESQ].preco) escreval("Preço Total: R$",valor_total) escreval(" ") senao // O produto não existe no vetor limpatela titulo() escrevaL("Produto não encontrado!") fimse fimse escreva("Deseja continuar pesquisa ? [S/N]: ") leia(esc) se (esc = "N") entao limpatela encontrado := FALSO titulo() senao limpatela encontrado := VERDADEIRO fimse fimse fimenquanto fimprocedimento Procedimento Venda() // Vender (Alterar quantidade disponível no estoque) Var encontrado : Logico cPesq,qnt_venda : inteiro xcodigo,esc,sc: caractere total,valor_total : real Inicio limpatela titulo() encontrado := VERDADEIRO enquanto encontrado faca se indice < 1 entao // Não há nenhum produto cadastrado encontrado := Falso escreval("Nenhum produto encontrado") senao // Há produto(s) cadastrado(s) LIMPATELA titulo() escreval (" VENDER PRODUTO ") escreval () escreva("Digite o codigo do produro que deseja vender: ") leia(xcodigo) se (xcodigo = "0") entao encontrado := Falso senao limpatela titulo() cPesq := PESQUISA(xcodigo) se cPesq > 0 entao valor_total := (produtos[cpesq].qnt_produto * produtos[cpesq].preco) // Informações do produto referente ao codigo usado para buscar(vender) escrevaL("Descrição: ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].qnt_produto) escreval("Preço unidade : R$",produtos[cPESQ].preco) escreval("Preço Total: R$",valor_total) escreval(" ") escreval ("Digite a quantidade de produtos que deseja vender:") leia(qnt_venda) se (qnt_venda > produtos[cPesq].qnt_produto) entao // O numero digitado é maior que a quantidade do produto disponivel no estoque limpatela titulo() escreval("Não temos essa quantidade no estoque") escreval() escreva("Deseja realizar outra venda ? [S/N]: ") leia(esc) limpatela se (esc = "N") entao limpatela encontrado := FALSO titulo() senao limpatela titulo() encontrado := VERDADEIRO fimse senao escreval() escreval ("Confirmar venda:[S/N]") leia(sc) se (sc = "S") entao limpatela titulo() escreval ("Produto Vendido") escreval ("Quantidade de produtos Vendidos:",qnt_venda) escreval("Preço da venda: R$",qnt_venda * produtos[cpesq].preco,",00") escreval() produtos[cpesq].qnt_produto <- (produtos[cpesq].qnt_produto - qnt_venda) total <- produtos[cpesq].qnt_produto * produtos[cpesq].preco // Dados atualizados após a venda (alteração da quantidade) escreval ("Descrição: ",produtos[cpesq].nome) escreval ("Quantidade: ",produtos[cpesq].qnt_produto) escreval ("Preço unidade: R$",produtos[cpesq].preco,",00") escreval ("Preço Total: R$",total,",00") escreval() escreval() escreva("Deseja realizar outra venda ? [S/N]: ") leia(esc) se (esc = "N") entao limpatela encontrado := FALSO senao limpatela encontrado := VERDADEIRO fimse fimse fimse senao escrevaL() escrevaL("Produto não encontrado!") encontrado := falso limpatela titulo() escreva("Deseja validar outra venda ? [S/N]: ") leia(esc) se (esc = "N") entao limpatela encontrado := FALSO senao limpatela encontrado := VERDADEIRO fimse fimse fimse fimse se (sc = "N") entao escreva("Deseja realizar outra venda ? [S/N]: ") leia(esc) se (esc = "N") entao limpatela encontrado := FALSO senao limpatela encontrado := VERDADEIRO fimse fimse fimenquanto fimprocedimento Procedimento Alterar() // Alterar qualquer informação de um determinado produto Var encontrado : Logico cPesq,opcao : inteiro xcodigo,esc: caractere valor_total : real novo_total : real Inicio limpatela titulo() encontrado := VERDADEIRO enquanto encontrado faca se indice = 0 entao // não há nenhum produto cadastrado encontrado := Falso escreval("Nenhum produto encontrado") senao // Há produto(s) cadastrado(s) limpaTela titulo() escreval (" ALTERAR INFORMAÇÕES DO PRODUTO ") escreval () escreva("Digite o codigo do produto: ") leia(xcodigo) se (xcodigo = "0") entao encontrado := Falso senao cPesq := PESQUISA(xcodigo) se cPesq > 0 entao valor_total := (produtos[cpesq].qnt_produto * produtos[cpesq].preco) // Informações do produto referente ao codigo buscado para a realização da venda escrevaL("Descrição: ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].qnt_produto) escreval("Preço da unidade : R$",produtos[cPESQ].preco) escreval("Valor Total: R$",valor_total) escreval() escreval ("1- Alterar Descrição:") escreval ("2- Alterar Quantidade:") escreval ("3- Alterar Preço unidade:") escreval() escreval("Digite a opção que deseja alterar:") leia(opcao) se (opcao > 3) entao limpatela titulo() escreval("Opção Inválida") fimse escolha (opcao) caso 1 limpatela titulo() escreval (" ALTERAR DESCRIÇÃO ") escreval() escreval("Digite a nova descrição do produto:") leia(produtos[cPESQ].novo_nome) produtos[cPESQ].nome <- produtos[cPESQ].novo_nome escrevaL("Descrição: ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].qnt_produto) escreval("Preço unidade : R$",produtos[cPESQ].preco) escreval("Valor Total: R$",valor_total) escreval() caso 2 limpatela titulo() escreval (" ALTERAR QUANTIDADE ") escreval() escreval("Digite a nova quantidade:") leia(produtos[cPESQ].nova_qnt_produto) produtos[cPESQ].qnt_produto <- produtos[cPESQ].nova_qnt_produto novo_total <- produtos[cPESQ].nova_qnt_produto * produtos[cPESQ].preco escrevaL("Descrição: ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].nova_qnt_produto) escreval("Preço unidade: R$",produtos[cPESQ].preco) escreval("Valor Total: R$",novo_total) escreval() caso 3 limpatela titulo() escreval (" ALTERAR VALOR DO PRODUTO ") escreval() escreval("Digite o novo valor do produto:") leia(produtos[cPESQ].novo_valor) produtos[cPESQ].preco <- produtos[cPESQ].novo_valor novo_total <- produtos[cPESQ].novo_valor * produtos[cPESQ].qnt_produto escrevaL("Descrição : ",produtos[cPESQ].nome) escreval("Quantidade no estoque : ",produtos[cPESQ].qnt_produto) escreval("Preço unidade: R$",produtos[cPESQ].novo_valor) escreval("Valor Total: R$",novo_total) escreval() limpatela titulo() escrevaL("Descrição: ",produtos[cPESQ].nome) escreval("Quantidade: ",produtos[cPESQ].qnt_produto) escreval("Preço unidade: R$",produtos[cPESQ].preco) escreval("Valor Total: R$",valor_total) escreval() fimescolha senao escrevaL() escrevaL("Produto não encontrado") fimse fimse escreva("Deseja alterar outro produto? [S/N]: ") leia(esc) se (esc = "N") entao limpatela titulo() encontrado := FALSO senao limpatela encontrado := VERDADEIRO fimse fimse fimenquanto fimprocedimento funcao RemoverMeio(): caractere var temp: caractere inicio temp <- "" produtos[indice].nome <- "" produtos[indice].qnt_produto <- 0 produtos[indice].preco <- 0 codigos[indice] <- "" indice <- indice - 1 retorne temp fimfuncao funcao Removerultimo(): caractere var temp: caractere inicio temp <- "" produtos[indice].nome <- "" produtos[indice].qnt_produto <- 0 produtos[indice].preco <- 0 codigos[indice] <- "" indice <- indice - 1 retorne temp fimfuncao Procedimento Excluir() var enc : Logico op2,op3,xcodigo,esc : caractere op1,pesq,i : Inteiro inicio titulo() enc := VERDADEIRO enquanto enc faca se indice < 1 ENTAO enc := Falso escreval("Nenhum produto cadastrado") senao escreval (" EXCLUIR PRODUTO ") escreval () escreval (" 1. Excluir ultimo produto cadastrado") escreval (" 2. Excluir produto pelo codigo de referência") escreval () escreva(" Escolha uma das opções : ") leia(op1) limpatela titulo() escolha (op1) caso 1 escreval("Tem certeza que deseja excluir <S/N> ", produtos[indice].nome, " ? ") leia(op2) se (op2 = "N") entao escreva() enc := falso senao escreval (Removerultimo()) escreval("Produto removido") fimse caso 2 escreva("Codigo: ") leia(xcodigo) pesq := PESQUISA(xcodigo) escreval("Tem certeza que deseja excluir ", produtos[Pesq].nome, " ? [S/N]") leia(op3) se (op3 = "N") entao escreva() enc := falso limpatela titulo() senao limpatela titulo() para i de pesq ate indice - 1 faca produtos[pesq] <- produtos[pesq + 1] codigos[pesq] <- codigos[pesq + 1] fimpara escreval(RemoverMeio()) escreval("Produto removido") fimse fimescolha escreva("Continuar a excluir <S/N> ? : ") leia(esc) se (esc = "N") entao limpatela enc := FALSO titulo() senao limpatela titulo() enc := VERDADEIRO fimse fimse fimenquanto fimprocedimento procedimento Login() var usuario, senha, entrar :caractere inicio titulo() escreval("Login do administrador") escreval() escreva("Usuário:") leia(usuario) escreva("Senha:") leia(senha) enquanto ((usuario <> "italo" ) ou (senha <> "1234")) e ((usuario <> "junior" ) ou (senha <> "1234")) faca limpatela titulo() escreva ("ACESSO NEGADO!") escreval("") escreva ("Digite seu usuário e senha") escreval("") escreva("Usuário:") leia(usuario) escreva("Senha:") leia(senha) fimenquanto se ((usuario = "italo") e (senha = "1234")) ou ((usuario = "junior") e (senha = "1234")) entao limpatela titulo() escreval("ACESSO PERMITIDO!") escreval() escreva("Pressione [ENTER] para continuar") leia(entrar) limpatela fimse fimprocedimento Inicio Mudacor("Azul","FRENTE") // Mudacor("Branco","FUNDOS") Login() Menu() Fimalgoritmo
Compartilhar