Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- void string_copy(char*, const char*, int);
- enum zanr {
- AKCIJA,
- KOMEDIJA,
- DRAMA
- };
- class Film {
- char* ime;
- int memorija;
- zanr filmski_zanr;
- public:
- Film(const char* _ime = "" , const int _memorija = 0, const zanr _filmski_zanr = (zanr)0) {
- ime = new char[strlen(_ime)+1];
- string_copy(ime, _ime, strlen(_ime));
- memorija = _memorija;
- filmski_zanr = _filmski_zanr;
- }
- Film(const Film& f) {
- ime = new char[strlen(f.ime)+1];
- string_copy(ime, f.ime, strlen(f.ime));
- memorija = f.memorija;
- filmski_zanr = f.filmski_zanr;
- }
- ~Film() {
- delete [] ime;
- }
- Film& operator=(const Film& f) {
- if(this != &f) {
- delete [] ime;
- ime = new char[strlen(f.ime)+1];
- string_copy(ime, f.ime, strlen(f.ime));
- memorija = f.memorija;
- filmski_zanr = f.filmski_zanr;
- }
- return *this;
- }
- const int getSize() { return memorija; }
- const zanr getZanr() { return filmski_zanr; }
- void pecati() {
- cout << memorija << "MB-" << "\"" << ime << "\"" << endl;
- }
- };
- class DVD {
- Film filmovi[5];
- int broj_na_filmovi;
- int kapacitet;
- public:
- DVD(int _kapacitet = 0) {
- kapacitet = _kapacitet;
- broj_na_filmovi = 0;
- }
- ~DVD() {}
- void dodadiFilm(Film f) {
- if(broj_na_filmovi < 5) {
- int temp_kapacitet = 0;
- for(int i = 0; i < broj_na_filmovi; ++i)
- temp_kapacitet += filmovi[i].getSize();
- if((temp_kapacitet + f.getSize()) <= kapacitet) {
- filmovi[broj_na_filmovi] = f;
- ++broj_na_filmovi;
- }
- }
- }
- void pecatiFilmoviDrugZanr(zanr z) {
- for(int i = 0; i < broj_na_filmovi; ++i) {
- if((int) filmovi[i].getZanr() != (int) z)
- filmovi[i].pecati();
- }
- }
- int getBroj() { return broj_na_filmovi; }
- Film& getFilm(int i) {
- return filmovi[i];
- }
- };
- void string_copy(char* dest, const char* source, const int length) {
- strncpy(dest, source, length);
- dest[length] = 0;
- }
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, memorija, kojzanr;
- char ime[50];
- if(testCase == 1) {
- cout << "===== Testiranje na klasata Film ======" << endl;
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- f.pecati();
- } else if(testCase == 2) {
- cout << "===== Testiranje na klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- for (int i=0; i<n; i++)
- (omileno.getFilm(i)).pecati();
- } else if(testCase == 3) {
- cout << "===== Testiranje na metodot dodadiFilm() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- for (int i=0; i<omileno.getBroj(); i++)
- (omileno.getFilm(i)).pecati();
- } else if(testCase == 4) {
- cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- cin>>kojzanr;
- omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
- } else if(testCase == 5) {
- cout << "===== Testiranje na metodot pecatiFilmoviDrugZanr() od klasata DVD ======" << endl;
- DVD omileno(50);
- cin>>n;
- for (int i=0; i<n; i++) {
- cin >> ime;
- cin >> memorija;
- cin >> kojzanr; //se vnesuva 0 za AKCIJA,1 za KOMEDIJA i 2 za DRAMA
- Film f(ime,memorija,(zanr)kojzanr);
- omileno.dodadiFilm(f);
- }
- cin>>kojzanr;
- omileno.pecatiFilmoviDrugZanr((zanr)kojzanr);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement