Ir ao conteúdo
  • Cadastre-se

VisualG Adicionar um menu de alteração de Dados no VisualG!!


Posts recomendados

Pessoal estou realizando um projeto no visualG para informar um sistemas de multas e eu queria adicionar um menu dizendo para alterar as multas, quem puder ajudar agradeço, pretendo fazer Um "CRUD"

E também um menu para excluir a multa que foi inserida

<>

 

O login para entrar é Nicolas e a senha é 1234.

 

Meu discord é nicolaszin#4707

 

Algoritmo "Sistema_de_Multas_de_Transito"

 

tipo

   Usuario = registro

      nome: caractere

      senha: caractere

   fimregistro

 

   TipoMulta = registro

      descricao: caractere

      valor: real

      pontosCarteira: inteiro

   fimregistro

 

   Multa = registro

      nome, modelo, placa : caractere

      carteira, grau: inteiro

   fimregistro

Var

   i, comandos, carteira, id, grau : inteiro

   qtnTent, qtnMult, qtnMultLv, qtnMultMd, qtnMultGv, qtnMultGvs : inteiro

   login, senha, nome, modelo, placa, seguir, apresentar : caractere

   vMult, vltMult, vlLeve, valorM, valorGv, valorGvs : real

   usuarioValido, encerrar, sequencia, escolhido : logico

   usuarios: vetor[1..5] de Usuario

   tiposMulta: vetor[1..4] de TipoMulta

   multas: vetor[1..100] de Multa

   posicao: inteiro

 

funcao telainicial(): caractere

inicio

   escreval("====================")

   escreval(" AUTOP ")

   escreval("====================")

fimfuncao

 

procedimento inicializarSistema()

inicio

   //Posição inicial do vetor de multas

   posicao := 0

 

   //Login dos usuarios

   usuarios[1].nome := "icaro"

   usuarios[1].senha := "1234"

   usuarios[2].nome := "jlucas"

   usuarios[2].senha := "1234"

   usuarios[3].nome := "leandro"

   usuarios[3].senha := "1234"

   usuarios[4].nome := "nicolas"

   usuarios[4].senha := "1234"

   usuarios[5].nome := "vitor"

   usuarios[5].senha := "1234"

 

   //Tipos de multa

   tiposMulta[1].descricao := "LEVE"

   tiposMulta[1].valor := 88.38

   tiposMulta[1].pontosCarteira := 3

   tiposMulta[2].descricao := "MEDIA"

   tiposMulta[2].valor := 130.16

   tiposMulta[2].pontosCarteira := 4

   tiposMulta[3].descricao := "GRAVE"

   tiposMulta[3].valor := 192.23

   tiposMulta[3].pontosCarteira := 5

   tiposMulta[4].descricao := "GRAVISSIMA"

   tiposMulta[4].valor := 297.47

   tiposMulta[4].pontosCarteira := 7

fimprocedimento

Inicio

   inicializarSistema();

   repita

      escreval("")

      apresentar := telainicial

      escreval(apresentar)

      escreval(apresentar)

      se (qtnTent = 2) entao

         escreval(" * Você tem apenas mais UMA TENTATIVA!")

      fimse

      //Login com validacão de senha

      escreva(" -> Login: ")

      leia(login)

      escreva(" -> Senha: ")

      leia(senha)

 

      usuarioValido := falso

 

      para i de 1 ate 5 faca

         se (usuarios[i].nome = login) e (usuarios[i].senha = senha) entao

            usuarioValido := verdadeiro

            id := i

         fimse

      fimpara

      se (não usuarioValido) entao

         qtnTent := qtnTent + 1

 

         escreval(" USUÁRIO E/OU SENHA INVÁLIDOS")

         escreval("")

         timer(100)

         se (qtnTent <> 3) entao

            escreval("Tente novamente em instantes...")

         fimse

         timer(1100)

         timer(0)

         limpatela

      fimse

   ate (usuarioValido) ou (qtnTent = 3)

 

   se (qtnTent = 3) e (não usuarioValido) entao

      encerrar := verdadeiro

   senao

      timer(100)

      escreval("Entrando...")

      timer(700)

      timer(0)

   fimse

   enquanto (encerrar = falso) faca

      limpatela

      escreval(apresentar)

      //Menu Principal

      escreval(" +--------------------------------------------------+")

      escreval(" | Bem vindo ao AUTOP - Sistemas de Placas e Multas |")

      escreval(" | Escolha o serviço que deseja realizar: |")

      escreval(" +--------------------------------------------------+")

      escreval(" | [1] Inserir multas |")

      escreval(" | [2] Gerar relatório |")

      escreval(" | [3] Sair |")

      escreval(" +--------------------------------------------------+")

      escreva("Opcão desejada: ")

      leia(comandos)

      se (comandos < 1) ou (comandos > 3) entao

         repita

            escreva("Digite uma opcão VÁLIDA: ")

            leia(comandos)

         ate (comandos >= 1) e (comandos <= 3)

      fimse

      se (comandos = 1) entao

         limpatela

         escreval(apresentar)

         //Dados do infrator

         escreval("Qual o nome completo do infrator? ")

         escreva("- ")

         leia(nome)

         se (nome = "") entao

            repita

               escreval("Digite um NOME VÁLIDO... ")

               escreva("- ")

               leia(nome)

            ate (nome <> "")

         fimse

         nome := Maiusc(nome)

         escreval("Qual o número da carteira do infrator EX:(123456)? ")

         escreva("- ")

         leia(carteira)

 

         //Validação do formato da carteira

         se ((compr(Numpcarac(carteira))) <> 6) entao

            repita

               escreval("Digite o número da carteira corretamente (formato: 123456)")

               escreva("- ")

               leia(carteira)

            ate ((compr(Numpcarac(carteira))) = 6 )

         fimse

         limpatela

         escreval(apresentar)

         //Dados do veículo

         escreval("Qual a placa do veículo EX:(ABC1234)? ")

         escreva("- ")

         leia(placa)

         //Validação do formato da placa

         se ((compr(Numpcarac(placa))) <> 7) entao

            repita

               escreval("Digite a placa corretamente (formato ABC1234)")

               escreva("- ")

               leia(placa)

            ate ((compr(Numpcarac(placa))) = 7 )

         fimse

         placa := Maiusc(placa)

         escreval("Qual o modelo do veículo? ")

         escreva("- ")

         leia(modelo)

         modelo := Maiusc(modelo)

         limpatela

         escreval(apresentar)

         //Menu multas

         escreval(" +--------------------------------+")

         escreval(" | GRAVIDADE DE MULTAS |")

         escreval(" +--------------------------------+")

         para i de 1 ate 4 faca

            escreval(" | [",i:1,"] ",tiposMulta[i].descricao," R$", tiposMulta[i].valor," |")

         fimpara

         escreval(" +--------------------------------+")

         //Para não gerar conflito nas definições do escolha

         grau := 0

         escolhido := falso

         repita

            escreval("")

            escreval("Qual o tipo da multa do infrator? ")

            escreva("-> ")

            leia(grau)

            se (grau >= 1) e (grau <= 4) entao

               escolhido := verdadeiro

            senao

               escreval("TIPO INVÁLIDO!!!")

            fimse

            se (escolhido = verdadeiro) entao

               interrompa

            fimse

         ate falso

 

         posicao := posicao + 1

         multas[posicao].nome := nome

         multas[posicao].modelo := modelo

         multas[posicao].placa := placa

         multas[posicao].carteira := carteira

         multas[posicao].grau := grau

 

 

         limpatela

         escreval(apresentar)

 

         //Relatorio do infrator

         escreval(" + - - - - - - - - - - - - - - - - - - - - - - - - - - +")

         escreval(" | NOTIFICAÇÃO DE AUTUAÇÃO |")

         escreval(" | POR INFRAÇÃO À LEGISLAÇÃO DE TRÂNSITO |")

         escreval(" + - - - - - - - - - - - - - - - - - - - - - - - - - - +")

         escreval(" Nome: ", nome, " | CNH:", carteira )

         escreval(" Modelo do veiculo: ", modelo, " | Placa: ", placa )

         escreval(" Tipo da multa: ", tiposMulta[grau].descricao," | Pontos:", tiposMulta[grau].pontosCarteira," | Valor: ", tiposMulta[grau].valor:2:2)

         escreval(" ________")

         escreval(" * Notificação cadastrada por usuário de id [", usuarios[id].nome,"]*")

         escreval("")

         escreval("Aperte ENTER para da sequência:")

         leia(sequencia)

      senao

         se (comandos = 2) entao

            limpatela

            escreval(apresentar)

 

            qtnMultLv := 0

            qtnMultMd := 0

            qtnMultGv := 0

            qtnMultGvs := 0

            vltMult := 0

            para i de 1 ate posicao faca

               escolha (multas[i].grau)

               caso 1

                  qtnMultLv := qtnMultLv + 1

                  vlLeve := tiposMulta[multas[i].grau].valor

               caso 2

                  qtnMultMd := qtnMultLv + 1

                  valorM := tiposMulta[multas[i].grau].valor

               caso 3

                  qtnMultGv := qtnMultLv + 1

                  valorGv := tiposMulta[multas[i].grau].valor

               caso 4

                  qtnMultGvs := qtnMultLv + 1

                  valorGvs := tiposMulta[multas[i].grau].valor

               fimescolha

               vltMult := vltMult + tiposMulta[multas[i].grau].valor

            fimpara

 

            //Relatório Geral

            escreval(" + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +")

            escreval(" | RELATÓRIO AUTOP-PDF |")

            escreval(" + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +")

            escreval(" - Foi aplicado", qtnMultLv, " multa(s) LEVE, arrecadando: R$ ", vlLeve:2:2)

            escreval(" - Foi aplicado", qtnMultMd, " multa(s) MEDIA, arrecadando: R$ ", valorM:2:2)

            escreval(" - Foi aplicado", qtnMultGv, " multa(s) GRAVE, arrecadando: R$ ", valorGv:2:2)

            escreval(" - Foi aplicado", qtnMultGvs, " multa(s) GRAVISSIMA, arrecadando: R$ ", valorGvs:2:2)

            escreval("")

            escreval(" TOTAL DE MULTAS", posicao, " | TOTAL ARRECADADO: R$ ", vltMult:2:2)

            escreval(" ________")

            escreval("")

            escreval("")

            escreval("- Digite 1 para CONTINUAR e 2 para FINALIZAR.")

            escreva("Opção desejada: ")

            leia(seguir)

            se (seguir = "2") entao

               encerrar := verdadeiro

               timer(0)

               escreval("FINALIZANDO PROCEDIMENTO...")

               timer(500)

               limpatela

               timer(0)

            fimse

         senao

            se (comandos = 3) entao

               timer(0)

               escreval("FINALIZANDO PROCEDIMENTO...")

               timer(500)

               limpatela

               timer(0)

               encerrar := verdadeiro

            fimse

         fimse

      fimse

   fimenquanto

   limpatela

   escreval(apresentar)

   apresentar := telainicial

   escreval(apresentar)

   se (qtnTent <> 3) entao

      escreval(" * PROCEDIMENTO FINALIZADO *")

   senao

      escreval(" * ACESSO NEGADO *")

   fimse

Fimalgoritmo

 

https://docs.google.com/document/d/18Ic4xA-Klg6SG2OKtptHZ-A6vSdZvzBBXx2BtyX_XkU/edit?usp=drivesdkMeu projeto VisualG.pdf

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...