Advertisement
Guest User

User

a guest
Jan 6th, 2022
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.14 KB | None | 0 0
  1. ____________________
  2. #pragma once
  3. #include "Utility.h"
  4. #include "User.h"
  5. #include "Student.h"
  6. #include "Tutor.h"
  7. #include "Admin.h"
  8. #include "Graph.h"
  9. class Platform
  10. {
  11.     friend class Admin;
  12. public:
  13. //THE USER SHOULD HAVE ACCESS SOMEHOW TO THIS TWO VECTOR AND 5 FUNCTIONS BELOW
  14.     std::vector<Course> allCourses;
  15.     std::vector<User> allUsers;
  16.    
  17.     void printUserDatabase()noexcept;
  18.     void printCourseDatabase()noexcept;
  19.     void loadUserDatabase()noexcept;
  20.     void loadCourseDatabase()noexcept;
  21.     void header()const noexcept;
  22. private:
  23.    
  24.    
  25.     //lista svih kurseva
  26.     std::vector<User> getAllUsers()const noexcept;
  27.     std::vector<Course> getAllCourses()const noexcept;
  28.     //editovanje korisnika
  29.     void createUser()noexcept;                                         //metoda za kreiranje novog korisnika
  30.     void editUser()noexcept;                                           //metoda za editovanje korisnika na osnovu username-a
  31.     void addUser(User&);                                       //upisivanje korisnika u datoteku
  32.     void changeName(std::string)noexcept(false);                              //mijenjaje imena
  33.     void changeSurname(std::string)noexcept(false);                           //mijenjaje prezimena
  34.     void changeUsername(std::string)noexcept(false);                          //mijenjanje username-a
  35.     void removeAccount(std::string)noexcept(false);                           //brisanje naloga
  36.     void updateUserFiles();
  37.     User getAt(int index)noexcept(false);
  38.  
  39.     //editovanje kursa
  40.     void createCourse()noexcept;                                       //metoda za kreiranje novog kursa
  41.     void editCourse()noexcept;                                         //metoda za editovanje kursa na osnovu ID
  42.     void changeCourseName(std::string)noexcept(false);                        //mijenjanje imena kursa
  43.     void removeCourse(std::string) noexcept;               //brisanje kursa
  44.     void addTutor(std::string&)  noexcept;                            //dodavanje predavaca na kurs, na osnovu ID
  45.     void addCourse(Course&) noexcept;                                 //upisivanje kursa u datoteku
  46.     void updateCourseFiles();
  47.     int checkUser(std::string)noexcept;
  48.     std::vector<User> findEnrolledStudent(std::string& id);
  49.     void findUnion(std::string& a, std::string& b);
  50.     void findIntersection(std::string& a, std::string& b);
  51.     void findDifference(std::string& a, std::string& b);
  52.  
  53.     int checkLogin(std::string username, std::string password)noexcept;
  54.     int login(std::string a) noexcept;
  55.     void loginMethod(User*);
  56.  
  57.     void graph();
  58. public:
  59.     Platform() {}
  60.     void menu()noexcept;
  61. protected:
  62. };
  63.  
  64. _________________________________________________________________________________________________
  65. #pragma once
  66. #include "Utility.h"
  67. #include "Course.h"
  68.  
  69. class User
  70. {
  71. public:
  72.     User()noexcept;                                                                //defaultni konstruktor
  73.     User(std::string, std::string, std::string, std::string)noexcept;              //ime, prezime, username, sifra -> type automatski
  74.     User(std::string, std::string, std::string, std::string, std::string)noexcept; //ime, prezime, username, sifra, type
  75.  
  76.     std::string classType()const noexcept; //vraca nam tip objekta
  77.     std::string getName()const noexcept;                                                  //getter za ime
  78.     std::string getPassword()const noexcept;                                              //getter za password
  79.     std::string getSurname()const noexcept;                                               //getter za prezime
  80.     std::string getUsername()const noexcept;                                              //getter za username
  81.  
  82.     virtual std::string checkType()const noexcept;                                       //vraca tip koji je sastavni dio/atribut korisnika
  83.     virtual void loginMethod()noexcept(false) {}; //virtualna metoda za login
  84.     virtual void menu()noexcept;                                                   //menu je virtualan jer svaka izvedena klasa ima svoj menu
  85.  
  86.     void addFriend(User&);                                                 // dodavanje prijatelja na osnovu username-a, gleda se samo username kod Usera
  87.     void checkRequest()noexcept;                                                   //metoda koja omogucava pregled dobijenih zahtjeva i njihovo odobravanje/odbijanje
  88.     void sendMessage() noexcept;                                                    //metoda za slanje poruka na osnovu username-a
  89.     void sendRequest() noexcept;                                                    //metoda za slanje zahtjeva na osnovu username-a
  90.     bool checkFriend(std::string) noexcept;                       //provjerava da li je korisnik sa datim username-om prijatelj
  91.     bool checkUsername(std::string username)const noexcept;
  92. protected:
  93.  
  94.     std::string myMessagePath(std::string, std::string)const noexcept; //kreiranje imena fajla za inbox izmedju dva korisnika
  95.     std::string myPath();                                //
  96.     std::string password;             //password korisnika
  97.     std::string name;                 //ime korisnika
  98.     std::string surname;              //prezime korisnika
  99.     std::string type;                 //tip korisnika
  100.     std::string username;             //username korisnika
  101.  
  102.     std::vector<Course> enrolledCourses;         //lista kurseva na koje je korisnik prijavljen ili na kojima predaje
  103.     std::vector<User> friends;        //lista prijatelja
  104.     std::vector<User> requests;       //lista zahtjeva za prijateljstvo
  105.  
  106.     void header()const noexcept;                                                         //sluzi mi samo za ljepsi ispis prilikom ispisa tabele sa korisnicima
  107.     void loadEnrolledCourses()noexcept;                                    //ucitavanje kurseva na kojim predavac predaje ili kurseva koje student pohadja
  108.     void loadFiles()noexcept;
  109.     void loadFriendsDatabase()noexcept;                                            //ucitavanje prijatelja iz fajla u vektor
  110.     void loadInbox()noexcept;                                                      //ucitavanje poruka na osnovu username-a
  111.     void printEnrolledCoursesDatabase() noexcept;                                   //ispis mojih kurseva
  112.     void printFriendsDatabase() noexcept;                                           //ispis datoteke gdje se nalazi lista prijatelja, fajl this->usernamefriends.txt
  113.     void updateUserFiles();                                        //updateovanje fajlova u slucaju promjene
  114.    
  115.     friend  std::istream& operator>>(std::istream& dat, User& a)
  116.     {
  117.         dat >> a.name >> a.surname >> a.username >> a.password >> a.type;
  118.         return dat;
  119.     }
  120.     friend  std::ostream& operator<<(std::ostream& dat, User& a)
  121.     {
  122.         dat << w_ << a.name << w_ << a.surname << w_ << a.username << w_ << a.password << w_ << a.type;
  123.         return dat;
  124.     }
  125.  
  126.     friend bool operator==(const User& a, const User& b) {
  127.         return  a.getUsername() == b.getUsername();
  128.     }
  129.     friend bool operator<(const User& a, const User& b) {
  130.         return  a.getUsername() < b.getUsername();
  131.     }
  132.     friend bool operator>(const User& a, const User& b) {
  133.         return a.getUsername() > b.getUsername();
  134.     }
  135.     friend bool operator<=(const User& a, const User& b) {
  136.         return a.getUsername() <= b.getUsername();
  137.     }
  138.     friend bool operator>=(const User& a, const User& b) {
  139.         return a.getUsername() >= b.getUsername();
  140.     }
  141.  
  142. };
  143.  
  144.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement