Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <string.h>
- using namespace std;
- enum tip { pop, rap, rok };
- class Pesna {
- private:
- char *ime;
- int minuti;
- tip zanr;
- public:
- Pesna(){}
- Pesna(const char *ime, int minuti, tip zanr){
- this->ime = new char[strlen(ime)+1];
- strcpy(this->ime, ime);
- this->minuti = minuti;
- this->zanr = zanr;
- }
- void pecati(){
- cout << "\"" << ime << "\"" << "-" << minuti << "min" << endl;
- }
- int getTip(){
- return this->zanr;
- }
- int getMinuti(){
- return this->minuti;
- }
- };
- class CD {
- private:
- Pesna *pesni;
- int brPesni=0;
- int maxVremetraenje;
- public:
- CD(int maxVremetraenje){
- this->brPesni = 0;
- this->maxVremetraenje = maxVremetraenje;
- }
- void dodadiPesna (Pesna p){
- int sumVreme=0;
- for(int i=0; i<brPesni; i++)
- sumVreme+=pesni[i].getMinuti();
- if(p.getMinuti()<maxVremetraenje-sumVreme&&brPesni<10){
- Pesna *temp = new Pesna[brPesni+1];
- for(int i=0; i<brPesni; i++)
- temp[i]=pesni[i];
- temp[brPesni] = p;
- pesni = temp;
- brPesni++;
- }
- }
- void pecatiPesniPoTip(tip t){
- for(int i=0; i<brPesni; i++){
- if(pesni[i].getTip() == t)
- pesni[i].pecati();
- }
- }
- Pesna getPesna(int i){
- return pesni[i];
- }
- int getBroj(){
- return this->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);
- 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