Ir ao conteúdo
  • Cadastre-se

C Salvar dados em uma variavel


Jhony Santos

Posts recomendados

Pessoal, boa noite!

 

To desenvolvendo um software pra faculdade que pede para salvar um número de peças que um funcionario do sexo masculino ou feminino criou, gostaria de saber como faço para salvar o caractere que digitei.

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main(){
	int numf, pec, f, totpec, totpecf, totpecm;
	char sex;
	float sal, saltot, saltotm, saltotf, maiorsa;
	printf("Bem vindo ao Software\n");
	do{
		printf("\nDigite o numero do funcionario: ");
		scanf("%d", &numf);
		fflush(stdin);
		printf("Digite o sexo do funcionario :");
		scanf("%s", &sex);
		fflush(stdin);
		printf("Digite a quantidade de pecas que o funcionario produziu: ");
		scanf("%d", &pec);
		fflush(stdin);
		sal= 600;
		totpec=totpec+pec;
		if(pec<=30){
				sal= 600;
				printf("O salario do funcionario e: %f", sal);
				}else{
					if((pec>30)&&(pec<36))
						{
						sal=((18*(pec-30))+600);
						printf("O salario do funcionario e: %f", sal);
						}else{
							sal=((30*(pec-30))+600);
							printf("O salario do funcionario e: %f\n", sal);
							}
					}if(sex=){
						totpecm=totpecm+pec;
					}
					printf("\nDigite 0 para encerrar ou qualquer outra tecla para continuar: ");
		scanf("%d", &f);
		fflush(stdin);
		saltot=saltot+sal;
	}	while(f!=0);
	printf("Quantidade de pecas masculino e %d\n", totpecm);
	printf("Quantidade de pecas feminino e %d\n", totpecf);
	printf("-Total de pecas e : %d\n", totpec);
	printf("-Total dos salarios: %f\n", saltot);
	printf("salario para homens: %f\n", saltotm);
	printf("salario para mulheres: %f\n", saltotf);
	printf("maior salario: %f\n", maiorsa);
}

por enquanto o codigo esta assim

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

@Jhony Santos    para salvar você precisa usar um arquivo, você pode salvar como arquivo txt  ou arquivo binário, então para salvar como arquivo txt você pode usar um código parecido com este seu código com algumas modificações :

#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include<stdlib.h>
#include<math.h>
FILE *fp;
char c[20];
int numf, pec, f, totpec, totpecf, totpecm;
char sex;
float sal, saltot, saltotm, saltotf, maiorsa;
int main(){
	saltotm=950;
	saltotf=950;
	printf("Bem vindo ao Software\n");
	do{
		printf("\nDigite o numero do funcionario: ");
		scanf("%d", &numf);
		fflush(stdin);
		do{
		    printf("Digite o sexo do funcionario [ M ]  ou  [ F ] : ");
		    scanf("%s", &sex);
		}while(sex !='m'&&sex!='M'&&sex!='f'&&sex!='F');
		fflush(stdin);
		printf("Digite a quantidade de pecas que o funcionario produziu: ");
		scanf("%d", &pec);
		fflush(stdin);
		sal= 600;
		totpec=totpec+pec;
		if(pec<=30){
				sal= 600;
				printf("O salario do funcionario e: %.2f", sal);
				}else{
					if((pec>30)&&(pec<36))
						{
						sal=((18*(pec-30))+600);
						printf("O salario do funcionario e: %.2f", sal);
						}else{
							sal=((30*(pec-30))+600);
							printf("O salario do funcionario e: %.2f\n", sal);
							}
					}if(sex=='m' || sex=='M'){
						totpecm=totpecm+pec;
					}
					printf("\nDigite 0 para encerrar ou qualquer outra tecla para continuar: ");
		scanf("%d", &f);
		fflush(stdin);
		saltot=saltot+sal;
	}	while(f!=0);
	printf("Quantidade de pecas masculino e %d\n", totpecm);
	printf("Quantidade de pecas feminino e %d\n", totpecf);
	printf("-Total de pecas e : %d\n", totpec);
	printf("-Total dos salarios: %.2f\n", saltot);
	printf("salario para homens: %.2f\n", saltotm);
	printf("salario para mulheres: %.2f\n", saltotf);
	printf("maior salario: %.2f\n", maiorsa);
	maiorsa=1000;
	/* aqui salva no arquivo os resultados */
	fp=fopen("Total_Pecas.txt","r");/*abre o arquivo para ler*/
	if(fp==NULL){
	    fp = fopen("Total_Pecas.txt", "wt");/*cria o arquivo*/
	    if(fp==NULL){printf("Erro Ao Abrir Arquivo");fclose(fp);return 0;}
	    fclose(fp);/*fecha o arquivo*/
	}
	fclose(fp);/*fecha o arquivo*/
	fp=fopen("Total_Pecas.txt","wt");/*abre o arquivo para escrever*/
	itoa(totpecm,c,10);
        fprintf(fp,"%s","totpecm = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        itoa(totpecf,c,10);
        fprintf(fp,"%s","totpecf = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        itoa(totpec,c,10);
        fprintf(fp,"%s","totpec = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        sprintf(c, "%.2f",saltot);
        fprintf(fp,"%s","saltot = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        sprintf(c, "%.2f",saltotm);
        fprintf(fp,"%s","saltotm = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        sprintf(c, "%.2f",saltotf);
        fprintf(fp,"%s","saltotf = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        sprintf(c, "%.2f",maiorsa);
        fprintf(fp,"%s","maiorsa = ");fprintf(fp,"%s",c);fprintf(fp,"%s"," ");
        fclose(fp);/*fecha o arquivo*/
        return 0;
}

depois de rodar o programa você pode visualizar o que foi salvo,  abrindo o arquivo, usando o bloco de notas e o arquivo estará na mesma pasta em que você salvou esse programa .

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

@devair1010 Então tu entendeu errado, eu queria salvar o acumulador de quando voce digita o sexo, quando digita M ou F so salva o primeiro acumulador. Porque o programa pede para mostrar o salario acumulado das mulheres e o salario acumulado dos homens. Mas nao estou conseguindo fazer isso.

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Jhony Santos    ainda não entendi muito bem, o que tem haver o sexo com o salario acumulado ?     será que o salario depende da quantidade de peças criadas pelo funcionário ?  ou então você precisa pedir para o usuário digitar qual o salario dos funcionários e depois somar esses salários  para então saber o salário acumulado .

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

@devair1010  Acho que o que ele quer é tipo: funcionario 1 do sexo M produziu 800 seu salario vai ser 900 reais... mesma coisa sexo feminino salario vai ser 901...
 Ai mostrar na tela homens produziram 1600 peças e receberam 2000 e mulheres produziram 1100 peças e receberam 1800.
@Jhony Santos  Você pode salvar as informações dos homens e um arquivo e das mulheres em outro, e fazer quando ler aparecer certinho homens e mulheres... só não sei como abre depois esse arquivo pra somar, nem sei se é possível fazer isso..
Mais caso não ache nenhuma solução você pode fazer o seguinte, mostrar quanto homens faturaram e quanto mulheres faturaram e depois colocar uma pergunta deseja somar quanto homens faturaram? (ou mulheres) caso seja sim apareça pra digitar os valores e depois ele da a soma.
 Desculpa, foi a única coisa que me veio a cabeça já que não sei somar em arquivos de texto :P mais caso ninguém te responda vê se minha ideia te serve

 Segue código simples

#include<stdio.h>
#include<stdlib.h>
#include <string.h>
char numf[50],sex,pec[50];
main ()
{
volta:
FILE *h;
FILE *f;
h = fopen ("h.txt","a");
if(h == NULL)
{
	h = fopen("h.txt","w");
 goto volta;
}
else
{
f = fopen ("f.txt","a");
if(f == NULL)
{
	f = fopen("f.txt","w");
 	goto volta;
	}	
else
{
	printf("\nDigite o numero do funcionario: ");
	scanf("%s", &numf);
	printf("Digite o sexo do funcionario [ M ]  ou  [ F ] : ");
	scanf("%s", &sex);
	printf("Digite a quantidade de pecas que o funcionario produziu: ");
	scanf("%s", &pec);
	if(sex == 'm' || sex=='M')
	{
	fprintf(h,"FUNCIONARIO: ");
	fprintf(h,numf);
	fprintf(h," ");	
	fprintf(h,"PECAS PRODUZIDAS: ");
	fprintf(h,pec);
	fprintf(h,"\n");
	fclose(h);
	}
	if(sex=='f' || sex=='F')
	{
	fprintf(f,"FUNCIONARIO: ");
	fprintf(f,numf);
	fprintf(f," ");
	fprintf(f,"PECAS PRODUZIDAS: ");	
	fprintf(f,pec);
	fprintf(f,"\n");
	fclose(f);	
	}
	h = fopen("h.txt","r");
	{
	char le[1000];
	fread(le,1,1000,h);
	printf(le);
	fclose(h);
	printf("\n");
}
	f = fopen("f.txt","r");
	{
	char le[1000];
	fread(le,1,1000,f);
	printf(le);
	fclose(f);
	goto volta;
}
}
}
}

 

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

  • 2 semanas depois...
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main(){
	int numf, pec, f, totpec, totpecf, totpecm;
	char sex;
	float sal, saltot, saltotm, saltotf, maiorsa;
	printf("Bem vindo ao Software\n");
	do{
		printf("\nDigite o numero do funcionario: ");
		scanf("%d", &numf);
		fflush(stdin);
		printf("Digite o sexo do funcionario :");
		scanf("%s", &sex);
		fflush(stdin);
		printf("Digite a quantidade de pecas que o funcionario produziu: ");
		scanf("%d", &pec);
		fflush(stdin);
		sal= 600;
		totpec=totpec+pec;
		if(pec<=30){
				sal= 600;
				printf("O salario do funcionario e: %f", sal);
				}else{
					if((pec>30)&&(pec<36))
						{
						sal=((18*(pec-30))+600);
						printf("O salario do funcionario e: %f", sal);
						}else{
							sal=((30*(pec-30))+600);
							printf("O salario do funcionario e: %f\n", sal);
							}
					printf("\nDigite 0 para encerrar ou qualquer outra tecla para continuar: ");
		scanf("%d", &f);
		fflush(stdin);
		saltot=saltot+sal;
	}while(f!=0);
	printf("Quantidade de pecas masculino e %d\n", totpecm);
	printf("Quantidade de pecas feminino e %d\n", totpecf);
	printf("-Total de pecas e : %d\n", totpec);
	printf("-Total dos salarios: %f\n", saltot);
	printf("salario para homens: %f\n", saltotm);
	printf("salario para mulheres: %f\n", saltotf);
	printf("maior salario: %f\n", maiorsa);
    }
}                                          

Ai está a solução.

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