Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <list>
- #include <conio.h>
- #include <Windows.h>
- #include <cstdio>
- #include <stdio.h>
- using namespace std;
- struct kasir
- {
- string login;
- string pass;
- char rezume[100];
- };
- struct admin
- {
- string login;
- string pass;
- };
- struct Users
- {
- string login;
- string parol;
- int post;
- };
- list<Users> Eusers = list <Users>();
- auto Kusers = list<kasir>();
- /*void hesh(string &parol) {
- int k = parol.length();
- char ch;
- string str = parol;
- parol = "";
- for (auto i : str) {
- ch = i;
- parol += ch % 10;
- }
- }*/
- void readadmin(admin *buf) {
- fstream admin("admin", ios::in | ios::app | ios::binary);
- admin.seekg(0);
- admin.read((char*)buf, sizeof(*buf));
- admin.close();
- }
- bool testpass(string parol)
- {
- int sizepass = parol.length();
- bool flag = 1;
- for (int i = 0; i < sizepass; i++)
- {
- if ((parol[i] >= 'A' && parol[i] <= 'z') || (parol[i] >= '0' && parol[i] <= '9') && !(parol[i] >= 91 && parol[i] <= 96))
- ;
- else
- {
- cout << "Недопустимые символы при вводе пароля\n";
- flag = 0;
- }
- if (sizepass < 6 || sizepass > 14)
- {
- cout << "НедопустимаЯ длина паролЯ.\nДлина пароля должна быть не менее 6 и не более 14 символов\n";
- flag = 0;
- break;
- }
- }
- return flag;
- }
- bool testlogin(string login) {
- bool flag = true;
- int sizelog = login.length();
- for (int i = 0; i < sizelog; i++)
- {
- if ((login[i] >= 'A' && login[i] <= 'z') || (login[i] >= '0' && login[i] <= '9') && !(login[i] >= 91 && login[i] <= 96))
- ;
- else
- {
- cout << "Недопустимые символы при вводе логина\n";
- flag = 0;
- break;
- }
- }
- return flag;
- }
- void registracia()
- {
- bool flag = false;
- fstream file("users", ios::binary | ios::app | ios::out);
- auto *buf = new Users;
- char ch = ' ';
- buf->login = "";
- do {
- bool flag = true;
- cout << "Введите логин: ";
- cin >> buf->login;
- cout << "\n";
- cout << "Введите пароль: ";
- buf->parol = "";
- while (1) {
- ch = _getch();
- if (ch != 13) {
- if (ch != 8) {
- buf->parol += ch;
- cout << "*";
- }
- else if(!buf->parol.empty()){
- buf->parol.pop_back();
- cout << "\b \b";
- }
- }
- else break;
- }
- cout << "\n";
- if (!(testlogin(buf->login)))
- flag = false;
- if (!testpass(buf->parol))
- flag = false;
- for (auto i : Eusers)
- if (i.login == buf->login) {
- flag = false;
- cout << "Такой логин уже существует, попробуйте другой\n";
- }
- if (!flag)
- continue;
- else
- {
- int k = 0;
- cout << "Зарегистрироваться в качестве зрителя(1)/кассира(2)\n";
- cin >> k;
- if (k == 1) {
- buf->post = 1;
- break;
- }
- else if (k == 2) {
- cout << "Вы выбрали регистрацию кассира, напишите коротко о себе, почему вы хотите стать кассиром в нашем театре\n(Не больше 100 символов!)\n" << endl;
- fstream kassiri("kassiri", ios::out | ios::app | ios::binary);
- char *chs = new char[100];
- int i = 0;
- cin.ignore(100, '\n');
- gets_s(chs, 100);
- cout << endl;
- kassiri.write((char*)&buf->login, sizeof(buf->login));
- kassiri.write((char*)&buf->parol, sizeof(buf->parol));
- kassiri.write((char*)chs, 100);
- cout << "Ваша заявка оставлена на рассмотрение администратором!\n";
- kassiri.close();
- return;
- }
- }
- } while (!flag);
- //hesh(buf->parol);
- Eusers.push_back(*buf);
- file.write((char*)buf, sizeof(*buf));
- cout << "Регистрация прошла успешно!" << endl;
- file.close();
- }
- void read()
- {
- ifstream file("users", ios::binary|ios::app);
- file.seekg(0);
- auto *buf = new Users;
- while (!file.eof())
- {
- file.read((char*)buf, sizeof(*buf));
- Eusers.push_back(*buf);
- }
- Eusers.pop_back();
- file.close();
- fstream kfile("kassiri", ios::binary | ios::in | ios::app);
- kfile.seekg(0);
- auto *buf1 = new kasir;
- while (!kfile.eof())
- {
- kfile.read((char*)&buf1->login, sizeof(buf1->login));
- kfile.read((char*)&buf1->pass, sizeof(buf1->pass));
- kfile.read((char*)buf1->rezume, 100);
- Kusers.push_back(*buf1);
- }
- Kusers.pop_back();
- kfile.close();
- }
- void avtorizacia() {
- bool flag = true;
- auto *buf = new Users;
- int k = 0;
- char ch = 'a';
- system("cls");
- cout << "Введите логин: ";
- cin >> buf->login;
- cout << "\n";
- cout << "Введите пароль: ";
- buf->parol = "";
- while (true) {
- ch = _getch();
- if (ch != 13) {
- if (ch != 8) {
- buf->parol += ch;
- cout << "*";
- }
- else {
- buf->parol.pop_back();
- cout << "\b \b";
- }
- }
- else break;
- }
- cout << "\n";
- for (auto i : Eusers) {
- // hesh(buf->parol);
- if ((i.login == buf->login) && (i.parol == buf->parol)) {
- //menu[];
- cout << "Шалом, " << i.login << "!\n";
- break;
- }
- }
- }
- void exit() {
- exit(0);
- }
- void menuadmina()
- {
- cout << "Хочешь посмотреть" <<Kusers.size()<<" резюме?!??" << endl;
- for (auto single : Kusers)
- cout << endl << single.login << " " << single.pass << endl << single.rezume << endl;
- system("pause");
- }
- void administrator() {
- string secret = "";
- for (int i = 0; i < 4; i++)
- {
- secret += _getch();
- }
- if (secret != "dmin") {
- cout << "\aError 1488!!!\nВы не Эрик!\n";
- while (_getch() != '0') {
- cout << "\a";
- }
- exit(0);
- }
- system("cls");
- system("color 02");
- for (int i = 0; i < 100; i++)
- {
- for (int j = 0; j < 120; j++) {
- cout << rand() % 2;
- }
- cout << endl;
- }
- system("cls");
- system("color 07");
- auto *buf = new admin;
- readadmin(buf);
- secret = "";
- cout << "Привет Админ!\n";
- cout << "Введите логин: "; //daetojosko
- char ch = ' ';
- while (secret != buf->login) {
- ch = _getch();
- if (ch != 8) {
- secret += ch;
- cout << "*";
- }
- else {
- secret.pop_back();
- cout << "\b \b";
- }
- }
- secret.pop_back();
- cout << "\n";
- cout << "Введите пароль: "; //ErikApple
- secret.clear();
- while (secret != buf->pass) {
- ch = _getch();
- if (ch != 8) {
- secret += ch;
- cout << "*";
- }
- else {
- secret.pop_back();
- cout << "\b \b";
- }
- }
- menuadmina();
- }
- void(*menu[])(void)
- {
- exit, avtorizacia, registracia, administrator
- };
- void okno1() {
- bool flag = true;
- char k;
- int s = 0;
- cout << "\t\tДобро пожаловать!\n";
- cout << "\t\tПриветствуем вас в нашем театре 'Arzumanyan Great Theatre'\n\n\n\n";
- cout << "Авторизироваться(1)\n";
- cout << "Зарегистрироваться(2)\n";
- cout << "Выход(0)\n";
- //cout << "Администратор(1337 admin)\n";
- do {
- k = _getch();
- if ((!(k >= '0' && k <= '2'))) {
- cout << "\aВыберите пункт меню!\n";
- }
- s = k - '0';
- } while ((!(k >= '0' && k <= '2')) && k != 'a');
- if (k == 'a')
- s = 3;
- menu[s]();
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- read();
- okno1();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement