#include <iostream>
#include <process.h>
#include <string.h>
#include <stdlib.h>
#include <alloc.h>
class member{
float id,friends[10];
char logname[20],name[20],password[20];
public:
void set_member(char logname2[20], char name2[20],float id2, char password2[20]);
member(void);
friend float find_member(member x,char name[20]);
friend void add_friend(member x,float nid);
friend void del_friend(member x,float nid);
friend void prints(member x,int final,float *Memberids,member *Members);
friend float copy_ids(member x);
friend int compare_1(char logname[20],member x);
friend int compare_2(char password[20],member x);
};
int compare_1(char logname[20],member x){
int cmp1;
cmp1=strcmp(logname,x.logname);
if(cmp1==0){
return 1;
}
return 2; }
int compare_2(char password[20],member x){
int cmp2;
cmp2=strcmp(password,x.password);
if(cmp2==0){
return 1;
}
return 2;
}
void member::set_member(char logname2[20], char name2[20],float id2, char password2[20]){
strcpy(logname,logname2);
strcpy(name,name2);
id=id2;
strcpy(password,password2);
}
float find_member(member x,char name[20]){
int cmp;
cmp=strcmp(name,x.name);
if(cmp==0){
return x.id;
}
return 0;
}
float copy_ids(member x){
return x.id;
}
member::member(void){
int z;
for(z=0;z<10;z++){
friends[z]=0;
}
}
void add_friend(member x,float nid){
int i;
for(i=0;i<10;i++){
if(x.friends[i]==0){
x.friends[i]=nid;
cout<<"Kataxwrisi epityxhs \n";
break;
}
}
if(i==9){
cout<<"H lista filwn einai gemati \n";
}
}
void del_friend(member x,float nid){
int j,i;
float temp;
for(i=0;i<10;i++){
if(x.friends[i]==nid){
x.friends[i]=0;
}
}
for(i=0;i<10;i++){
for(j=0;j<(9-i);j++){
if (x.friends[j+1] > x.friends[j])
{
temp = x.friends[j];
x.friends[j] = x.friends[j+1];
x.friends[j+1] = temp;
}
}
}
cout<<"Diagrafi epityxhs \n";
}
void prints(member x,int final,float *Memberids,member *Members){
int i,k[10],j;
cout<<"Oi filoi sou einai oi eksis:";
for(i=0;i<10;i++){
for(j=0;j<final;j++){
if(x.friends[i]==Memberids[j]){
k[i]=j;
}
}
cout<<Members[k[i]].name;
}
}
int main(){
int i,k=1,n=0,cmp1,cmp2,choice,c_5=0,flag=-1,final;
float id,nid,g,*Memberids;
char adminlog[20],name[20],find[20],logname[20],password[20],adminpass[20];
member *Members;
while(1){
if (k==1){
cout<<"Dose login name tou diaxeiristh:\n";
cin>>adminlog;
cout<<"Dose password diaxeiristh: \n";
cin>>adminpass;
k++;
Members=(member *)malloc((n+1)*sizeof(member));
}
if (k>1){
Members=(member *)realloc(Members,(n+1)*sizeof(member));
cout<<"KATAXWRISI NEOU MELOUS! \n";
cout<<"Poio einai to onoma soy? : \n";
cin>>name;
cout<<"Login name: \n";
cin>>logname;
cout<<"Password: \n";
cin>>password;
cmp1=strcmp(logname,adminlog);
cmp2=strcmp(password,adminpass);
if ((cmp1==0)&&(cmp2==0)) {
final=n;
Memberids=(float *)malloc(final*sizeof(float));
for(i=0;i<final;i++){
Memberids[i]=copy_ids(Members[i]);
}
break;
}
id=(n+1);
Members[n].set_member(logname,name,id,password);
n++;
}
}
while(1){
cout<<"EISODOS STH SELIDA \n";
cout<<"login name: \n";
cin>>logname;
cout<<"password : \n";
cin>>password;
cmp1=strcmp(logname,adminlog);
cmp2=strcmp(password,adminpass);
if((cmp1==0)&&(cmp2==0)){
break;
}
for(i=0;i<final;i++){
cmp1=compare_1(logname,Members[i]);
cmp2=compare_2(password,Members[i]);
if((cmp1==1)&&(cmp2==1)){
cout<<" EISODOS EPITYXHS \n";
flag=i;
break;
}
}
if(flag==-1){
if((i==(final-1))||((cmp1!=0)||(cmp2!=0))){
cout<<"Lathos login name h password \n";
cout<<"An den eiste melos mporeite na eggrafeite \n";
continue;
}
}
cout<<"Kalws irthate! \n";
while(1){
cout<<"-Gia na na kanete anazitisi melous pieste 1 \n";
cout<<"-Gia na kataxwrisete ena melos ws filo pieste 2 \n";
cout<<"-Gia na diagrapsete ena melos apo filo pieste 3 \n";
cout<<"-Gia na typwsete ta onomata twn filwn sas pieste 4 \n";
cout<<"-Gia na kanete log out pieste 5 \n";
cin>>choice;
switch(choice){
case 1:
cout<<"Doste to onoma tou melous: \n";
cin>>find;
for(i=0;i<final;i++){
g=find_member(Members[i],find);
if(g>0){
cout<<"To melos vrethike! \n";
cout<<"To id tou einai "<<g;
break;
}
}
if(i==(final-1)){
cout<<"to melos den vrethike \n";
}
break;
case 2:
cout<<"Dose to id tou filou sou: \n";
cin>>nid;
add_friend(Members[flag],nid);
break;
case 3:
cout<<"Dose to id tou filou sou: \n";
cin>>nid;
del_friend(Members[flag],nid);
break;
case 4:
prints(Members[flag],final,Memberids,Members);
break;
case 5:
c_5=1;
break;
}
if(c_5==1){
break;
}
}
if(c_5==1){
continue;
}
}
cout<<"Have a nice day :) \n";
system("pause");
return 0;
}