Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- using namespace std;
- class Hozzavalo{
- char* nev;
- double mennyiseg;
- char* mertekegyseg;
- public:
- char* getNev();
- double getMennyiseg();
- char* getMertekegyseg();
- Hozzavalo(char*,double,char*);
- void operator+=(double);
- void operator*=(double);
- };
- char* Hozzavalo::getNev(){
- return nev;
- }
- double Hozzavalo::getMennyiseg(){
- return mennyiseg;
- }
- char* Hozzavalo::getMertekegyseg(){
- return mertekegyseg;
- }
- Hozzavalo::Hozzavalo(char* nev, double mennyiseg,char* mertekegyseg){
- this->nev = nev;
- this->mertekegyseg = mertekegyseg;
- this->mennyiseg = mennyiseg;
- }
- void Hozzavalo::operator+=(double a){
- mennyiseg+=a;
- }
- void Hozzavalo::operator*=(double b){
- mennyiseg*=b;
- }
- class Recept{
- char* etel;
- int ido;
- Hozzavalo **lista;
- int n;
- public:
- int cnt;
- Recept(char* etel,int ido,int n);
- Recept(Recept*);
- ~Recept();
- void add(Hozzavalo&);
- friend ostream& operator<<(ostream&, Recept&);
- void operator*=(int x);
- void operator--(int);
- };
- void Recept::operator*=(int x){
- for(int i = 0; i<cnt; i++){
- *lista[i] *= x;
- }
- }
- Recept::~Recept(){
- for(int i = 0; i<cnt; i++){
- delete lista[i];
- }
- delete []lista;
- }
- Recept::Recept(Recept *robj){
- this->etel = robj->etel;
- this->ido = robj->ido;
- this->n = robj->n;
- this->cnt = robj->cnt;
- lista = new Hozzavalo*[n];
- for(int i = 0; i<n; i++){
- lista[i] = robj->lista[i];
- }
- }
- Recept::Recept(char* etel,int ido,int n){
- this->etel = etel;
- this->ido = ido;
- this->n = n;
- this->cnt = 0;
- lista = new Hozzavalo*[n];
- for(int i = 0; i<n; i++){
- lista[i] = NULL;
- }
- }
- void Recept::add(Hozzavalo& h){
- Hozzavalo *hcopy = new Hozzavalo(h);
- bool van = false;
- if(cnt<=n){
- for(int i = 0; i<cnt; i++){
- if(!strcmp(lista[i]->getNev(),hcopy->getNev())){
- *lista[i]+=1;
- van = true;
- }
- }
- }
- if(cnt < n && !van){
- lista[cnt] = hcopy;
- cnt++;
- }
- }
- ostream& operator<<(ostream& o, Recept& r){
- o << r.etel << ": " << r.ido << " perc" << endl;
- o << "Hozzávalók: " << endl;
- for(int i = 0; i<r.cnt; i++){
- o << " - "<< r.lista[i]->getNev() << " " << r.lista[i]->getMennyiseg() << r.lista[i]->getMertekegyseg() << endl;
- }
- o << endl;
- }
- void Recept::operator--(int){
- if(ido >= 30){
- ido-=30;
- }else ido = 0;
- }
- int main()
- {
- setlocale(LC_ALL,"HUN");
- Hozzavalo h1("liszt",10.0,"dkg");
- Hozzavalo h2("víz",1,"dl");
- Hozzavalo h3("só",1,"tsk");
- Recept rec("Kenyer",130.0,2);
- rec.add(h1);
- rec.add(h2);
- rec.add(h3);
- cout << rec;
- rec.add(h2);
- cout << rec;
- rec--;
- rec.add(h2);
- rec*=2;
- cout << rec;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement