Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <list>
  5. #include <conio.h>
  6. #include <Windows.h>
  7. #include <cstdio>
  8. #include <stdio.h>
  9.  
  10. using namespace std;
  11.  
  12. struct kasir
  13. {
  14. string login;
  15. string pass;
  16. char rezume[100];
  17. };
  18. struct admin
  19. {
  20. string login;
  21. string pass;
  22. };
  23. struct Users
  24. {
  25. string login;
  26. string parol;
  27. int post;
  28. };
  29. list<Users> Eusers = list <Users>();
  30. auto Kusers = list<kasir>();
  31.  
  32. /*void hesh(string &parol) {
  33. int k = parol.length();
  34. char ch;
  35. string str = parol;
  36. parol = "";
  37. for (auto i : str) {
  38. ch = i;
  39. parol += ch % 10;
  40. }
  41. }*/
  42. void readadmin(admin *buf) {
  43. fstream admin("admin", ios::in | ios::app | ios::binary);
  44. admin.seekg(0);
  45. admin.read((char*)buf, sizeof(*buf));
  46. admin.close();
  47. }
  48. bool testpass(string parol)
  49. {
  50. int sizepass = parol.length();
  51. bool flag = 1;
  52. for (int i = 0; i < sizepass; i++)
  53. {
  54. if ((parol[i] >= 'A' && parol[i] <= 'z') || (parol[i] >= '0' && parol[i] <= '9') && !(parol[i] >= 91 && parol[i] <= 96))
  55. ;
  56. else
  57. {
  58. cout << "Недопустимые символы при вводе пароля\n";
  59. flag = 0;
  60. }
  61. if (sizepass < 6 || sizepass > 14)
  62. {
  63. cout << "НедопустимаЯ длина паролЯ.\nДлина пароля должна быть не менее 6 и не более 14 символов\n";
  64. flag = 0;
  65. break;
  66. }
  67. }
  68. return flag;
  69. }
  70. bool testlogin(string login) {
  71. bool flag = true;
  72. int sizelog = login.length();
  73. for (int i = 0; i < sizelog; i++)
  74. {
  75. if ((login[i] >= 'A' && login[i] <= 'z') || (login[i] >= '0' && login[i] <= '9') && !(login[i] >= 91 && login[i] <= 96))
  76. ;
  77. else
  78. {
  79. cout << "Недопустимые символы при вводе логина\n";
  80. flag = 0;
  81. break;
  82. }
  83. }
  84. return flag;
  85.  
  86. }
  87. void registracia()
  88. {
  89. bool flag = false;
  90. fstream file("users", ios::binary | ios::app | ios::out);
  91. auto *buf = new Users;
  92. char ch = ' ';
  93. buf->login = "";
  94. do {
  95. bool flag = true;
  96. cout << "Введите логин: ";
  97. cin >> buf->login;
  98. cout << "\n";
  99. cout << "Введите пароль: ";
  100. buf->parol = "";
  101. while (1) {
  102. ch = _getch();
  103.  
  104. if (ch != 13) {
  105. if (ch != 8) {
  106. buf->parol += ch;
  107. cout << "*";
  108. }
  109. else if(!buf->parol.empty()){
  110. buf->parol.pop_back();
  111. cout << "\b \b";
  112. }
  113. }
  114. else break;
  115. }
  116. cout << "\n";
  117. if (!(testlogin(buf->login)))
  118. flag = false;
  119. if (!testpass(buf->parol))
  120. flag = false;
  121.  
  122. for (auto i : Eusers)
  123. if (i.login == buf->login) {
  124. flag = false;
  125. cout << "Такой логин уже существует, попробуйте другой\n";
  126. }
  127. if (!flag)
  128. continue;
  129. else
  130. {
  131. int k = 0;
  132. cout << "Зарегистрироваться в качестве зрителя(1)/кассира(2)\n";
  133. cin >> k;
  134. if (k == 1) {
  135. buf->post = 1;
  136. break;
  137. }
  138. else if (k == 2) {
  139. cout << "Вы выбрали регистрацию кассира, напишите коротко о себе, почему вы хотите стать кассиром в нашем театре\n(Не больше 100 символов!)\n" << endl;
  140.  
  141. fstream kassiri("kassiri", ios::out | ios::app | ios::binary);
  142. char *chs = new char[100];
  143.  
  144.  
  145. int i = 0;
  146. cin.ignore(100, '\n');
  147. gets_s(chs, 100);
  148. cout << endl;
  149. kassiri.write((char*)&buf->login, sizeof(buf->login));
  150. kassiri.write((char*)&buf->parol, sizeof(buf->parol));
  151. kassiri.write((char*)chs, 100);
  152. cout << "Ваша заявка оставлена на рассмотрение администратором!\n";
  153. kassiri.close();
  154. return;
  155. }
  156. }
  157. } while (!flag);
  158. //hesh(buf->parol);
  159. Eusers.push_back(*buf);
  160. file.write((char*)buf, sizeof(*buf));
  161. cout << "Регистрация прошла успешно!" << endl;
  162. file.close();
  163. }
  164. void read()
  165. {
  166.  
  167. ifstream file("users", ios::binary|ios::app);
  168. file.seekg(0);
  169. auto *buf = new Users;
  170. while (!file.eof())
  171. {
  172. file.read((char*)buf, sizeof(*buf));
  173. Eusers.push_back(*buf);
  174. }
  175. Eusers.pop_back();
  176. file.close();
  177. fstream kfile("kassiri", ios::binary | ios::in | ios::app);
  178. kfile.seekg(0);
  179. auto *buf1 = new kasir;
  180. while (!kfile.eof())
  181. {
  182. kfile.read((char*)&buf1->login, sizeof(buf1->login));
  183. kfile.read((char*)&buf1->pass, sizeof(buf1->pass));
  184. kfile.read((char*)buf1->rezume, 100);
  185. Kusers.push_back(*buf1);
  186. }
  187. Kusers.pop_back();
  188. kfile.close();
  189. }
  190. void avtorizacia() {
  191. bool flag = true;
  192. auto *buf = new Users;
  193. int k = 0;
  194. char ch = 'a';
  195.  
  196. system("cls");
  197. cout << "Введите логин: ";
  198. cin >> buf->login;
  199. cout << "\n";
  200. cout << "Введите пароль: ";
  201. buf->parol = "";
  202. while (true) {
  203. ch = _getch();
  204.  
  205. if (ch != 13) {
  206. if (ch != 8) {
  207. buf->parol += ch;
  208. cout << "*";
  209. }
  210. else {
  211. buf->parol.pop_back();
  212. cout << "\b \b";
  213. }
  214. }
  215. else break;
  216. }
  217. cout << "\n";
  218. for (auto i : Eusers) {
  219. // hesh(buf->parol);
  220. if ((i.login == buf->login) && (i.parol == buf->parol)) {
  221. //menu[];
  222. cout << "Шалом, " << i.login << "!\n";
  223. break;
  224. }
  225. }
  226. }
  227. void exit() {
  228. exit(0);
  229. }
  230. void menuadmina()
  231. {
  232. cout << "Хочешь посмотреть" <<Kusers.size()<<" резюме?!??" << endl;
  233.  
  234. for (auto single : Kusers)
  235. cout << endl << single.login << " " << single.pass << endl << single.rezume << endl;
  236. system("pause");
  237. }
  238. void administrator() {
  239. string secret = "";
  240. for (int i = 0; i < 4; i++)
  241. {
  242. secret += _getch();
  243. }
  244. if (secret != "dmin") {
  245. cout << "\aError 1488!!!\nВы не Эрик!\n";
  246. while (_getch() != '0') {
  247. cout << "\a";
  248. }
  249. exit(0);
  250. }
  251. system("cls");
  252. system("color 02");
  253. for (int i = 0; i < 100; i++)
  254. {
  255. for (int j = 0; j < 120; j++) {
  256.  
  257. cout << rand() % 2;
  258. }
  259. cout << endl;
  260. }
  261. system("cls");
  262. system("color 07");
  263. auto *buf = new admin;
  264. readadmin(buf);
  265. secret = "";
  266. cout << "Привет Админ!\n";
  267. cout << "Введите логин: "; //daetojosko
  268. char ch = ' ';
  269. while (secret != buf->login) {
  270. ch = _getch();
  271. if (ch != 8) {
  272. secret += ch;
  273. cout << "*";
  274. }
  275. else {
  276. secret.pop_back();
  277. cout << "\b \b";
  278. }
  279. }
  280. secret.pop_back();
  281. cout << "\n";
  282. cout << "Введите пароль: "; //ErikApple
  283. secret.clear();
  284. while (secret != buf->pass) {
  285. ch = _getch();
  286. if (ch != 8) {
  287. secret += ch;
  288. cout << "*";
  289. }
  290. else {
  291. secret.pop_back();
  292. cout << "\b \b";
  293. }
  294. }
  295. menuadmina();
  296. }
  297. void(*menu[])(void)
  298. {
  299. exit, avtorizacia, registracia, administrator
  300. };
  301.  
  302. void okno1() {
  303. bool flag = true;
  304. char k;
  305. int s = 0;
  306. cout << "\t\tДобро пожаловать!\n";
  307. cout << "\t\tПриветствуем вас в нашем театре 'Arzumanyan Great Theatre'\n\n\n\n";
  308. cout << "Авторизироваться(1)\n";
  309. cout << "Зарегистрироваться(2)\n";
  310. cout << "Выход(0)\n";
  311. //cout << "Администратор(1337 admin)\n";
  312. do {
  313. k = _getch();
  314. if ((!(k >= '0' && k <= '2'))) {
  315. cout << "\aВыберите пункт меню!\n";
  316. }
  317. s = k - '0';
  318. } while ((!(k >= '0' && k <= '2')) && k != 'a');
  319. if (k == 'a')
  320. s = 3;
  321. menu[s]();
  322. }
  323.  
  324. int main()
  325. {
  326. setlocale(LC_ALL, "Russian");
  327. read();
  328. okno1();
  329.  
  330.  
  331. system("pause");
  332. return 0;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement