Advertisement
Guest User

Untitled

a guest
Jun 14th, 2015
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <cstdio>
  4. #include <locale.h>
  5. #include <conio.h>
  6. #include <cstdlib>
  7. #include <time.h>
  8. #include <vector>
  9.  
  10.  
  11. using namespace std;
  12.  
  13. //klasy
  14.  
  15. class ShowMenu
  16. {
  17. public:
  18.     void Show();
  19.    
  20. };
  21.  
  22. class GeneratePass
  23. {
  24.    
  25. private:
  26.     int length;
  27.     int l; // dlugosc calego hasla
  28.     int ll; // ilosc malych liter - przedzial 1 do l-3
  29.     int lu; // ilosc wielkich liter - przedzial 1 do l-ll-2
  30.     int ld; // ilosc cyfr - przedzial 1 do l-ll-lu-1
  31.     int lc; // ilosc znakow specjalnych lc = l-ll-lu-ld
  32.     char *maintab; // glowna tablica
  33.     char *lowertab; //tablica z malymi znakami
  34.     char *uppertab; //tablica z wielkimi znakami
  35.     char *digittab; //tablica z cyframi
  36.     char *chartab; //tablica ze znakami specjalnymi
  37.    
  38.    
  39.    
  40.  
  41. public:
  42.     void ChooseLenght();
  43.     void CreateList();
  44.    
  45.  
  46. };
  47.  
  48.  
  49. void ShowMenu::Show()
  50. {
  51.     cout << "Generator oraz kreator hasel" << endl;
  52.     cout << "1. Wygeneruj haslo" << endl;
  53.     cout << "2. Sprawdz moc swojego obecnego hasla" << endl;
  54.     cout << "3. Zakoncz program" << endl;
  55. }
  56.  
  57. void GeneratePass::ChooseLenght()
  58. {
  59.  
  60.     cout << "1. Wybierz dlugosc hasla (8-16 znakow)" << endl << "lub" << endl;
  61.     cout << "2. Wygeneruj dlugosc hasla (8-16 znakow)" << endl;
  62.     //int a=0;
  63.     int x;
  64.     cin >> x;
  65.     switch (x)
  66.     {
  67.     case 1:
  68.         cout << "Wprowadz dlugosc hasla w przedzialach 8-16" << endl;
  69.         cin >> l;
  70.         while(l<8 || l>16)
  71.         {
  72.             cout << "Dlugosc hasla musi zawierac sie w przedzialach od 8 do 16" << endl;
  73.             cin >> l;
  74.             cout << l << "zle" << endl; // do usuniecia
  75.         }
  76.         cout << l << "dobrze" << endl; // do usuniecuia
  77.         break;
  78.  
  79.     case 2:
  80.         srand (time(NULL));
  81.         l = rand() % 8 + 8;
  82.         cout << l << " dlugosc calego hasla" << endl;
  83.         srand (time(NULL));
  84.         ll = rand() % (l-3) + 1;
  85.         cout << ll << " ilosc malych liter" << endl;
  86.         srand (time(NULL));
  87.         lu = rand() % (l-ll-2) + 1;
  88.         cout << lu << " ilosc duzych liter" << endl;
  89.         ld = rand() % (l-ll-lu-1) + 1;
  90.         cout << ld << " ilosc cyfr" << endl;
  91.         lc = l-ll-lu-ld;
  92.         cout << lc << " ilosc znakow" << endl;
  93.         break;
  94.  
  95.  
  96.     }
  97. }
  98. void GeneratePass::CreateList() // losuje znaki na podstawie ilosci wczesniej podanej
  99.     {
  100.        
  101.         // losowanie tablicy malych liter
  102.         maintab = new char [l];
  103.         lowertab = new char[ll];
  104.         srand( time( NULL ) );
  105.            
  106.         for( int i = 0; i < ll; i++ )
  107.         {
  108.             lowertab[ i ] =( char )( rand() % 24 ) + 97;
  109.        
  110.         }
  111.         for( int i = 0; i < ll; i++ )
  112.         {
  113.             cout << lowertab[ i ];
  114.        
  115.         }
  116.         cout << endl;
  117.         // losowanie tablicy wielkich liter
  118.  
  119.         uppertab = new char[lu];
  120.         srand( time( NULL ) );
  121.            
  122.         for( int i = 0; i < lu; i++ )
  123.         {
  124.             uppertab[ i ] =( char )( rand() % 24 ) + 65;
  125.        
  126.         }
  127.         for( int i = 0; i < lu; i++ )
  128.         {
  129.             cout << uppertab[ i ];
  130.        
  131.         }
  132.         cout << endl;
  133.  
  134.         // losowanie tablicy cyfr
  135.  
  136.         digittab = new char[ld];
  137.         srand( time( NULL ) );
  138.            
  139.         for( int i = 0; i < ld; i++ )
  140.         {
  141.             digittab[ i ] =( char )( rand() % 9 ) + 48;
  142.        
  143.         }
  144.         for( int i = 0; i < ld; i++ )
  145.         {
  146.             cout << digittab[ i ];
  147.        
  148.         }
  149.         cout << endl;
  150.  
  151.         // losowanie tablicy znakow specjalnych
  152.  
  153.         chartab = new char[lc];
  154.         srand( time( NULL ) );
  155.            
  156.         for( int i = 0; i < lc; i++ )
  157.         {
  158.             chartab[ i ] =( char )( rand() % 14 ) + 33;
  159.        
  160.         }
  161.         for( int i = 0; i < lc; i++ )
  162.         {
  163.             cout << chartab[ i ];
  164.        
  165.         }
  166.         cout << endl;
  167.        
  168.     }
  169.    
  170.    
  171.  
  172.  
  173.    
  174.  
  175.  
  176.  
  177.  
  178.  
  179. int main()
  180. {
  181.     setlocale( LC_ALL, "pl_PL" ); //wyświetlanie polskich znaków - nie działa :(
  182.     srand (time(NULL));
  183.     cout << "ąśąsdść"<<endl;
  184.    
  185.  
  186.     // wyświetlanie menu glownego
  187.     ShowMenu show;
  188.     show.Show();
  189.     int x;
  190.     cin >> x;
  191.     GeneratePass generate;
  192.     //GeneratePass create;
  193.     switch (x)
  194.     {
  195.     case 1:
  196.         generate.ChooseLenght();
  197.         generate.CreateList();
  198.         break;
  199.     default:
  200.         break;
  201.     }
  202.  
  203.     system("pause");
  204.     return 0;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement