CATEGORII DOCUMENTE |
Clasele Agenda_telef ce permite regasirea rapida a unor informatii pornind de la nume, numar de telefon, locatie, subsir din nume etc.
Clasa consta dintr-o serie de liste sortate, de pointeri de obiecte persoana, organizate dupa chei de cautare diferite ( L_nume, L_nr, L_locatie ).
Se va defini o clasa template lista, care implementeaza inserari, stergeri, cautari. Clasa template va fi invocata apoi pentru tipul cheilor de cautare ( char * si int ).
supraincarcari pentru operatorii:
<< si >> pentru inserari, stergeri din lista
<< si >> pentru operatii de intrare - iesire la nivel de obiecte
[ ] pentru cautare in lista dupa o cheie de tip generic <T>
functiile:
bool containing( nume, subsir) pentru a facilita cautarea dupa un subsir din nume ( folosind eventual strstr ( ) ).
#include<stdio.h>
#include<iostream.h>
#include<malloc.h>
#include<string.h>
#include <conio.h>
//definirea clasei persoana
class persoana
;
friend ostream& operator<<(ostream &iesire, persoana &p)
;
friend istream& operator>>(istream &intrare, persoana &p)
int operator ==(persoana a)
//definirea clasei nod
template <class tip> class nod
;
//definirea clasei lista
template <class tip> class lista
lista(const lista<tip> &l)
}
else
cap=NULL;
}
~lista()
};
void inserare(tip inf);
void stergere(tip inf);
friend ostream& operator <<(ostream& ies, lista<tip> l)
return ies;
}
nod<tip>* operator[](tip inf);
//se incheie definirea
template <class tip> void lista<tip>::inserare(tip inf)
template <class tip> void lista<tip>::stergere(tip inf)
else
else temp=temp->next;
}
}
}
};
template <class tip> nod<tip>* lista<tip>::operator[](tip inf)
return NULL;
};
//definirea clasei agenda
class agenda
return ies;
};
nod<persoana> * search(char abv[20])
nod<persoana>* agenda::operator <<(int tel)
}
}
}
nod<persoana>* agenda::operator >>(int tel)
}
}
void agenda::sortnume()
else
//o facem
else
if (!temp)
//adaug la sfarsit
else
//adaug in interior
if (trace)
else
//daca e la inceput
}
}
}
}
else lsortn.cap=NULL;
}
void agenda::sortlocatie()
else
//o facem
else
if (!temp)
//adaug la sfarsit
else
//adaug in interior
if (trace)
else
//daca e la inceput
}
}
}
}
else lsortl.cap=NULL;
}
void agenda::sorttelefon()
else
//o facem
else
if (!temp)
//adaug la sfarsit
else
//adaug in interior
if (trace)
else
//daca e la inceput
}
}
}
}
else lsortt.cap=NULL;
}
void main()
else cout<<'nnPersoana cautata nu exista!'<<endl;
//cautarea unei persoane dupa un subsir din nume
p=a.search('di');
if(p)
else cout<<'nnPersoana cu abrevierea data nu exista!'<<endl;
//sterg din lista sortata dupa nume
a.lsortn.stergere(p3);
cout<<'nnPersoanele ramase in agenda dupa stergere:'<<endl;
cout<<a;
getch();}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1413
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved