fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. string what_to_do = "";
  8. int how_many = 0;
  9.  
  10. string name[1000], password[1000];
  11. string current_name = "", current_password = "", char_check = "";
  12. int current_length = 0;
  13. int account_counter = 0, account_number = 0;
  14.  
  15. bool char_lowercase = false, char_uppercase = false, char_number = false, char_sign = false;
  16. bool login_busy = false, bad_length = false, account_exist = false;
  17.  
  18. void registration();
  19. void loginBusy();
  20. void charactersCheck();
  21.  
  22. void login();
  23. void loginExist();
  24. void error();
  25. void resetBool();
  26.  
  27. int main()
  28. {
  29. while(cin >> what_to_do >> how_many)
  30. {
  31. for (int i = 0; i < how_many; i++)
  32. {
  33. if (what_to_do == "register")
  34. {
  35. registration();
  36. }
  37. else if (what_to_do == "login")
  38. {
  39. login();
  40. }
  41. else
  42. break;
  43. }
  44. }
  45.  
  46. return 0;
  47. }
  48.  
  49. void registration()
  50. {
  51. cin >> current_name >> current_password;
  52.  
  53. loginBusy();
  54.  
  55. if (login_busy == true)
  56. cout << "Login zajety\n";
  57. else
  58. {
  59. current_length = current_name.length();
  60. if (current_length < 3 || current_length > 12) error();
  61. else
  62. {
  63. char_check = current_name;
  64. charactersCheck();
  65.  
  66. if (char_sign == true) error();
  67. else
  68. {
  69. current_length = current_password.length();
  70. if (current_length < 5 || current_length > 15) error();
  71. else
  72. {
  73. resetBool();
  74. char_check = current_password;
  75. charactersCheck();
  76.  
  77. if (char_lowercase == false || char_uppercase == false || char_number == false || char_sign == false) error();
  78. else
  79. {
  80. transform(current_name.begin(), current_name.end(), current_name.begin(), ::tolower);
  81. name[account_counter] = current_name;
  82. password[account_counter] = current_password;
  83. account_counter++;
  84. cout << "Zarejestrowano\n";
  85. }
  86. }
  87. }
  88. }
  89. }
  90. resetBool();
  91. }
  92.  
  93. void loginBusy()
  94. {
  95. for (int j = 0; j < account_counter; j++)
  96. {
  97. if (name[j] == current_name)
  98. {
  99. login_busy = true;
  100. break;
  101. }
  102. }
  103. }
  104.  
  105. void charactersCheck()
  106. {
  107. for (int j = 0; j < current_length; j++)
  108. {
  109. if (char_check[j] >= 48 && char_check[j] <= 57)
  110. char_number = true;
  111. if (char_check[j] >= 97 && char_check[j] <= 122)
  112. char_lowercase = true;
  113. if (char_check[j] >= 65 && char_check[j] <= 90)
  114. char_uppercase = true;
  115. if (char_check[j] >= 33 && char_check[j] <= 47)
  116. char_sign = true;
  117. if (char_check[j] >= 58 && char_check[j] <= 64)
  118. char_sign = true;
  119. if (char_check[j] >= 91 && char_check[j] <= 96)
  120. char_sign = true;
  121. if (char_check[j] >= 123 && char_check[j] <= 126)
  122. char_sign = true;
  123. }
  124. }
  125.  
  126. void login()
  127. {
  128. cin >> current_name >> current_password;
  129.  
  130. transform(current_name.begin(), current_name.end(), current_name.begin(), ::tolower);
  131.  
  132. loginExist();
  133. if (account_exist == false)
  134. cout << "Konto nie istnieje\n";
  135. else
  136. {
  137. if (password[account_number] == current_password)
  138. cout << "Zalogowano\n";
  139. else
  140. cout << "Zle haslo\n";
  141. }
  142.  
  143. resetBool();
  144. }
  145.  
  146. void loginExist()
  147. {
  148. for (int j = 0; j < account_counter; j++)
  149. {
  150. if (name[j] == current_name)
  151. {
  152. account_exist = true;
  153. account_number = j;
  154. }
  155. }
  156. }
  157.  
  158. void error()
  159. {
  160. cout << "Blad\n";
  161. }
  162.  
  163. void resetBool()
  164. {
  165. login_busy = false;
  166. bad_length = false;
  167. char_lowercase = false;
  168. char_uppercase = false;
  169. char_number = false;
  170. char_sign = false;
  171. account_exist = false;
  172. }
Success #stdin #stdout 0s 4180KB
stdin
register 3
bajtek13 Haslo123@
BITEK 123456789
bajtek13 bajteK55%
login 5
bajtek13 bajteK55%
bajtek13 Haslo123@
BITEK 123456789
bajtocjusz haselko49
bitariusz 123haSlo!@#
register 1
BITEK Dobrehaslo1!
login 1
BITEK Dobrehaslo1!
register 13
aa !Haslo1
aa1 !Haslo1
1234567890abc !Haslo1
abcd# !Haslo1
dobrylogin zle
dobrylogin zle12
dobrylogin zle#@
dobrylogin zleHaslo
dobrylogin zleHaslo12
dobrylogin zleHaslo@
dobrylogin dobreHaslo1@
dobrylogin3 ZaDlugieHaslo1?
dobrylogin4 ZaDlugieHaslo12@
login 6
aa !Haslo1
aa1 !Haslo1
AA1 !Haslo1
AA1 !HASLO1
dobrylogin dobreHaslo1@
DOBRYLOGIN dobreHaslo1@
stdout
Zarejestrowano
Blad
Login zajety
Zle haslo
Zalogowano
Konto nie istnieje
Konto nie istnieje
Konto nie istnieje
Zarejestrowano
Zalogowano
Blad
Zarejestrowano
Blad
Blad
Blad
Blad
Blad
Blad
Blad
Blad
Zarejestrowano
Zarejestrowano
Blad
Konto nie istnieje
Zalogowano
Zalogowano
Zle haslo
Zalogowano
Zalogowano