Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //I really don't know how to manage the header files so this can compile fine. Database has a vector of type User, and user //should access that vector...
- _____________________________________________________________________________________________
- #pragma once
- #include "Utility.h"
- #include "User.h"
- #include "Course.h"
- class Database
- {
- std::vector<Course> allCourses;
- std::vector<User> allUsers;
- void printUserDatabase()noexcept;
- void printCourseDatabase()noexcept;
- void loadUserDatabase()noexcept;
- void loadCourseDatabase()noexcept;
- };
- _____________________________________________________________________________________________
- #pragma once
- #include "Utility.h"
- #include "Database.h"
- class User: public Database
- {
- 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