Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<cstring>
- using namespace std;
- class User {
- protected:
- char username[50];
- char password[50];
- char email[50];
- public:
- User(const char *username="",const char *password="",const char *email="") {
- strcpy(this->username,username);
- strcpy(this->password,password);
- strcpy(this->email,email);
- }
- virtual double popularity() {}
- ~User();
- };
- class FacebookUser:public User {
- private:
- int prijateli;
- int lajkovi;
- int komentari;
- public:
- FacebookUser(const char *username="",const char *password="",const char *email="",int prijateli=0,int lajkovi=0,int komentari=0):User(username,password,email) {
- this->prijateli=prijateli;
- this->lajkovi=lajkovi;
- this->komentari=komentari;
- }
- double popularity() {
- return (double)prijateli+((double)lajkovi*0.1)+((double)komentari*0.5);
- }
- };
- class TwitterUser:public User {
- private:
- int sledaci;
- int tvitovi;
- public:
- TwitterUser(const char *username="",const char *password="",const char *email="",int sledaci=0,int tvitovi=0):User(username,password,email) {
- this->sledaci=sledaci;
- this->tvitovi=tvitovi;
- }
- TwitterUser(const TwitterUser &tu) {
- strcpy(username,tu.username);
- strcpy(password,tu.password);
- strcpy(email,tu.email);
- sledaci=tu.sledaci;
- tvitovi=tu.tvitovi;
- }
- double popularity() {
- return (double)sledaci+((double)tvitovi*0.5);
- }
- };
- class SocialNetwork {
- private:
- User **korisnici;
- int brKorisnici;
- static int MAX;
- public:
- SocialNetwork() {
- korisnici=new User*[0];
- this->brKorisnici=0;
- }
- SocialNetwork& operator +=(User *u) {
- User **tmp=new User *[brKorisnici+1];
- for(int i=0; i<brKorisnici; i++) {
- tmp[i]=korisnici[i];
- }
- tmp[brKorisnici++]=u;
- delete[]korisnici;
- korisnici=tmp;
- return *this;
- }
- ~SocialNetwork() {
- delete[] korisnici;
- }
- double avgPopularity() {
- double vkupno=0;
- for(int i=0; i<brKorisnici; i++) {
- vkupno+=korisnici[i]->popularity();
- }
- return vkupno/brKorisnici;
- }
- static int changeMaximumSize(int number) {
- MAX=number;
- }
- };
- int SocialNetwork::MAX=5;
- int main() {
- SocialNetwork network = SocialNetwork();
- int n;
- cin >> n;
- char username[50];
- char password[50];
- char email[50];
- int userType;
- for (int i=0; i < n; ++i) {
- cin >> username;
- cin >> password;
- cin >> email;
- cin >> userType;
- if (userType == 1) {
- int friends;
- int likes;
- int comments;
- cin >> friends >> likes >> comments;
- // TODO: Try-catch
- User * u = new FacebookUser(username,password,email,friends,likes,comments);
- network += u;
- } else {
- int followers;
- int tweets;
- cin >> followers >> tweets;
- // TODO: Try-catch
- User * u= new TwitterUser(username,password,email,followers,tweets);
- network += u;
- }
- }
- network.changeMaximumSize(6);
- cin >> username;
- cin >> password;
- cin >> email;
- int followers;
- int tweets;
- cin >> followers >> tweets;
- // TODO: Try-catch
- User * u= new TwitterUser(username,password,email,followers,tweets);
- network += u;
- cout << network.avgPopularity();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement