begin process at 2010 02 09 22:16:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > CALCUL DE LA DURÉE D'UN TÉLÉCHARGEMENT SELON LE TYPE DE CONNEXION

CALCUL DE LA DURÉE D'UN TÉLÉCHARGEMENT SELON LE TYPE DE CONNEXION


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Débutant Date de création :07/07/2004 Date de mise à jour :07/07/2004 13:37:45 Vu / téléchargé :7 636 / 180

Auteur : Mingain

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
J'ai developpé un petit programme C++ en mode console (DOS) qui permet de connaitre la durée d'un téléchargement.

Source

  • #include <iostream> // pour cout, cin, ...
  • #include <stdlib.h> // pour la fonction system()
  • #include <conio.c> // Pour changer la couleur du texte
  • // Déclaration des fonctions.
  • int calculpds( int poidsmo );
  • int calcultps(int poidsko, int tempssc, int debit );
  • using namespace std;
  • int main()
  • {
  • // déclaration des variables utilisées dans le programme
  • int connexion;
  • int indic;
  • int debit;
  • int poidsmo;
  • int poidsko;
  • int tempssc;
  • int tempshr;
  • int tempsrest;
  • int test_conex;
  • textcolor (12); //chagement de la couleur du texte
  • cout << "Duree - telechargement\n\nCe programme va vous permettre de connaitre le temps"
  • << " que mettra votre connexion Internet pour t\202l\202charger un fichier.";
  • textcolor (3);
  • cout <<"\n\n********************************************************************************\n
  • ********************************************************************************";
  • indic = 0; //la variable indic prend la valeur 0
  • while(indic == 0) // Tant que indic vaut 0, on continue d'executer ce qu'il y a en dessous
  • {
  • textcolor (14); //couleur du texte
  • cout << "\nQuel est votre type de connexion ? (56, 128, 512 ou 1024)\n";
  • textcolor (95);
  • cin >> connexion; // Demande du type de connexion dans la variable connexion
  • textcolor (2);
  • switch( connexion ) //utilisation de switch pour ranger les différents types de connexions
  • {
  • case 56 : system("cls"); cout << "\nVous disposez d'une connexion 56k.\n\n"; // on affiche le type de connexion choisi
  • cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n"; // on demande si c'est le bon type de connexion
  • textcolor (95);
  • cin >> test_conex; // variable pour demander si c'est le bon type de connexion
  • if( test_conex == 1){ //si c'est le bon type de connexion, on sort de la boucle parce que indic vaut autre chose que 0.
  • indic = 1;
  • }
  • else
  • {
  • indic = 0; // si c'est la mauvais type de connexion, on reste dans la boucle parce que indic vaut toujours 0 (on aurait pu ne pas mettre indic = 0; puisqu'il vaut déjà 0. Ceci permet de rester sur la boucle si l'utilisateur tape autre chose que 1.
  • }
  • debit = 4; // Dans la case 56k, on dit que le débit est égal à 4 (4ko/sec)
  • break;
  • case 128 : system("cls"); cout << "\nVous disposez d'une connection 128k.\n\n";
  • cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
  • textcolor (95);
  • cin >> test_conex;
  • if( test_conex == 1){
  • indic = 1;
  • }
  • else
  • {
  • indic = 0;
  • }
  • debit = 10;// Dans la case 128k, on dit que le débit est égal à 10 (10ko/sec)
  • break;
  • case 512 : system("cls"); cout << "\nVous disposez d'une connection 512k.\n\n";
  • cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
  • textcolor (95);
  • cin >> test_conex;
  • if( test_conex == 1){
  • indic = 1;
  • }
  • else
  • {
  • indic = 0;
  • }
  • debit = 37; break;
  • case 1024: system("cls"); cout << "\nVous disposez d'une connexion 1024k.\n\n";
  • cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
  • textcolor (95);
  • cin >> test_conex;
  • if( test_conex == 1){
  • indic = 1;
  • }
  • else
  • {
  • indic = 0;
  • }
  • debit = 73; break;
  • default : system("cls"); cout << "\nentr\202e erron\202e...\n"; // En cas d'erreur de la saisie de connexion, on affiche ceci. Si on donne à la variable connexion autre chose que le nom d'une des cases possible.
  • }
  • }
  • system("cls"); // on vide l'écran avec la commande DOS cls
  • textcolor (2); //change la couleur du texte
  • /* On va dans la condition ci-dessous, afficher le type de connexion choisi (voir ci-dessus)
  • Selon la valeur que la variable debit a pris, on affiche un certain texte.*/
  • if(debit == 4){
  • cout << "Type de connexion: 56k.\n";
  • }
  • else if(debit == 10){
  • cout << "Type de connexion: 128k.\n";
  • }
  • else if(debit = 37){
  • cout << "Type de connexion: 512k.\n";
  • }
  • else if(debit = 73){
  • cout << "Type de connexion: 1024.\n";
  • }
  • else{
  • cout << "Erreur lors de l'execution du programme.\n";
  • system("exit");
  • }
  • textcolor (14); // change la couleur du texte
  • cout <<"Donnez le poids total des donn\202es que vous voullez t\202l\202charger en Megaoctets.\n";
  • textcolor (95); // change la couleur du texte
  • cin >> poidsmo; // on demande le poids des données à télécharger (en Mo)
  • system("cls"); // on vide l'écran avec la commande DOS cls
  • textcolor (2); //change la couleur du texte
  • cout <<"\nVous disposez d'une connexion "<< connexion <<"k et les donn\202es que vous d\202sirez t\202l\202charger pesent "<< poidsmo <<" Mo.\n\n\n";
  • /*debut du pourcentage (le pourcentage est là pour faire plus joli mais il est tout à fait dispensable.
  • Le code n'est pas de moi. Je l'ai trouvé dans une source sur cppfrance.com */
  • int pcent;
  • pcent = 0;
  • re:
  • cout<<" "<<pcent<<"% ... calcul ...";
  • pcent++;
  • Sleep(100);
  • if(pcent==101)
  • {
  • cout<<"\n\n";
  • goto fin;
  • }
  • if(pcent<10)
  • cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
  • else
  • if(pcent>9)
  • cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
  • goto re;
  • fin: //fin du pourcentage
  • poidsko = calculpds( poidsmo ); // on utilise la fonction qui calcule le poids en ko gràce au poids en Mo
  • tempshr = calcultps(poidsko, tempssc, debit ); // on calcule le temps de téléchargement en heure
  • //Ci dessous, on va afficher le temps de téléchargement de différentes manière selon
  • //le temps lui-même! Explication: si le temps est de moins de 1 heure, on va préfèrer afficher le temps en minutes!
  • // et ci le temps est suppérieur à 24 heures, on va afficher le temps en jour et le reste en heure!
  • if(tempshr <= 24 && tempshr >= 2){
  • cout << "\nVotre t\202l\202chargement durera donc " << tempshr << " heures.\n\n";
  • }
  • else if(tempshr < 2 && tempshr > 1){
  • tempsrest = tempshr * 60;
  • cout << "\nVotre t\202l\202chargement durera donc " << tempsrest << " minutes.\n\n";
  • }
  • else if(tempshr > 24 && tempshr < 48){
  • tempsrest = tempshr - 24;
  • cout << "\nVotre t\202l\202chargement durera donc 1 jour et " << tempsrest << " heures.\n\n";
  • }
  • else if(tempshr > 48 && tempshr < 72){
  • tempsrest = tempshr - 48;
  • cout << "\nVotre t\202l\202chargement durera donc 2 jour et " << tempsrest << " heures.\n\n";
  • }
  • else if(tempshr > 72){
  • tempsrest = tempshr - 72;
  • cout << "\nVotre t\202l\202chargement durera donc 3 jour et " << tempsrest << " heures.\n\n";
  • }
  • system("pause");
  • return 0;
  • }
  • int calculpds( int poidsmo ) //fonction de calcul du poids
  • {
  • return ( poidsmo * 1000 );
  • }
  • int calcultps(int poidsko, int tempssc, int debit ) //fonction de calcul du temps
  • {
  • tempssc = poidsko / debit;
  • return ( tempssc / 3600 );
  • }
  • /* Merci à Bart pour m'avoir codé les fonctions et les cases.
  • Au départ, je n'avais pas du tout compris ce que c'était! Et
  • merci à tous ceux que je vais oublier et que je n'ai pas cité
  • mais qui m'ont aidé à apprendre à programmer.
  • Programme créé par Mingain@aol.com le 7/07/04*/
#include <iostream> // pour cout, cin, ...
#include <stdlib.h> // pour la fonction system()
#include <conio.c> // Pour changer la couleur du texte

// Déclaration des fonctions.
int calculpds( int poidsmo );
int calcultps(int poidsko, int tempssc, int debit );

using namespace std;

int main()
{
    // déclaration des variables utilisées dans le programme
    int connexion;
    int indic;
    int debit;
    int poidsmo;
    int poidsko;
    int tempssc;
    int tempshr;
    int tempsrest;
    int test_conex;

    textcolor (12); //chagement de la couleur du texte
    cout << "Duree - telechargement\n\nCe programme va vous permettre de connaitre le temps"
         << " que mettra votre connexion Internet pour t\202l\202charger un fichier.";
    textcolor (3);
    cout <<"\n\n********************************************************************************\n
********************************************************************************";
    
    indic = 0; //la variable indic prend la valeur 0
    
  while(indic == 0) // Tant que indic vaut 0, on continue d'executer ce qu'il y a en dessous
  {

    textcolor (14); //couleur du texte
    cout << "\nQuel est votre type de connexion ? (56, 128, 512 ou 1024)\n";

    textcolor (95);
    cin >> connexion; // Demande du type de connexion dans la variable connexion
    
    textcolor (2);

	switch( connexion ) //utilisation de switch pour ranger les différents types de connexions
	{
		case 56  : system("cls"); cout << "\nVous disposez d'une connexion 56k.\n\n"; // on affiche le type de connexion choisi
        cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n"; // on demande si c'est le bon type de connexion
        textcolor (95);
        cin >> test_conex; // variable pour demander si c'est le bon type de connexion
        if( test_conex == 1){ //si c'est le bon type de connexion, on sort de la boucle parce que indic vaut autre chose que 0.
        indic = 1;
        }
        else
        {
        indic = 0; // si c'est la mauvais type de connexion, on reste dans la boucle parce que indic vaut toujours 0 (on aurait pu ne pas mettre indic = 0; puisqu'il vaut déjà 0. Ceci permet de rester sur la boucle si l'utilisateur tape autre chose que 1.
        }
        debit = 4; // Dans la case 56k, on dit que le débit est égal à 4 (4ko/sec)
        break;
		case 128 : system("cls"); cout << "\nVous disposez d'une connection 128k.\n\n";
        cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
        textcolor (95);
        cin >> test_conex;
        if( test_conex == 1){
        indic = 1;
        }
        else
        {
        indic = 0;
        }
        debit = 10;// Dans la case 128k, on dit que le débit est égal à 10 (10ko/sec)
        break;
		case 512 : system("cls"); cout << "\nVous disposez d'une connection 512k.\n\n";
        cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
        textcolor (95);
        cin >> test_conex;
        if( test_conex == 1){
        indic = 1;
        }
        else
        {
        indic = 0;
        }
        debit = 37; break;
		case 1024: system("cls"); cout << "\nVous disposez d'une connexion 1024k.\n\n";
        cout <<"Continuer (taper 1) ou redonner votre type de connexion (taper 2)?\n";
        textcolor (95);
        cin >> test_conex;
        if( test_conex == 1){
        indic = 1;
        }
        else
        {
        indic = 0;
        }
        debit = 73; break;
		default : system("cls"); cout << "\nentr\202e erron\202e...\n"; // En cas d'erreur de la saisie de connexion, on affiche ceci. Si on donne à la variable connexion autre chose que le nom d'une des cases possible.
	}
  }


  system("cls"); // on vide l'écran avec la commande DOS cls
  textcolor (2); //change la couleur du texte


 /* On va dans la condition ci-dessous, afficher le type de connexion choisi (voir ci-dessus)
 Selon la valeur que la variable debit a pris, on affiche un certain texte.*/

  if(debit == 4){
  cout << "Type de connexion: 56k.\n";
  }
  else if(debit == 10){
  cout << "Type de connexion: 128k.\n";
  }
  else if(debit = 37){
  cout << "Type de connexion: 512k.\n";
  }
  else if(debit = 73){
  cout << "Type de connexion: 1024.\n";
  }
  else{
  cout << "Erreur lors de l'execution du programme.\n";
  system("exit");
  }
  textcolor (14); // change la couleur du texte
  cout <<"Donnez le poids total des donn\202es que vous voullez t\202l\202charger en Megaoctets.\n";

  textcolor (95); // change la couleur du texte
  cin >> poidsmo; // on demande le poids des données à télécharger (en Mo)

  system("cls"); // on vide l'écran avec la commande DOS cls
  textcolor (2);  //change la couleur du texte
  cout <<"\nVous disposez d'une connexion "<< connexion <<"k et les donn\202es que vous d\202sirez t\202l\202charger pesent "<< poidsmo <<" Mo.\n\n\n";

/*debut du pourcentage (le pourcentage est là pour faire plus joli mais il est tout à fait dispensable.
Le code n'est pas de moi. Je l'ai trouvé dans une source sur cppfrance.com */
int pcent;
pcent = 0;   
re:                                 
cout<<" "<<pcent<<"% ... calcul ...";
pcent++;
Sleep(100);                  
if(pcent==101)                  
{
cout<<"\n\n";
goto fin;                       
}
if(pcent<10)
cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
else
if(pcent>9)
cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
goto re;                                
fin: //fin du pourcentage

 
  poidsko = calculpds( poidsmo ); // on utilise la fonction qui calcule le poids en ko gràce au poids en Mo

  tempshr = calcultps(poidsko, tempssc, debit ); // on calcule le temps de téléchargement en heure


  //Ci dessous, on va afficher le temps de téléchargement de différentes manière selon
  //le temps lui-même! Explication: si le temps est de moins de 1 heure, on va préfèrer afficher le temps en minutes!
  // et ci le temps est suppérieur à 24 heures, on va afficher le temps en jour et le reste en heure!
  if(tempshr <= 24 && tempshr >= 2){
  cout << "\nVotre t\202l\202chargement durera donc " << tempshr << " heures.\n\n";
  }
  else if(tempshr < 2 && tempshr > 1){
  tempsrest = tempshr * 60;
  cout << "\nVotre t\202l\202chargement durera donc " << tempsrest << " minutes.\n\n";
  }
  else if(tempshr > 24 && tempshr < 48){
  tempsrest = tempshr - 24;
  cout << "\nVotre t\202l\202chargement durera donc 1 jour et " << tempsrest << " heures.\n\n";
  }
  else if(tempshr > 48 && tempshr < 72){
   tempsrest = tempshr - 48;
   cout << "\nVotre t\202l\202chargement durera donc 2 jour et " << tempsrest << " heures.\n\n";
  }
  else if(tempshr > 72){
   tempsrest = tempshr - 72;
   cout << "\nVotre t\202l\202chargement durera donc 3 jour et " << tempsrest << " heures.\n\n";
  }
  system("pause");
  return 0;
}

