Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include <iostream>
- #include <string>
- #include <string.h>
- #include <ctime>
- #include <locale>
- using namespace std;
- struct Users
- {
- string username;
- string file1;
- string file2;
- string file3;
- string file4;
- };
- void razdacha_prav(Users users[3], string prava_dostupa[5], int num)
- {
- int i;
- for (i = 0; i < 3; i++)
- {
- if (i == num) //если встретился админ
- {
- users[i].file1 = prava_dostupa[0];
- users[i].file2 = prava_dostupa[0];
- users[i].file3 = prava_dostupa[0];
- users[i].file4 = prava_dostupa[0];
- }
- else{
- users[i].file1 = prava_dostupa[rand() % 5];
- users[i].file2 = prava_dostupa[rand() % 5];
- users[i].file3 = prava_dostupa[rand() % 5];
- users[i].file4 = prava_dostupa[rand() % 5];
- }
- }
- }
- void doing(Users user, string delo, int num) {
- if (num == 1) {
- if (delo == "read" and (user.file1 == "Чтение" or user.file1 == "Чтение и Запись" or user.file1 == "Полные права")) {
- cout << "Операция прошла успешно";
- }
- else if (delo == "write" and (user.file1 == "Запись" or user.file1 == "Чтение и Запись" or user.file1 == "Полные права")) {
- cout << "Операция прошла успешно";
- }
- else (delo == "grant" and user.file1 == "Полные права") {
- cout << "Какое право передаём?";
- cout << "Какому пользователю?";
- }
- }
- else if(num == 2) {
- }
- else if(num==3){
- }
- else if (num == 4) {
- }
- }
- void checking_delo(Users user, string delo) {
- int p;
- if (delo == "read" or delo=="write"){
- cout << "\nПринято. Над каким объектом совершается действие? ";
- int num;
- cin >> num;
- doing(user, delo,num);
- }
- else if (delo == "grant")
- {
- cout << "\nПринято. Право на какой объект передается? ";
- int num;
- cin >> num;
- doing(user, delo, num);
- }
- else {
- cout << "\nНевозможно такое действие. Введите повторно.";
- cin >> delo;
- checking_delo(user, delo);
- }
- }
- void pokaz_prav(Users user)
- {
- cout << "Username: " << user.username << "\n";
- cout << "file1: " << user.file1 << "\n";
- cout << "file2: " << user.file2 << "\n";
- cout << "file3: " << user.file3 << "\n";
- cout << "file4: " << user.file4 << "\n";
- }
- void checking_names(Users users[3], string username) {
- cout << "\nПодождите выполняется проверка";
- int i;
- int o = 0;
- string delo;//для хотелок пользователя
- for (i = 0; i < 3; i++) {
- if (username == users[i].username) {
- cout << "\nДобро пожаловать!" << users[i].username << "Ваши права";
- pokaz_prav(users[i]);
- }
- if (username == users[i].username) {
- cin >> delo;
- cout << "\n Чего хотите?";
- checking_delo(users[i], delo);
- break;
- }
- else {
- o++;
- }
- if (o == 3) {
- cout << "Нет такого пользователя. Попробуйте ещё раз. Введите имя ";
- cin >> username;
- checking_names(users, username);
- }
- }
- }
- int main()
- {
- setlocale(LC_ALL, "");
- string user_logins[3] = { "Vasia","Petia","Nikita" };
- string prava_dostupa[5] = { "полные права","чтение","запись" ,"чтение и запись" ,"нет прав" };
- int i,num;
- srand(time(0));
- Users users[3]; //создается массив структур
- for (i = 0; i < 3; i++)
- {
- users[i].username = user_logins[i]; // вводятся имена юзеров
- }
- for (i = 0; i < 3; i++)
- {
- cout << users[i].username << "\n";
- }
- num = rand() % 3; //num для рандомного выбора администратора
- for (i = 0; i < 3; i++)
- {
- razdacha_prav(users, prava_dostupa, num); //раздаются права юзерам
- }
- string nam;
- cout<< "\nВаше имя?";
- cin>>nam;
- cout << " " << nam;
- checking_names(users, nam); //проверка пользователя
- //pokaz_prav(users[0]); pokaz_prav(users[1]); pokaz_prav(users[2]);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement