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{
- char * ime;
- int minuti;
- tip Tip;
- public:
- ~Pesna(){
- delete [] ime;
- }
- Pesna(char * ime = "", int minuti = 0, tip Tip = (tip)0){
- this -> ime = new char[strlen(ime) + 1];
- strcpy(this->ime, ime);
- this -> minuti = minuti;
- this -> Tip = Tip;
- }
- Pesna(const Pesna & k){
- this -> ime = new char[strlen(k.ime) + 1];
- strcpy(this->ime, k.ime);
- this->minuti = k.minuti;
- this->Tip = k.Tip;
- }
- Pesna & operator =(const Pesna & k){
- delete [] ime;
- strcpy(this->ime, k.ime);
- this->minuti = k.minuti;
- this->Tip = k.Tip;
- return *this;
- }
- void pecati(){
- cout << '"' << ime << '"' << "-" <<minuti <<"min" <<endl;
- }
- int getMinuti(){
- return minuti;
- }
- tip getTip(){
- return Tip;
- }
- };
- class CD{
- Pesna niza[10];
- int n;
- int max;
- public:
- ~CD(){}
- CD(int max = 0){
- this -> max = max;
- this -> n = 0;
- }
- CD(const CD & k){
- }
- CD & operator =(const CD & k){
- }
- void dodadiPesna(Pesna p){
- int total = 0;
- for (int i = 0; i < n; i++){
- total = total + niza[i].getMinuti();
- }
- total += p.getMinuti();
- if (total < max&&n < 10){
- niza[n++] = p;
- }
- }
- Pesna getPesna(int i){
- return niza[i];
- }
- int getBroj(){
- return n;
- }
- void pecatiPesniPoTip(tip Tip){
- for (int i = 0; i < n; i++)
- if (niza[i].getTip() == Tip )
- niza[i].pecati();
- }
- };
- 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