Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CD Problem 2 (1 / 10)
- #include <iostream>
- #include <string.h>
- using namespace std;
- enum tip {POP, RAP, ROK};
- class Pesna{
- private:
- char ime[50];
- int minuti;
- tip zanr;
- public:
- Pesna(){}
- Pesna(char x[50], int y, tip tip1){
- strcpy(ime, x);
- minuti = y;
- zanr = tip1;
- }
- void pecati(){
- cout <<"\""<<ime<<"\"-"<<minuti<<"min"<<endl;
- }
- tip getZanr() {
- return zanr;
- }
- int getMinuti(){
- return minuti;
- }
- };
- class CD{
- private:
- Pesna *niza;
- int brojNaPesni;
- int maxVreme;
- int vreme;
- public:
- CD(int maxVreme1){
- brojNaPesni = 0;
- maxVreme = maxVreme1;
- vreme = 0;
- }
- void dodadiPesna(Pesna p){
- if(brojNaPesni >= 10){
- return;
- }
- if((vreme + p.getMinuti()) > maxVreme) {
- return;
- }
- niza[brojNaPesni] = p;
- brojNaPesni++;
- vreme += p.getMinuti();
- }
- void pecatiPesniPoTip(tip zanr) {
- for(int i = 0; i < brojNaPesni; i++){
- Pesna p = niza[i];
- if(p.getZanr() == zanr) {
- p.pecati();
- }
- }
- }
- Pesna getPesna(int i) {
- return niza[i];
- }
- int getBroj() {
- return brojNaPesni;
- }
- };
- 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;
- }
Add Comment
Please, Sign In to add comment