Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.13 KB | None | 0 0
  1. #include "stdio.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <string.h>
  5. #include <ctime>
  6. #include <locale>
  7. using namespace std;
  8.  
  9. struct Users
  10. {
  11.     string username;
  12.     string file1;
  13.     string file2;
  14.     string file3;
  15.     string file4;
  16. };
  17.  
  18. void razdacha_prav(Users users[3], string prava_dostupa[5], int num)
  19. {
  20.     int i;
  21.     for (i = 0; i < 3; i++)
  22.     {
  23.     if (i == num) //если встретился админ
  24.         {
  25.         users[i].file1 = prava_dostupa[0];
  26.         users[i].file2 = prava_dostupa[0];
  27.         users[i].file3 = prava_dostupa[0];
  28.         users[i].file4 = prava_dostupa[0];
  29.         }
  30.     else{
  31.         users[i].file1 = prava_dostupa[rand() % 5];
  32.         users[i].file2 = prava_dostupa[rand() % 5];
  33.         users[i].file3 = prava_dostupa[rand() % 5];
  34.         users[i].file4 = prava_dostupa[rand() % 5];
  35.         }
  36.         }
  37. }
  38. void doing(Users user, string delo, int num) {
  39.     if (num == 1) {
  40.         if (delo == "read" and (user.file1 == "Чтение" or user.file1 == "Чтение и Запись" or user.file1 == "Полные права")) {
  41.             cout << "Операция прошла успешно";
  42.         }
  43.         else if (delo == "write" and (user.file1 == "Запись" or user.file1 == "Чтение и Запись" or user.file1 == "Полные права")) {
  44.             cout << "Операция прошла успешно";
  45.         }
  46.         else (delo == "grant" and user.file1 == "Полные права") {
  47.             cout << "Какое право передаём?";
  48.  
  49.             cout << "Какому пользователю?";
  50.  
  51.         }
  52.     }
  53.     else if(num == 2) {
  54.  
  55.     }
  56.     else if(num==3){
  57.    
  58.     }
  59.     else if (num == 4) {
  60.  
  61.     }
  62. }
  63. void checking_delo(Users user, string delo) {
  64.     int p;
  65.     if (delo == "read" or delo=="write"){
  66.         cout << "\nПринято. Над каким объектом совершается действие? ";
  67.         int num;
  68.         cin >> num;
  69.         doing(user, delo,num);
  70.     }
  71.     else if (delo == "grant")
  72.     {
  73.         cout << "\nПринято. Право на какой объект передается? ";
  74.         int num;
  75.         cin >> num;
  76.         doing(user, delo, num);
  77.     }
  78.     else {
  79.         cout << "\nНевозможно такое действие. Введите повторно.";
  80.         cin >> delo;
  81.         checking_delo(user, delo);
  82.     }
  83.    
  84. }
  85. void pokaz_prav(Users user)
  86. {
  87.     cout << "Username: " << user.username << "\n";
  88.     cout << "file1: " << user.file1 << "\n";
  89.     cout << "file2: " << user.file2 << "\n";
  90.     cout << "file3: " << user.file3 << "\n";
  91.     cout << "file4: " << user.file4 << "\n";
  92. }
  93. void checking_names(Users users[3], string username) {
  94.     cout << "\nПодождите выполняется проверка";
  95.     int i;
  96.     int o = 0;
  97.     string delo;//для хотелок пользователя
  98.     for (i = 0; i < 3; i++) {
  99.         if (username == users[i].username) {
  100.             cout << "\nДобро пожаловать!" << users[i].username << "Ваши права";
  101.             pokaz_prav(users[i]);
  102.         }
  103.         if (username == users[i].username) {
  104.             cin >> delo;
  105.             cout << "\n Чего хотите?";
  106.             checking_delo(users[i], delo);
  107.             break;
  108.         }
  109.         else {
  110.             o++;
  111.         }
  112.     if (o == 3) {
  113.         cout << "Нет такого пользователя. Попробуйте ещё раз. Введите имя ";
  114.         cin >> username;
  115.         checking_names(users, username);
  116.     }
  117.     }
  118. }
  119.    
  120.  
  121. int main()
  122. {
  123.     setlocale(LC_ALL, "");
  124.     string user_logins[3] = { "Vasia","Petia","Nikita" };
  125.     string prava_dostupa[5] = { "полные права","чтение","запись" ,"чтение и запись" ,"нет прав" };
  126.     int i,num;
  127.    
  128.     srand(time(0));
  129.     Users users[3]; //создается массив структур
  130.     for (i = 0; i < 3; i++)
  131.     {
  132.         users[i].username = user_logins[i];  // вводятся имена юзеров
  133.     }
  134.     for (i = 0; i < 3; i++)
  135.     {
  136.         cout << users[i].username << "\n";
  137.     }
  138.     num = rand() % 3; //num для рандомного выбора администратора
  139.     for (i = 0; i < 3; i++)
  140.     {
  141.         razdacha_prav(users, prava_dostupa, num); //раздаются права юзерам
  142.     }
  143.     string nam;
  144.     cout<< "\nВаше имя?";
  145.     cin>>nam;
  146.     cout << " " << nam;
  147.     checking_names(users, nam); //проверка пользователя
  148.     //pokaz_prav(users[0]); pokaz_prav(users[1]); pokaz_prav(users[2]);
  149.     system("pause");
  150.    
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement