Calcul de la durée d'un téléchargement selon le type de connexion

Description

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

Source / Exemple :


#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

Codes Sources

A voir également

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.