Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- enum tip {pop, rap, rok};
- class Pesna {
- private:
- char* ime;
- int minuti;
- tip kojtip;
- public:
- Pesna () {
- this->ime= new char [0];
- }
- Pesna (char* ime, int minuti, tip kojtip) {
- this->ime=new char[strlen(ime)+1];
- strcpy(this->ime,ime);
- this->minuti=minuti;
- this->kojtip=kojtip;
- }
- ~Pesna () {
- delete[] ime;
- }
- Pesna (const Pesna &p) {
- ime=new char[strlen(p.ime)+1];
- strcpy(ime,p.ime);
- minuti=p.minuti;
- kojtip=p.kojtip;
- }
- Pesna& operator=(const Pesna &p) {
- if (this!=&p) {
- delete[] ime;
- ime=new char[strlen(p.ime)+1];
- strcpy(ime,p.ime);
- minuti=p.minuti;
- kojtip=p.kojtip;
- }
- return *this;
- }
- void pecati() {
- cout<<"\""<<ime<<"\"-"<<minuti<<"min"<<endl;
- }
- const int get_minuti () {
- return minuti;
- }
- const tip get_tip () {
- return kojtip;
- }
- };
- class CD {
- private:
- Pesna* niza;
- int brPesni;
- int maxvreme;
- public:
- CD (int maxvreme) {
- this->brPesni=0;
- this->maxvreme = maxvreme;
- }
- CD (const CD &c) {
- brPesni=c.brPesni;
- niza = new Pesna [brPesni];
- for (int i=0;i<c.brPesni;i++) {
- niza[i] = c.niza[i];
- }
- maxvreme=c.maxvreme;
- }
- CD& operator= (const CD &c) {
- if (this!=&c) {
- delete[] niza;
- brPesni=c.brPesni;
- niza = new Pesna [brPesni];
- for (int i=0;i<c.brPesni;i++) {
- niza[i] = c.niza[i];
- }
- maxvreme=c.maxvreme;
- }
- return *this;
- }
- ~CD () {
- delete[] niza;
- }
- Pesna getPesna (int i) {
- return niza[i];
- }
- void pecatiPesniPoTip (tip t) {
- for (int i=0;i<brPesni;i++) {
- if (niza[i].get_tip()==t) {
- niza[i].pecati();
- }
- }
- }
- /*int vremetraenje () {
- int vkupno=0;
- for (int i=0;i<brPesni;i++) {
- vkupno+=niza[i].get_minuti();
- }
- return vkupno;
- } */
- void dodadiPesna (Pesna p) {
- if (brPesni < 10) {
- int kapacitet=0;
- for (int i=0;i<brPesni;i++)
- {
- kapacitet+=niza[i].get_minuti();
- }
- if (kapacitet + p.get_minuti() < maxvreme) {
- // cout << "ASD";
- Pesna* tmp = new Pesna [brPesni+1];
- // cout << "ASD";
- tmp[brPesni] = p;
- for (int i = 0; i < brPesni; i++)
- {
- tmp[i] = niza[i];
- }
- brPesni++;
- niza = tmp;
- }
- }
- }
- int getBroj () {
- return brPesni;
- }
- };
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, minuti, kojtip;
- char ime[50];
- if(testCase == 1) {
- cout << "===== Testiranje na klasata Pesna ======" << endl;
- cin >> ime;
- cin >> minuti;
- cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
- Pesna p(ime,minuti,(tip)kojtip);
- p.pecati();
- } else if(testCase == 2) {
- cout << "===== Testiranje na klasata CD ======" << endl;
- CD omileno(20);
- cin>>n;
- for (int i=0;i<n;i++){
- cin >> ime;
- cin >> minuti;
- cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
- Pesna p(ime,minuti,(tip)kojtip);
- //cout << "ASD";
- omileno.dodadiPesna(p);
- }
- for (int i=0; i<n; i++)
- (omileno.getPesna(i)).pecati();
- }
- /* else if(testCase == 3) {
- cout << "===== Testiranje na metodot dodadiPesna() od klasata CD ======" << endl;
- CD omileno(20);
- cin>>n;
- for (int i=0;i<n;i++){
- cin >> ime;
- cin >> minuti;
- cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
- Pesna p(ime,minuti,(tip)kojtip);
- omileno.dodadiPesna(p);
- }
- for (int i=0; i<omileno.getBroj(); i++)
- (omileno.getPesna(i)).pecati();
- }
- else if(testCase == 4) {
- cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
- CD omileno(20);
- cin>>n;
- for (int i=0;i<n;i++){
- cin >> ime;
- cin >> minuti;
- cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
- Pesna p(ime,minuti,(tip)kojtip);
- omileno.dodadiPesna(p);
- }
- cin>>kojtip;
- omileno.pecatiPesniPoTip((tip)kojtip);
- }
- else if(testCase == 5) {
- cout << "===== Testiranje na metodot pecatiPesniPoTip() od klasata CD ======" << endl;
- CD omileno(20);
- cin>>n;
- for (int i=0;i<n;i++){
- cin >> ime;
- cin >> minuti;
- cin >> kojtip; //se vnesuva 0 za POP,1 za RAP i 2 za ROK
- Pesna p(ime,minuti,(tip)kojtip);
- omileno.dodadiPesna(p);
- }
- cin>>kojtip;
- omileno.pecatiPesniPoTip((tip)kojtip);
- }
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement