Accueil > > > 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
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
- #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
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|