Advertisement
F_THIAGO

Progress Bar ASCII

Apr 26th, 2019
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. // Verifica o sistema operacional (_WIN32, _WIN64)
  4. #ifdef _WIN32
  5.     // Utilizado para fazer a pausa
  6.     #include <windows.h>
  7. #else
  8.     #error S.O. NAO SUPORTADO
  9. #endif
  10.  
  11. using namespace std;
  12.  
  13. #define BLOCK 0xDB
  14. #define EMPTY 0x20
  15.  
  16. class progress_bar
  17. {
  18.     private:
  19.         unsigned short tamanho;
  20.         unsigned short progresso;
  21.        
  22.     public:
  23.         progress_bar( unsigned short p, unsigned short t )
  24.         {
  25.             setTamanho( t );
  26.             setProgresso( p );
  27.         }  
  28.        
  29.         progress_bar()
  30.         {
  31.             setTamanho( 20 );
  32.             setProgresso( 0 );
  33.         }
  34.        
  35.         void show()
  36.         {
  37.             int block;
  38.             int qtd = 0;
  39.            
  40.             cout << "    |";
  41.             for( block=0; block<getTamanho(); block++ )
  42.             {
  43.                 if( qtd < (getTamanho()*getProgresso())/100 )
  44.                 {
  45.                     cout << char(BLOCK);
  46.                     qtd++;
  47.                 }
  48.                 else
  49.                     cout << char(EMPTY);
  50.             }
  51.                
  52.             cout << "|  " << getProgresso() << "%\r\r";
  53.         }
  54.        
  55.         void setTamanho( unsigned short t )
  56.         {
  57.             tamanho = t;
  58.         }
  59.        
  60.         unsigned short getTamanho()
  61.         {
  62.             return tamanho;
  63.         }
  64.        
  65.         void setProgresso( unsigned short p )
  66.         {
  67.             progresso = p;
  68.         }
  69.        
  70.         unsigned short getProgresso()
  71.         {
  72.             return progresso;
  73.         }
  74.        
  75. };
  76.  
  77. int main()
  78. {
  79.     progress_bar progress(0, 20);
  80.    
  81.     cout << "\n  progress bar simples em ascii: \n\n";
  82.    
  83.     for( int i=0; i<=100; i++)
  84.     {
  85.         progress.setProgresso(i);
  86.         progress.show();
  87.         Sleep( 500 );
  88.     }
  89.        
  90.     system("pause>nul");
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement