Calculadora de tráfego de Internet, repositório de código.

Peter V5

Folding Member
Este código é para o repositório de código

/*
Nome: Contador de tráfego de Internet
Copyright: Copyleft
Autor: Pedro Melgueira AKA Peter V5
Data: 05-10-08 18:00
Descrição: Este programa conta, em percentagem, quanto de tráfego podemos gastar, aproximadamente, consoante o dia do mês.
Contacto: [email protected]
*/
#include <stdio.h>
main()
{
float max, x;

float pd1, pd2, pd3, pd4;
float ax1, ax2, ax3, ax4;
float outro;
int i;
FILE *fmax;
FILE *res;
fmax = fopen("max.txt", "r");

if(fmax == NULL)
{
printf("Insira trafego maximo em gigabytes.\n");
scanf("%f", &max);
getchar();
fmax = fopen("max.txt", "w");
fprintf(fmax, "%f", max);
fclose(fmax);
fmax = fopen("max.txt", "r");
}

fscanf(fmax, "%f", &x);

ax1 = (x*1)/30;
pd1 = (100*ax1)/x;

ax2 = (x*1)/31;
pd2 = (100*ax2)/x;

ax3 = (x*1)/28;
pd3 = (100*ax3)/x;

ax4 = (x*1)/29;
pd4 = (100*ax4)/x;

res = fopen("resultados.txt", "w");

fprintf(res, "Meses de Janeiro, Março, Maio, Julho, agosto, Outubro, Dezembro\n");
outro = pd2;
for(i=1; i<=31; i++)
{
fprintf(res, "dia %d - %.2f\n", i, outro);
outro+=pd2;
}

fprintf(res, "\n\n");

fprintf(res, "Meses de Abril, Junho, Setembro, Novembro\n");
outro = pd1;
for(i=1; i<=31; i++)
{
fprintf(res, "dia %d - %.2f\n", i, outro);
outro+=pd2;
}

fprintf(res, "\n\n");

fprintf(res, "Mese de Fevereiro com 28 dias\n");
outro = pd3;
for(i=1; i<=31; i++)
{
fprintf(res, "dia %d - %.2f\n", i, outro);
outro+=pd2;
}

fprintf(res, "\n\n");

fprintf(res, "Mese de Fevereiro com 29 dias\n");
outro = pd4;
for(i=1; i<=31; i++)
{
fprintf(res, "dia %d - %.2f\n", i, outro);
outro+=pd2;
}

fclose(res);
system("resultados.txt");
getchar();
}
 
Última edição:
Bom, trabalho :)
Eu admito que ainda sou um novato nisto, mas há uma coisa que eu não percebo:
O que é um Mese?
Aqui:
fprintf(res, "Mese de Fevereiro com 28 dias\n");
e aqui
fprintf(res, "Mese de Fevereiro com 29 dias\n");
Cumps
PS: A bem da limpeza da thread podem apagar este post quando, o assunto estiver resolvido.
 
system("resultados.txt");
Já agora... isto também é muito má prática.
Ou guardas tudo num ficheiro e pronto, não guardas e mostras só o resultado.
Agora usar o system não aconselho a ninguém.
Por exemplo, todo o teu programa funciona em linux, excepto esta linha de código o que me inutilizaria o programa.

Já agora só outro "remark".
Quanto lês o MAX do ficheiro max.txt, não necessitas de o manter aberto fecha-o logo. E o If que tens a testar se o ficheiro existe, em vês de abrires o ficheiro para escrita e depois para leitura, abres o ficheiro para escrita, escreves, fechas e depois usas o conteúdo da variavel para a qual leste o valor. Depois usas o else para leres só o valor para a variavel. Bem, qualquer coisa deste género:
Código:
fmax = fopen("max.txt", "r");

       if(fmax == NULL)
{[INDENT]printf("Insira trafego maximo em gigabytes.\n");
scanf("%f", &x);
getchar();
fmax = fopen("max.txt", "w");
fprintf(fmax, "%f", x);
[/INDENT]} else {
        fscanf(fmax, "%f", &x);
}
fclose(fmax);

Isto já nem testando erros que possam haver nos fopen e fprintf ali pelo meio :)
 
Back
Topo