int calculpds( int poidsmo ) //fonction de calcul du poids
{
    return ( poidsmo * 1000 );
}

int calcultps(int poidsko, int tempssc, int debit )  //fonction de calcul du temps
{
    
    tempssc = poidsko / debit;
    
    return ( tempssc / 3600 );
}


/* Merci à Bart pour m'avoir codé les fonctions et les cases.
Au départ, je n'avais pas du tout compris ce que c'était! Et
merci à tous ceux que je vais oublier et que je n'ai pas cité
mais qui m'ont aidé à apprendre à programmer.

Programme créé par Mingain@aol.com le 7/07/04*/

 Conclusion

Le programme demande le type de connexion, la taille des données à télécharger et calcule le temps de téléchargement

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   exe
    • Duree - telechargement.exeTélécharger ce fichier [Réservé aux membres club]81 408 octets
  • Duree - telechargement.devTélécharger ce fichier [Réservé aux membres club]365 octets
  • fichier1.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 593 octets

Télécharger le zip


 Sources du même auteur

COURS - HISTORIQUE DU C++

 Sources de la même categorie

GESTIONNAIRE DE BIBLIOTHEQUE par eishtein
FICHIER ALBUM MUSICAL par imenouuuuuuuuuche
LOUISDU81 HTTP EDITOR par louisdu81
Source avec Zip Source avec une capture Source .NET (Dotnet) CLIENT IRC BASIQUE par king67
Source avec Zip CONVERTISSEUR NOMBRE ARABE => NOMBRE ROMAIN (1 À 4999) par Calli95

