Consommation internet (compilé avec dev c++)

Soyez le premier à donner votre avis sur cette source.

Vue 3 459 fois - Téléchargée 151 fois

Description

Grace a ce tout petit programme, vous pouvez en quelques instants savoir si vous etes en avance sur votre forfait internet et donc qu'il faut lever le doigt sur la souris ou si vous pouvez vous en donner a coeur joie sans redouter la facture!

PS: ce code ne sert a RIEN si vous etes l'heureux posseseur de l'adsl ou d'un forfait illimité!

Source / Exemple :


#include <iostream.h>

int main()
{
bool vf=false,fin=true,h=true;
int jour,j3,M,resultatH,resultatM;
float jour2,c,d,e,f,g;
cout<<"-------------------------------------------------------------------------------\n";
cout<<"----------------- PROGRAMME DE CALCUL DE LA CONSAMATION INTERNET --------------\n";
cout<<"-------------------------------------------------------------------------------\n";
cout<<"-------------------------- ecrit par Anthony Legrand --------------------------\n";
cout<<"-------------------------------------------------------------------------------\n";
cout<<"\n""\n""\n";
cout<<"tapez le nombres d'heures de votre forfait internet\n";
cin>>e;
 while (vf==false)
 {
cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29,4=28)\n";
cin>>jour;
switch (jour)
    {
    case 1 : c=e/30,vf=true,j3=30;
            break;
    case 2 : c=e/31,vf=true,j3=31;
            break;
    case 3 : c=e/29,vf=true,j3=29;
            break;
    case 4 : c=e/28,vf=true,j3=28;
            break;
    default : cout<<"mauvaise reponsse\n" ,vf=false;
            break;
    }
 }
 while (h==true)
 {
cout<<"tapez le jour actuel\n";
cin>>jour2;
  if (jour2>j3)
  {
  cout<<"vous avez entre un jour trop grand\n";
  h=true;
  }
  if (jour2<j3)
  {
  h=false;
  }
  if (jour2==j3)
  {
  h=false;
  }
 }
d=c*jour2;
cout<<"tapez le nombres d'heures que vous avez utilise ce mois ci\n";
cin>>f;
g=d-f;
resultatH=g;
M=(g-resultatH)*100;
resultatM=M*60/100;
if (g>0)
     {
     cout<<"il vous reste "<<resultatH<<" heures "<<resultatM<<"minutes pour aujourd'hui\n";
     }
if (g<0)
     {
     cout<<"vous avez depasse votre forfait de "<<resultatH<<" heures "<<resultatM<<"minutes pour aujourd'hui\n";
     }
if (g==0)
     {
     cout<<"brovo! vous avez utilise juste le nombre d'heures dont vous disposez!\n";
     }
 while (fin==true)
 {
cout<<"pour recomencer, tapez 1, pour arreter tapez 2\n";
cin>>jour;
switch (jour)
    {
    case 1 : main(),fin=true;
    break;
    case 2 : fin=false;
    break;
    default : cout<<"mauvaise reponsse\n" ,fin=true;
    break;
    }
 }
}

Conclusion :


je vien juste de finir cette nouvelle version de ma source ;)
je voudrais beaucoup remercier tout ceux qui m'on aidé, qui m'on conseillé, et qui m'on expliqué comment faire pour surmonter mes difficultés!
j'ai essayé de suivre vos conseils et avec l'aide de mon cours, j'ai reussi a ecrire ce bou de code dont je suis assez fier!

encore une fois merci pour vos conseils, j'attend avec grande impatience de nouvelles remarques pour continuer a m'ameliorer!

-Tony-

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
18
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
22 décembre 2003

Tu as raison Irsla.
Enfin mon but est de lui expliquer rapido l'utilisation des fonctions, meme si il reste des petites retouches effectivemment possibles comme tu l'as bien décrit ou comme la declaration stdlib.h qui est inutile pour dev c++...ou d'autres petits trucs sympas.
Enfin voila, bonne continuation à tous.
Messages postés
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003

ps: if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}

ici coter opti y'a mieux si g < 0 alors il ne sera jamais > 0 par consequent ca sert a rien de le lui faire tester ;)
Messages postés
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003

... sans vouloir etre mechant qd on veut proposer une amelioration autant qu'elle soit la "meilleur possible" et en lisant 1 fois le code on se rend bien vite compte des ptit truc qui cloche :
1:
switch (a)
{
case 1 :
Calcul();
break;

default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}

ne sert a rien si il n'y a qu'un seul case dans ce cas un simple if ... else aurai suffit

2:
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}

et si g == 0 ? ...
pas de bol c justemement a cette valeur la qu'il faut reagir ;)
enfin bon ;)

sinon juste une petite precision utile pour anthonyl
essaye de donner des noms de variable significative je sais que ca peut paraitre inutil mais pour de tres gros codes ( ou ne serait ce des codes (algo) complexe) ca devient tres vite obligatoire.
Sinon ton code va vite ressembler a kkle chose d'imcomprehensible.
ps: moi aussi au debut je nommais toutes mes variable a,b,c,d .... ;)

@++

Irsla
Messages postés
18
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
22 décembre 2003

/*Resalut. Voila, au PLUS SIMPLE et en respectant au maximum ton code
je te propose une solution pour LES FONCTIONS et éviter les GOTOS .


fonction void Calcul() = soit un bloc d'instructions qui regoupe une grande partie
de ton programme.
ici la fonction Calcul() est déclaré avant le la fonction principale.
Si tu placais ta fonction après, alors tu devrais déclarer le prototype
de ta fonction avant main()
EXEMPLE =

#include
void Calcul(); // PROTOTYPE DE LA FONCTION.

void Calcul()
{
ton code
}

void main()
{
ton code
}

VOila, j'espere que ca pourra t'aider. Bonne continuation.
------------------------------------------ */

#include
#include <stdlib.h>

void Calcul()
{

int a;
float b,c,d,e,f,g;
cout<<"tapez le nombres d'heures de votre forfait internet
";
cin>>e;

cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29)
";

cout<<"
";

do{ // ici, une boucle post-testée. elle effectue son test de continuation à la fin
//de la boucle et tant que l'entrée n'est pas valide (entre 1 et 3), l'utilisateur
// devra recommencer. Il existe bien sur, d'autres types de boucles...


cin>>a;



switch (a)
{
case 1 : c=e/30;
break;
case 2 : c=e/31;
break;
case 3 : c=e/29;
break;

}

if ( a > 3 )cout << "Erreur: Choix compris entre 1 et 3" <<endl;
// si supérieur à 3, onmarque un message d'erreur. :)

}while ((a< 1)||(a > 3)); // attente d'un chiffre entre 1 et 3

//sinon a est correcte et on passe à la suite...

cout<<"tapez le jour actuel
";
cin>>b;
d=c*b;
cout<<"tapez le nombres d'heures que vous avez utilise ce mois ci
";
cin>>f;
g=d-f;
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui
";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui
";
}

} // fin de la fonction Calcul


void main()
{

cout<<"-------------------------------------------------------------------------------
";
cout<<"----------------- PROGRAMME DE CALCUL DE LA CONSAMATION INTERNET --------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"-------------------------- ecrit par Anthony Legrand --------------------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"
""
""
";

Calcul(); // insertion du code a cet endroit dans le programme..

int a=0;
cout<<"pour recomencer, tapez 1, pour arreter tapez 2
";
cin>>a;
switch (a)
{
case 1 :
Calcul();
break;

default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}

} // fin de main()
Messages postés
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003

oui les fonctions , c toujours dificile qd on debute, moi j'aurai plutot tendance a te conseiller de revoir les typage des variable , ainsi eviter les phrases du style :"vous avez depasse votre forfait de -15,25 heures pour aujourd'hui"

parce que perso je ne connais aps les heures negative (d'un abs()) resoudra sans pb 2emement je ne sias pas que 0,25 heures correspond a 15 minutes (et la je te conseille histoire de jouer avec les chiffre de recoder la fonction qui permet de donner le nombre d'heures ainsi que le nombre de minutes)

voila ;) sinon c pas mal et ca change des convertisseurs (arf oui celle la je l'avais faite lol )

bon courage et continu

Irsla
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.