Jump to content
  • 0
lulicanunes

preciso de ajuda para realizar este programa, no code blocks

Question

- Escreva o programa em linguagem C - É permitido o uso do CodeBlocks - Envie o arquivo, no local apropriado Descrição. Faça um programa em C que calcule o imposto de renda para um conjunto de 5 pessoas (contribuintes). Os dados de cada pessoa devem ser manipulados através de uma estrutura que contém os campos para o nome (string), sobrenome (string), salário mensal (float), deduções (float) e saldo (float). A leitura será feita através de um arquivo texto contendo informações referentes aos três primeiros campos da estrutura. Ao final, o saldo de cada contribuinte deve ser exibido na tela junto com seu nome e sobrenome. OBS.: As instruções a seguir implementam a lógica para resolver esse problema.

Instruções. 1.

(1,0) Defina a estrutura para armazenar os dados dos contribuintes.

2. (1,0) Declare um vetor de estruturas com 5 posições.

3. (3,0) Faça a leitura dos dados do arquivo de entrada, armazenando-os nas respectivas posições do vetor criado.

OBS.: Assuma que o arquivo de entrada tem o nome "imposto.txt" e que cada registro (ou linha) desse arquivo tem o formato "%s\t%s\t%f\t%f\n" (i.e., os dados estão separados pelo caractere TAB - "\t").

Exemplos de possíveis registros do arquivo de entrada:

Pedro      Silva      2200.00      980.00

Paulo      Santos    5400.00     2230.00

 

(3,0) Após concluir a leitura dos dados, crie uma função que será chamada somente uma vez e que receba o vetor de structs e, a partir das informações de salário e deduções, calcule o saldo (imposto devido ou restituição) a ser pago para cada pessoa de acordo com a seguinte fórmula Saldo = Deduções - (12 * Salário mensal * Alíquota)

O valor da alíquota depende do salário mensal de cada pessoa, com a seguinte divisão:

 

Salário Mensal                                           Alíquota

Abaixo de R$ 2.826                                      0.075                            

De R$ 2.826 até R$ 4.664                            0.225

Acima de R$ 4.664                                        0.275

 

(2,0) Imprima na tela um relatório contendo o nome, o sobrenome e o saldo de todos os contribuintes. Exemplo de execução. Resultado considerando o arquivo de entrada fornecido. Nome: João

Sobrenome: Silva

Saldo: 9820.00

 

Nome: Osvaldo

Sobrenome: Aranha

Saldo: 6480.00

 

Nome: Pedro

Sobrenome: Alves

Saldo: 4542.00

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By lsramos
      Tenho um DataGridView que exibe uma tabela do banco de dados. Até aí tudo bem :)
      A questão é que o cabeçalho (primeira linha do DataGrid) traz o nome das colunas da tabela do banco (exemplo: matricula, nome, data_nascimento, etc).
      Eu queria saber se é possível, até para melhor visualização, que eu personalizasse esse cabeçalho sem alterar do banco.
      Algo como inserir no DataGrid o nome das colunas e exportar do banco de dados sem o nome da coluna.
    • By eduarda_dasilveira
      O sistema deverá, utilizando a linguagem C, receber 6 apostas (6 números cada
      aposta no intervalo de 1 a 60) e armazenar estas informações em uma matriz quadrada de
      ordem 6. Um vetor chamado vetGabarito  deve armazenar 6 números, que são os gabaritos
      da aposta.
      Com a matriz de apostas preenchidas, o sistema deverá:
      a. Mostrar a soma da diagonal principal da matriz de apostas.
      b. Transferir todas as apostas para vetores de inteiros de 6 posições.
      c. Indicar quantos números pares e ímpares foram apostados.
      d. Indicar quantos acertos o jogador obteve para cada conjunto de aposta.
       
      Estou com dificuldade de fazer letra d.
      Meu código esta ai mas esta dando erro (mostrando a quantidade errada de acertos) na parte da letra d.
      #include <stdio.h> #include <time.h> #include <conio.h> #include <stdlib.h> int main (void){ int mat [6][6], vetGabarito[6], vet1[6], vet2[6], vet3[6], vet4[6], vet5[6], vet6[6], l, c, soma_diagonal=0, impar=0, par=0; srand (time (NULL)); for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf ("Digite a sua aposta de 1 a 60:"); scanf ("%d", &mat [l][c]); } } for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf (" %d", mat [l][c]); } printf ("\n"); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if (l==c){ soma_diagonal=soma_diagonal+mat[l][c]; } } } for (c=0; c<6; c++){ vet1[c]= mat [0][c]; vet2[c]= mat [1][c]; vet3[c]= mat [2][c]; vet4[c]= mat [3][c]; vet5[c]= mat [4][c]; vet6[c]= mat [5][c]; printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet1[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet2[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet3[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet4[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet5[c]); printf ("Aposta do jogador na rodada [%d] e %d\n", c, vet6[c]); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if ((mat[l][c]%2)==0){ par++; } else { impar++; } } } srand (time (NULL)); for (c=0;c<6;c++){ vetGabarito[c]=rand()%10; } for (c=0; c<6; c++){ printf (" %d", vetGabarito[c]); printf ("\n"); } for (c=0; c<6; c++){ vet1[0]==vetGabarito[c]; vet2[1]==vetGabarito[c]; vet3[2]==vetGabarito[c]; vet4[3]==vetGabarito[c]; vet5[4]==vetGabarito[c]; vet6[5]==vetGabarito[c]; } printf ("A soma da diagonal da matriz e: %d\n", soma_diagonal); printf ("A quantidade de numeros pares foi %d, e de numeros impares foi %d\n", par, impar); printf ("O jogador na primeira rodada teve %d de acertos.\n", vet1[0]); printf ("O jogador na segunda rodada teve %d de acertos.\n", vet2[1]); printf ("O jogador na terceira rodada teve %d de acertos.\n", vet3[2]); printf ("O jogador na quarta rodada teve %d de acertos.\n", vet4[3]); printf ("O jogador na quinta rodada teve %d de acertos.\n", vet5[4]); printf ("O jogador na sexta rodada teve %d de acertos.\n", vet6[5]); return 0; }  
    • By Davi DEVV
      Faça um algoritmo que (utilize funções com ponteiros):
      - Tenha um menu que permita entrar nas funções inserir e buscar, ao selecionar a função inserir, insira somente um funcionário por vez, voltando ao menu principal.
      - Tenha uma estrutura para armazenar, nome, número do cartão e setor de um funcionário.
      - Armazene 10 funcionários.
      - Permita buscar os dados de um funcionário através do número do cartão.
    • By Joseph Amupolo
      Eu estou começando aprender a linguagem C, alguem  pode me ajudar com esse excercício?
      Desenvolver um sistema para catálogo de produtos em um supermercado
       
      Os itens devem conter:
      • Código do produto
      • Descrição
      • Quantidade em estoque
      • Valor (Em Reais)
       
      O sistema deve oferecer um menu ao usuário, permitindo as seguintes operações:
      1. Cadastrar produto
      2. Remover produto
      3. Consultar produto
      4. Resumo do estoque
      5. Sair
    • By luiz-om
      Estou começando a aprender c#, e estou com a seguinte duvida. Tenho as tabelas lote, leitura e consumo. A tabela leitura herda de lote o ID. um lote tem muitas leituras. E uma leitura tem um consumo.
      A real duvida e a seguinte: quando faço a inserção de uma leitura o consumo já é salvo automático, porém quero buscar a última leitura inserida com aquele ID fazer a subtração do número dela pra poder gerar o valor certo na tabela consumo. e não estou conseguindo fazer isso.
      [Table("Lote")] public class Lote { [Key] public int Id { get; set; } [Required] [MinLength(2, ErrorMessage ="O nome deve ter no minimo 2 caracters")] [MaxLength(140, ErrorMessage ="O nome pode ter no maximo 140 caracteres")] public string Proprietario { get; set; } public string CPF { get; set; } //Gera um checkbox public Boolean Socio { get; set; } public string Cavalete { get; set; } public virtual ICollection<Leitura> Leituras { get; set; } } [Table("Leitura")] public class Leitura { [Key] public int Id { get; set; } [ForeignKey("Lote")] public int LoteId { get; set; } public DateTime DataLeitura { get; set; } public int NumeroLeitura { get; set; } public virtual Lote Lote { get; set; } public virtual Consumo Consumo { get; set; } } public class Consumo { [Key, ForeignKey("Leitura")] public int Id { get; set; } public Double Valor { get; set; } public DateTime? DataPagamento { get; set; } public virtual Leitura Leitura { get; set; } } A parte de create da controller é essa
      [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Id,LoteId,DataLeitura,NumeroLeitura")] Leitura leitura) { if (ModelState.IsValid) { //aki tudo que ja tentei /* * var leitura2 = from l in db.Leitura select l; leitura2 = leitura2.OrderByDescending(l => l.Id); db.Leitura.Where(l => l.LoteId == leitura.LoteId).OrderByDescending(l=> l.NumeroLeitura); // db.Leitura.leitura2.NumeroLeitura = db.Leitura.Where(l => l.LoteId == leitura.LoteId).FirstAsync; // db2.Leitura.Find(leitura2.LoteId).; var sql = db.Leitura.SqlQuery("select ID from Leitura Order by ID DESC;"); */ var consumo = new Consumo(); consumo.Leitura = leitura; //Essa parte que faz a conta apra salvar o consumo consumo.Valor =( leitura.NumeroLeitura) * 0.71; //quero fazer +- isso //consumo.Valor = (leitura.NumeroLeitura< <- ESSE SERIA O VALOR DA LEITURA ANTERIOR> - leitura.NumeroLeitura) * 0.71; db.Leitura.Add(leitura); db.Consumo.Add(consumo); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.LoteId = new SelectList(db.Lote, "Id", "CPF", leitura.LoteId); return View(leitura); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.