Commentaires et avis

Commentaire de LordBob le 07/07/2004 18:32:05

bon j'ai regardé ta source que tres rapidement et j'ai constaté une erreur qui m'a frappé:
return ( poidsmo * 1000 );

je crois que la tu fais une convertion de megaoctet en kilooctet... sauf que contrairement a ce que bon nombre de personne pense 1 Mo n'est pas égal a 1 000Ko, mais à 1 024 Ko...
1 Ko = 1 024 octet
1 Mo = 1 024 Ko
1 Go = 1 024 Mo

certe c'est un detail, mais ca peut avoir de l'importance !!!

Commentaire de Bartoune74 le 08/07/2004 12:19:26

Héhé ya pas de soucis c'était tout naturelle de t'aider :p

Commentaire de Tibabou le 21/08/2005 00:35:47

"debit = 10;// Dans la case 128k, on dit que le débit est égal à 10 (10ko/sec)"
"on dit que" ??? 1 octet = 8 bits... donc une connexion 128kbps (kilobits par seconde) correspond à un débit de 128/8 = 16 ko/s.
C'est bien entendu la vitesse max théorique, tu devrais retirer 10% de cette valeur pour être à peu près juste.
Pour info:
56k -> 7 ko/s
128k -> 16 ko/s (ADSL mini)
512k -> 64 ko/s (ADSL de base)
1024k -> 128 ko/s (ADSL courant)
10400k -> 1300 ko/s (ADSL - Free dégroupé en moyenne) :P
a+

Commentaire de BruNews le 21/08/2005 10:48:21 administrateur CS

Free à ce jour à Paris: 1.7 Mo/s.

Commentaire de Tibabou le 22/08/2005 14:28:14

J'ai dit "en moyenne" BruNews ;-)
Le temps de calculer combien de minutes va prendre le téléchargement, on a plus vite fait de télécharger direct :-)

Commentaire de BruNews le 22/08/2005 14:46:30 administrateur CS

vi vi j'avais bien vu, c'était juste pour dire où c'en est à ce jour, les choses évoluent si vite.

Commentaire de sebman le 27/09/2005 03:51:22

Il serait interessant d'y inclure d'autres débits
2 Mg (256 ko/s) pour mon cas mais
8,15 et 20 (Mèga) sont aussi des débits courants

Je me permet des réserves pour le téléchargement en 56k (Bon Courage)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales