Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- enum zanr {
- akcija, komedija, drama
- };
- class Film {
- private:
- char *ime;
- int memorija;
- zanr zhanr;
- public:
- Film (){
- this->ime=new char[0];
- }
- Film (char *ime, int memorija, zanr zhanr) {
- this->ime=new char[strlen(ime)+1];
- strcpy(this->ime, ime);
- this->memorija=memorija;
- this->zhanr=zhanr;
- }
- Film &operator =(const Film &f) {
- if (this!=&f) {
- delete [] this->ime;
- this->ime=new char[strlen(f.ime)+1];
- strcpy(this->ime, f.ime);
- this->memorija=f.memorija;
- this->zhanr=f.zhanr;
- }
- return *this;
- }
- ~Film () {
- delete [] ime;
- }
- void pecati () {
- cout<<memorija<<"MB-\""<<ime<<"\""<<endl;
- }
- int get_memorija() {
- return memorija;
- }
- zanr get_zanr() {
- return zhanr;
- }
- };
- class DVD {
- private:
- Film filmovi[5];
- int n;
- int memorijaDVD;
- public:
- DVD (int memorijaDVD=0, Film *filmovi=NULL, int n=0) {
- this->memorijaDVD=memorijaDVD;
- this->n=n;
- for (int i=0; i<n; i++) {
- this->filmovi[i]=filmovi[i];
- }
- }
- ~DVD () {}
- void dodadiFilm (Film &f) {
- int suma=0;
- for (int i=0; i<n; i++)
- suma+=filmovi[i].get_memorija();
- int preostanato=memorijaDVD-suma;
- if (preostanato>f.get_memorija()&&n<5) {
- filmovi[n]=f;
- n++;
- }
- }
- void pecatiFilmoviDrugZanr (zanr z) {
- for (int i=0; i<n; i++) {
- if (filmovi[i].get_zanr()!=z)
- filmovi[i].pecati();
- }
- }
- Film &getFilm(int i) {
- return filmovi[i];
- }
- int getBroj () {
- return n;
- }
- float procentNaMemorijaOdZanr (zanr z) {
- int suma=0; int vkupno=0;
- for (int i=0; i<n; i++) {
- if (filmovi[i].get_zanr()==z)
- suma+=filmovi[i].get_memorija();
- vkupno+=filmovi[i].get_memorija();
- }
- return (float)suma/vkupno*100.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);
- } else if (testCase == 6){
- cout<<"===== Testiranje na metodot procentNaMemorijaOdZanr() od klasata DVD =====" <<endl;
- DVD omileno(40);
- 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;
- cout<<"Procent na filmovi od dadeniot zanr iznesuva: "<<omileno.procentNaMemorijaOdZanr((zanr) kojzanr)<<"%\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement