Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Gitara{
- private:
- char seriski_broj[25];
- float cena;
- int godina;
- char tip[40];
- public:
- Gitara(char *tip="", char *seriski_broj="", int godina=0, float cena=0){
- strcpy(this->tip,tip);
- strcpy(this->seriski_broj,seriski_broj);
- this->godina=godina;
- this->cena=cena;
- }
- Gitara(const Gitara &g)
- {
- strcpy(this->tip,g.tip);
- strcpy(this->seriski_broj,g.seriski_broj);
- this->godina = g.godina;
- this->cena= g.cena;
- }
- Gitara & operator=(const Gitara &g)
- {
- strcpy(this->tip,g.tip);
- strcpy(this->seriski_broj,g.seriski_broj);
- this->godina = g.godina;
- this->cena= g.cena;
- return *this;
- }
- ~Gitara()
- {
- }
- char *getTip(){
- return tip;
- }
- char *getSeriski(){
- return seriski_broj;
- }
- int getGodina(){
- return godina;
- }
- float getNabavna(){
- return cena;
- }
- bool daliIsti(Gitara &g){
- if(strcmp(seriski_broj,g.getSeriski())==0)
- return true;
- else return false;
- }
- void pecati(){
- cout<<tip<<endl;
- cout<<seriski_broj<<endl;
- cout<<godina<<endl;
- cout<<cena<<endl;
- }
- };
- class Magacin{
- private:
- char ime[50];
- char lokacija[60];
- Gitara *gitari;
- int br_gitari;
- int godina;
- public:
- Magacin(char *ime="", char *lokacija="", int godina=0){
- strcpy(this->ime, ime);
- strcpy(this->lokacija,lokacija);
- this->godina=godina;
- gitari=NULL;
- br_gitari=0;
- }
- Magacin(const Magacin &m){
- strcpy(this->ime, m.ime);
- strcpy(this->lokacija,m.lokacija);
- this->godina=m.godina;
- br_gitari=m.br_gitari;
- gitari=new Gitara[m.br_gitari];
- for(int i=0;i<m.br_gitari;i++){
- gitari[i]=m.gitari[i];
- }
- }
- Magacin &operator=(const Magacin &m){
- if(this!=&m){
- strcpy(this->ime, m.ime);
- strcpy(this->lokacija,m.lokacija);
- this->godina=godina;
- br_gitari=m.br_gitari;
- delete[]gitari;
- gitari=new Gitara[m.br_gitari];
- for(int i=0;i<m.br_gitari;i++){
- gitari[i]=m.gitari[i];
- }
- }
- return *this;
- }
- ~Magacin(){
- delete [] gitari;
- }
- double vrednost(){
- double vrednost=0;
- for(int i=0;i<br_gitari;i++){
- vrednost+=gitari[i].getNabavna();
- }
- return vrednost;
- }
- void dodadi(Gitara &d){
- Gitara *tmp=new Gitara[br_gitari+1];
- for(int i=0;i<br_gitari;i++){
- tmp[i]=gitari[i];
- }
- tmp[br_gitari]=d;
- delete [] gitari;
- gitari=tmp;
- gitari++;
- }
- void prodadi(Gitara &p){
- int brojac=0;
- for(int i=0;i<br_gitari;i++){
- if(gitari[i].daliIsti(p)==false)
- brojac++;
- }
- int j=0;
- Gitara *tmp=new Gitara[brojac];
- for(int i=0;i<br_gitari;i++){
- if(gitari[i].daliIsti(p)==false){
- tmp[j]=gitari[i];
- j++;
- }
- }
- delete[]gitari;
- gitari=tmp;
- br_gitari=brojac;
- }
- void pecati(bool daliNovi){
- cout<<ime<<" "<<lokacija<<endl;
- if(daliNovi){
- for(int i=0;i<br_gitari;i++){
- if(gitari[i].getGodina()>godina)
- gitari[i].pecati();
- }
- }
- else{
- for(int i=0;i<br_gitari;i++){
- gitari[i].pecati();
- }
- }
- }
- };
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, godina;
- float cena;
- char seriski[50],tip[50];
- if(testCase == 1) {
- cout << "===== Testiranje na klasata Gitara ======" << endl;
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- cout<<g.getTip()<<endl;
- cout<<g.getSeriski()<<endl;
- cout<<g.getGodina()<<endl;
- cout<<g.getNabavna()<<endl;
- } else if(testCase == 2){
- cout << "===== Testiranje na klasata Magacin so metodot print() ======" << endl;
- Magacin kb("Magacin1","Lokacija1");
- kb.pecati(false);
- }
- else if(testCase == 3) {
- cout << "===== Testiranje na klasata Magacin so metodot dodadi() ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2005);
- cin>>n;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(true);
- }
- else if(testCase == 4) {
- cout << "===== Testiranje na klasata Magacin so metodot prodadi() ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2012);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(false);
- kb.prodadi(brisi);
- kb.pecati(false);
- }
- else if(testCase == 5) {
- cout << "===== Testiranje na klasata Magacin so metodot prodadi() i pecati(true) ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2011);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(true);
- kb.prodadi(brisi);
- cout<<"Po brisenje:"<<endl;
- Magacin kb3;
- kb3=kb;
- kb3.pecati(true);
- }
- else if(testCase ==6)
- {
- cout << "===== Testiranje na klasata Magacin so metodot vrednost()======" << endl;
- Magacin kb("Magacin1","Lokacija1",2011);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- kb.dodadi(g);
- }
- cout<<kb.vrednost()<<endl;
- kb.prodadi(brisi);
- cout<<"Po brisenje:"<<endl;
- cout<<kb.vrednost();
- Magacin kb3;
- kb3=kb;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment