Ir ao conteúdo
  • Cadastre-se

ccppbrasil › Apresentação | Trabalho | Desafio | Ajudinha =)


Posts recomendados

Oi Pessoal!
 
Bacana esse grupo... estava procurando um grupo especifico de c++ no Brasil faz tempo rs.
 
Estou com um trabalho quase pronto, porém, estou com algumas dúvidas e para piorar meu professor não é muiiito legal em tirar dúvidas.
 

 Acho que a parte das deduções esta errada.... tipo o INSS e os dependentes
 
Também queria dar uma melhorada... no arquivo para imprimir bonitinho

 
 
Seguinte, o trabalho consiste nestas regras: 
 
Obrigatório o uso de: Funções e Ponteiros; Estruturas; Leitura de Arquivos. 
 

Cálculo do Imposto de Renda
 
Fazer um sistema que:

  • Calcule quanto um individuo deve pagar de imposto de renda;
  • As informações coletadas são: 
  • Ganho anual;
  • Dedução do INSS (gerada a partir do ganho anual);
  • Demais deduções;
  • Exibir todos os cálculos realizados;

Todos os cálculos realizados devem ser armazenados em um arquivo.

 
Segue abaixo o que já consegui fazer, vejam:
 


#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
 
void menu();//menu de opções 
void impostoderenda(); 
struct menu{
int escolha;
int argc;
char *argv[];
 
 
};
struct imposto {
float salariobruto,salarioliquido;
float Nd;
float Od;
char nome[200];
float imposto;
 
};
 
int main(struct menu p) { 
 
menu();//vai para o menu 
 
system("PAUSE"); 
return 0; 

void menu(){ 
struct menu p;
 
printf("Escolha: \n 1- Calcular deducao  de imposto de renda  \n 2- Sair\n"); 
scanf("%d",&p.escolha); 
 
if(p.escolha==1){ 
impostoderenda(); 

//sai do programa
else{ 
exit(0);//sai do programa 


 
//função para digitar o numero 
void impostoderenda(){ 
struct imposto p;
FILE *arq;
arq=fopen("calculo.txt","w");
 
system("cls");//limpa a tela 
 
printf("\nDigite seu nome completo [maximo de 200 caracteres]:\n"); 
fflush(stdin);//limpa o buffer de saida 
scanf("%[^\n]",&p.nome);//captura toda a linha digitada 
 
printf("\nDigite o valor do seu salario bruto anual:\n"); 
scanf("%f",&p.salariobruto);
 printf("tem dependentes?se sim,quantos?\n");
 scanf("%f",&p.Nd);
 printf("tem outras deducoes?se sim digite o valor:\n");
 scanf("%f",&p.Od);
 
if(21453.24>=p.salariobruto){
   printf(" \n nao paga parcela");
}
else if (p.salariobruto<=32151.48){
  p.imposto = (p.salariobruto-p.Nd*189.59-p.Od )*0.075;
 printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
else if(p.salariobruto<=42869.1615){
    p.imposto=(p.salariobruto-p.Nd*189.59-p.Od)*0.15;
printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
else if (p.salariobruto<=53565.72){
p.imposto =(p.salariobruto-p.Nd*189.59-p.Od)*0.225;
    printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}else{
    p.imposto =(p.salariobruto-p.Nd*189.59-p.Od)*0.275;
printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
fprintf(arq," o nome do usuario:%s\n salario anual:%.f\numero de dependentes:%f\ntaxa do imposto a pagar:\n%.2f",p.nome,p.salariobruto,p.Nd,p.imposto);
      fclose(arq);
      printf("\n \n"); 
      printf("Dados gravados com sucesso!");
      
 
printf("\n \n ");
system("PAUSE");//pausa o programa 
system("cls");//limpa a tela 
menu();//volta pro menu 
}

Link para o comentário
Compartilhar em outros sites

Acho que você não entendeu.
O enunciado não menciona como fazer as contas:

 

 

Fazer um sistema que:

  • Calcule quanto um individuo deve pagar de imposto de renda;
  • As informações coletadas são: 
  • Ganho anual;
  • Dedução do INSS (gerada a partir do ganho anual);
  • Demais deduções;
  • Exibir todos os cálculos realizados;

Todos os cálculos realizados devem ser armazenados em um arquivo.

Seu programa tem números mágicos por toda parte. O enunciado não informa como são feitas as contas. Logo, a única alternativa é procurar as tabelas reais e seguir a metodologia real de cálculo.

 

Leia o link do UOL e refaça as contas, pois quem não está entendendo como colocar o INSS na conta do IR é você:

 

 

 

 Acho que a parte das deduções esta errada.... tipo o INSS e os dependentes
Link para o comentário
Compartilhar em outros sites

Voltei!

 

Da uma olhada agora,

 

#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
 
void menu();//menu de opções 
void impostoderenda(); 
void inss();
struct menu{
int escolha;
int argc;
char *argv[];
 
 
};
struct imposto {
float rendaanual;
float inss;
float Nd;
float Od;
char nome[200];
float imposto;
 
};
 
int main(struct menu p) { 
 
menu();//vai para o menu 
 
system("PAUSE"); 
return 0; 
void menu(){ 
struct menu p;
 
printf("Escolha: \n 1- Calcular quanto o Sr (a). deve pagar de Imposto de Renda  \n 2- Sair\n"); 
scanf("%d",&p.escolha); 
 
if(p.escolha==1){ 
impostoderenda(); 
//sai do programa
else{ 
exit(0);//sai do programa 
 
//função para digitar o numero 
void impostoderenda(){ 
struct imposto p;
FILE *arq;
arq=fopen("calculo.txt","w");
 
system("cls");//limpa a tela 
 
//função para digitar o numero 
 
 
 
system("cls");//limpa a tela 
 
printf("\nDigite seu nome completo [maximo de 200 caracteres]:\n"); 
fflush(stdin);//limpa o buffer de saida 
scanf("%[^\n]",&p.nome);//captura toda a linha digitada 
 
printf("\nDigite o valor da renda anual:\n"); 
scanf("%f",&p.rendaanual);
 printf("tem dependentes?se sim,quantos?\n");
 scanf("%f",&p.Nd);
 printf("Informe o valor anual de contribuicao ao INSS\n");
 scanf("%f",&p.Nd);
 printf("tem outras deducoes?se sim digite o valor:\n");
 scanf("%f",&p.Od);
 
 scanf("%f",&p.inss);
 printf("tem outras deducoes?se sim digite o valor:\n");
 scanf("%f",&p.Od);
 
 if(21453.24>=p.rendaanual){
   printf(" \n nao paga parcela");
}
else if (p.rendaanual<=32151.48){
  p.imposto = (p.rendaanual-p.Nd*189.59-p.Od-p.inss )*0.075;
 printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
else if(p.rendaanual<=42869.1615){
p.imposto=(p.rendaanual-p.Nd*189.59-p.Od-p.inss)*0.15;
printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
else if (p.rendaanual<=53565.72){
p.imposto =(p.rendaanual-p.Nd*189.59-p.Od-p.inss)*0.225;
    printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}else{
    p.imposto =(p.rendaanual-p.Nd*189.59-p.Od-p.inss)*0.275;
printf(" \n \n o valor da parcela a deduzir do imposto de renda em reais é:\n\n%.2f",p.imposto);
}
fprintf(arq," o nome do usuario:%s\n renda anual: %f\n numero de dependentes:%f \n valor anual de contribuicao ao INSS:%f\noutras deducoes:%f \n taxa do imposto a pagar:\n%.2f",p.nome,p.rendaanual,p.Nd,p.inss,p.Od,p.imposto);
 
      fclose(arq);
      printf("\n \n"); 
      printf("Dados gravados com sucesso!");
      
printf("\n \n ");
system("PAUSE");//pausa o programa 
system("cls");//limpa a tela 
menu();//volta pro menu 
}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!