Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ____________________
- #pragma once
- #include "Utility.h"
- #include "User.h"
- #include "Student.h"
- #include "Tutor.h"
- #include "Admin.h"
- #include "Graph.h"
- class Platform
- {
- friend class Admin;
- public:
- //THE USER SHOULD HAVE ACCESS SOMEHOW TO THIS TWO VECTOR AND 5 FUNCTIONS BELOW
- std::vector<Course> allCourses;
- std::vector<User> allUsers;
- void printUserDatabase()noexcept;
- void printCourseDatabase()noexcept;
- void loadUserDatabase()noexcept;
- void loadCourseDatabase()noexcept;
- void header()const noexcept;
- private:
- //lista svih kurseva
- std::vector<User> getAllUsers()const noexcept;
- std::vector<Course> getAllCourses()const noexcept;
- //editovanje korisnika
- void createUser()noexcept; //metoda za kreiranje novog korisnika
- void editUser()noexcept; //metoda za editovanje korisnika na osnovu username-a
- void addUser(User&); //upisivanje korisnika u datoteku
- void changeName(std::string)noexcept(false); //mijenjaje imena
- void changeSurname(std::string)noexcept(false); //mijenjaje prezimena
- void changeUsername(std::string)noexcept(false); //mijenjanje username-a
- void removeAccount(std::string)noexcept(false); //brisanje naloga
- void updateUserFiles();
- User getAt(int index)noexcept(false);
- //editovanje kursa
- void createCourse()noexcept; //metoda za kreiranje novog kursa
- void editCourse()noexcept; //metoda za editovanje kursa na osnovu ID
- void changeCourseName(std::string)noexcept(false); //mijenjanje imena kursa
- void removeCourse(std::string) noexcept; //brisanje kursa
- void addTutor(std::string&) noexcept; //dodavanje predavaca na kurs, na osnovu ID
- void addCourse(Course&) noexcept; //upisivanje kursa u datoteku
- void updateCourseFiles();
- int checkUser(std::string)noexcept;
- std::vector<User> findEnrolledStudent(std::string& id);
- void findUnion(std::string& a, std::string& b);
- void findIntersection(std::string& a, std::string& b);
- void findDifference(std::string& a, std::string& b);
- int checkLogin(std::string username, std::string password)noexcept;
- int login(std::string a) noexcept;
- void loginMethod(User*);
- void graph();
- public:
- Platform() {}
- void menu()noexcept;
- protected:
- };
- _________________________________________________________________________________________________
- #pragma once
- #include "Utility.h"
- #include "Course.h"
- class User
- {
- public:
- User()noexcept; //defaultni konstruktor
- User(std::string, std::string, std::string, std::string)noexcept; //ime, prezime, username, sifra -> type automatski
- User(std::string, std::string, std::string, std::string, std::string)noexcept; //ime, prezime, username, sifra, type
- std::string classType()const noexcept; //vraca nam tip objekta
- std::string getName()const noexcept; //getter za ime
- std::string getPassword()const noexcept; //getter za password
- std::string getSurname()const noexcept; //getter za prezime
- std::string getUsername()const noexcept; //getter za username
- virtual std::string checkType()const noexcept; //vraca tip koji je sastavni dio/atribut korisnika
- virtual void loginMethod()noexcept(false) {}; //virtualna metoda za login
- virtual void menu()noexcept; //menu je virtualan jer svaka izvedena klasa ima svoj menu
- void addFriend(User&); // dodavanje prijatelja na osnovu username-a, gleda se samo username kod Usera
- void checkRequest()noexcept; //metoda koja omogucava pregled dobijenih zahtjeva i njihovo odobravanje/odbijanje
- void sendMessage() noexcept; //metoda za slanje poruka na osnovu username-a
- void sendRequest() noexcept; //metoda za slanje zahtjeva na osnovu username-a
- bool checkFriend(std::string) noexcept; //provjerava da li je korisnik sa datim username-om prijatelj
- bool checkUsername(std::string username)const noexcept;
- protected:
- std::string myMessagePath(std::string, std::string)const noexcept; //kreiranje imena fajla za inbox izmedju dva korisnika
- std::string myPath(); //
- std::string password; //password korisnika
- std::string name; //ime korisnika
- std::string surname; //prezime korisnika
- std::string type; //tip korisnika
- std::string username; //username korisnika
- std::vector<Course> enrolledCourses; //lista kurseva na koje je korisnik prijavljen ili na kojima predaje
- std::vector<User> friends; //lista prijatelja
- std::vector<User> requests; //lista zahtjeva za prijateljstvo
- void header()const noexcept; //sluzi mi samo za ljepsi ispis prilikom ispisa tabele sa korisnicima
- void loadEnrolledCourses()noexcept; //ucitavanje kurseva na kojim predavac predaje ili kurseva koje student pohadja
- void loadFiles()noexcept;
- void loadFriendsDatabase()noexcept; //ucitavanje prijatelja iz fajla u vektor
- void loadInbox()noexcept; //ucitavanje poruka na osnovu username-a
- void printEnrolledCoursesDatabase() noexcept; //ispis mojih kurseva
- void printFriendsDatabase() noexcept; //ispis datoteke gdje se nalazi lista prijatelja, fajl this->usernamefriends.txt
- void updateUserFiles(); //updateovanje fajlova u slucaju promjene
- friend std::istream& operator>>(std::istream& dat, User& a)
- {
- dat >> a.name >> a.surname >> a.username >> a.password >> a.type;
- return dat;
- }
- friend std::ostream& operator<<(std::ostream& dat, User& a)
- {
- dat << w_ << a.name << w_ << a.surname << w_ << a.username << w_ << a.password << w_ << a.type;
- return dat;
- }
- friend bool operator==(const User& a, const User& b) {
- return a.getUsername() == b.getUsername();
- }
- friend bool operator<(const User& a, const User& b) {
- return a.getUsername() < b.getUsername();
- }
- friend bool operator>(const User& a, const User& b) {
- return a.getUsername() > b.getUsername();
- }
- friend bool operator<=(const User& a, const User& b) {
- return a.getUsername() <= b.getUsername();
- }
- friend bool operator>=(const User& a, const User& b) {
- return a.getUsername() >= b.getUsername();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement