Tuesday, May 26, 2015

#6 cTablet.h

#ifndef CTABLET_H
#define CTABLET_H

#include <iostream>

#include "cProizvod.h"

using namespace std;


class cTablet:public cProizvod{ // OVO JE POTREBNO ZA NASLEDJIVANJE!! class cTablet:public cProizvod
public:
string marka;
int memorija;
string procesor;
cTablet();
~cTablet();
void scanMarka();
void scanMemorija();
void scanProcesor();

string getMarka();
int getMemorija();
string getProcesor();
};
// konstruktor i destruktor
cTablet::cTablet(){
}

cTablet::~cTablet(){
}
//
void cTablet::scanMarka(){
string _marka;
cout << "Unesite marku: ";
cin >> _marka;
this->marka = _marka;
}

void cTablet::scanMemorija(){
int _memorija;
cout << "Unesite mamoriju: ";
cin >> _memorija;
this->memorija = _memorija;
}

void cTablet::scanProcesor(){
string _procesor;
cout << "Unesite procesor: ";
cin >> _procesor;
this->procesor = _procesor;
}

string cTablet::getMarka(){
return this->marka;
}

int cTablet::getMemorija(){
return this->memorija;
}

string cTablet::getProcesor(){
return this->procesor;
}

#endif

#6 cProizvod,h

#ifndef CPROIZVOD_H
#define CPROIZVOD_H

#include <iostream>

using namespace std;

class cProizvod{
private:
float cena;
public:
string vrsta;
string ime;
string naziv;
cProizvod();
~cProizvod();
//FUNKCIJE SE KORISTE ZA NASLEDJIVANJE ATRIBUTA
void setCena(float _cena);
void scanCena();
void scanIme();
void scanVrsta();
void scanNaziv();

float getCena();
string getVrsta();
string getIme();
string getNaziv();
//
};
// Prazni konstruktor i destruktor
cProizvod::cProizvod(){
}

cProizvod::~cProizvod(){
}
//
void cProizvod::setCena(float _cena){
this->cena = _cena;
}

void cProizvod::scanIme(){
string  _ime;
cout << "Unesite ime: ";
cin >> _ime;
this->ime = _ime;
}

void cProizvod::scanCena(){
cout << "Unesite cenu: ";
cin >> this->cena;
setCena(this->cena);
}

void cProizvod::scanNaziv(){
string _naziv;
cout << "Unesite naziv: ";
cin >> _naziv;
this->naziv = _naziv;
}

void cProizvod::scanVrsta(){
   string _vrsta;
   cout << "Unesite vrstu: ";
   cin >> _vrsta;
   this->vrsta = _vrsta;
}

float cProizvod::getCena(){
return this->cena;
}

string cProizvod::getVrsta(){
return this->vrsta;
}

string cProizvod::getIme(){
return this->ime;
}

string cProizvod::getNaziv(){
return this->naziv;
}

#endif

#6 Objektni Proizvod nasledjivanje

#include <iostream>

#include "cProizvod.h"
#include "cTablet.h"

using namespace std;

int main(){
cout << "Klasa cProizvod" << endl << endl;
cProizvod *proizvod = new cProizvod();
//unos
proizvod->scanCena();
proizvod->scanIme();
proizvod->scanVrsta();
proizvod->scanNaziv();
//ispis
cout << "proizvod.cena=" << proizvod->getCena() << endl;
cout << "proizvod.ime=" << proizvod->ime << endl;
cout << "proizvod.vrsta=" << proizvod->vrsta << endl;
cout << "proizvod.naziv=" << proizvod->naziv << endl;

cout << "Klasa cTablet" << endl << endl;
cTablet *tablet = new cTablet();
//unos
//NASLEDJIVANJE ATRIBUTA IZ DRUKE CLASS-e
tablet->scanCena();
tablet->scanIme();
tablet->scanVrsta();
tablet->scanNaziv();
//
tablet->scanMarka();
tablet->scanMemorija();
tablet->scanProcesor();
//ispis
//NASLEDJIVANJE ATRIBUTA IZ DRUKE CLASSE
cout << "tablet.cena=" << tablet->getCena() << endl;
cout << "tablet.ime=" << tablet->ime << endl;
cout << "tablet.vrsta=" << tablet->vrsta << endl;
cout << "tablet.naziv=" << tablet->naziv << endl;
//
cout << "tablet.marka=" << tablet->getMarka() << endl;
cout << "tablet.memorija=" << tablet->getMemorija() << endl;
cout << "tablet.procesor=" << tablet->getProcesor() << endl;

  //Brisanje objekata iz memorije delete proizvod; delete tablet; system("PAUSE"); return EXIT_SUCCESS;
}

#6 cZivotinja.h

#ifndef CZIVOTINJA_H
#define CZIVOTINJA_H

#include <iostream>

using namespace std;

class cZivotinja{
   private:
      int godine;
   public:
      string ime;
      string vrsta;
      string pol;
      cZivotinja();
      ~cZivotinja();
      //FUNKCIJE SE KORISTE ZA NASLEDJIVANJE ATRIBUTA
      void setGodine(int _godine);
      void scanIme();
      void scanPol();
      void scanVrsta();
      void scanGodine();
 
      int getGodine();
      string getIme();
      string getPol();
      string getVrsta();
      //
};
// Prazni konstruktor i destruktor
cZivotinja::cZivotinja(){
}

cZivotinja::~cZivotinja(){
}
//
void cZivotinja::setGodine(int _godine){
   this->godine = _godine;
}
void cZivotinja::scanGodine(){
   cout << "Unesite godine: ";
   cin >> this->godine;
   setGodine(this->godine);
}
void cZivotinja::scanIme(){
   cout << "Unesite ime: ";
   cin >>this->ime;
}
void cZivotinja::scanPol(){
   string _pol;
   cout << "Unesite pol: ";
   cin >> _pol;
   this->pol = _pol;
}
void cZivotinja::scanVrsta(){
   string _vrsta;
   cout << "Unesite vrstu: ";
   cin >> _vrsta;
   this->vrsta = _vrsta;
}

int cZivotinja::getGodine(){
   return this->godine;
}
string cZivotinja::getIme(){
   return this->ime;
}
string cZivotinja::getPol(){
   return this->pol;
}
string cZivotinja::getVrsta(){
   return this->vrsta;
}

#endif

#6 cMajmun.h

#ifndef CMAJMUN_H
#define CMAJMUN_H

#include <iostream>

#include "cZivotinja.h"

using namespace std;

class cMajmun:public cZivotinja{ // OVO JE POTREBNO ZA NASLEDJIVANJE!! class cMajmun:public cZivotinja
   public:
      string hrana;
      string podvrsta;
      string mesto;
      cMajmun();
      ~cMajmun();
      void scanHrana();
      void scanPodvrsta();
      void scanMesto();

      string getHrana();
      string getPodvrsta();
      string getMesto();
};
//konstruktor i destruktor
cMajmun::cMajmun(){
}

cMajmun::~cMajmun(){
}
//
void cMajmun::scanHrana(){
   cout << "Unesite hranu: ";
   cin >> this->hrana;
}
void cMajmun::scanPodvrsta(){
   cout << "Unesite podvrstu: ";
   cin >> this->podvrsta;
}
void cMajmun::scanMesto(){
   cout << "Unesite mesto: ";
   cin >> this->mesto;
}
string cMajmun::getHrana(){
   return this->hrana;
}
string cMajmun::getPodvrsta(){
   return this->podvrsta;
}
string cMajmun::getMesto(){
   return this->mesto;
}

#endif

#6 Objektni Zivotinje nasledjivanje

#include <cstdlib>#include <iostream>
#include "cZivotinja.h"#include "cMajmun.h"
using namespace std;
int main(int argc, char *argv[]){    cout << "KLASA cZivotinja" << endl << endl;    //unos    cZivotinja *zivotinja = new cZivotinja();    zivotinja->scanGodine();    zivotinja->scanIme();    zivotinja->scanPol();    zivotinja->scanVrsta();     //Ispis    cout << "zivotinja.ime=" << zivotinja->ime << endl;    cout << "zivotinja.pol=" << zivotinja->pol << endl;       cout << "zivotinja.vrsta=" << zivotinja->vrsta << endl;       cout << "zivotinja.godine=" << zivotinja->getGodine() << endl;

    cMajmun *majmun = new cMajmun();   //unos    cout << "KLASA cMajmun" << endl << endl;       majmun->scanIme();    majmun->scanPol();    majmun->scanVrsta();     majmun->scanGodine();    //    majmun->scanHrana();    majmun->scanPodvrsta();    majmun->scanMesto();    //Ispis    //NASLEDJIVANJE ATRIBUTA IZ DRUGE CLASSE    cout << "majmun.ime=" << majmun->ime << endl;    cout << "majmun.pol=" << majmun->pol << endl;       cout << "majmun.vrsta=" << majmun->vrsta << endl;       cout << "majmun.godine=" << majmun->getGodine() << endl;    //    cout << "majmun.hrana=" << majmun->getHrana() << endl;    cout << "majmun.podvrsta=" << majmun->getPodvrsta() << endl;       cout << "majmun.mesto=" << majmun->getMesto() << endl;      //Brisanje objekata iz memorije    delete zivotinja;    delete majmun;    system("PAUSE");    return EXIT_SUCCESS;}

Wednesday, May 20, 2015

#3 Osnovni graficki elemnti, tacka, linija, pravougaonik, krug ...

#include<graphics.h>
main()
{
      initwindow(800,600);
      //crtanje tacke
      putpixel(50,50,GREEN);
      //linije
      line(100,50,150,50);
      //crtanje trougla
      line(200,50,225,25);
      line(225,25,250,50);
      line(250,50,200,50);
      //crtanje pravougaonika
      rectangle(300,25,350,50);
      circle(50,100,25);
     
      //kuca
      //zid
      rectangle(150,150,300,250);
      //krov
      line(150,150,175,100);
      line(300,150,275,100);
      line(175,100,275,100);
      //prozor
      rectangle(175,175,200,200);
      line(175,187,200,187);
      line(187,175,187,200);
      rectangle(250,175,275,200);
      line(250,187,275,187);
      line(262,175,262,200);
      //vrata
      line(210,175,240,175);
      line(210,175,210,250);
      line(240,175,240,250);
      //odzak
      line(250,85,260,85);
      line(250,85,250,100);
      line(260,85,260,100);
      while(!kbhit());
      closegraph();
      }

#3 Kreiranje dijagrama bars sa ispunama fill

#include <graphics.h>
main(){
initwindow (800,600);


setfillstyle(SOLID_FILL,RED);
bar(0,200,30,500);
setfillstyle(SOLID_FILL,YELLOW);
bar(30,270,60,500);
setfillstyle(LINE_FILL,CYAN);
bar(60,100,90,500);
setfillstyle(LTSLASH_FILL,BLUE);
bar(90,250,120,500);
setfillstyle(SLASH_FILL,GREEN);
bar(120,280,150,500);
setfillstyle(BKSLASH_FILL,WHITE);
bar(150,100,180,500);
setfillstyle(HATCH_FILL,RED);
bar(180,200,210,500);
setfillstyle(XHATCH_FILL,DARKGRAY);
bar(210,400,240,500);
setfillstyle(SOLID_FILL,GREEN);
bar(240,100,270,500);

while (!kbhit( ));
closegraph( );
}

Wednesday, April 15, 2015

#4 Unos strukture koka u fajl i ispis fajla na ekran

// Napraviti program za unos strukture koka,
// koka.ime, koka.dana7 (jaja za sedam dana)
//  u fajl, i njihov ispis na ekran.
#include<stdio.h>
#include<conio.h>
#include<string.h>

FILE *pKoke;
struct s_koka{
      char ime[20];
      int dana7;    
};
void unos(struct s_koka *koka){
     printf("ime:");scanf("%s",&koka->ime);
     printf("jaja u dana7:");scanf("%d",&koka->dana7);
     //printf("ende unos gotov");
     }
void ispis(struct s_koka *koka){
      //printf("ispis \n");
      printf("ime:%s",koka->ime);
      printf("jaja u dana7:%d",koka->dana7);
      //printf("ende ispis \n");
     }
void upisFajl(FILE* pf,struct s_koka *koka){
     // ispravi
      //printf("unos u fajl \n");
       fprintf(pf,"%s\n",koka->ime);
       fprintf(pf,"%d\n",koka->dana7);
      //printf("ende unos u fajl \n");
     }
void ispisFajl(FILE *pf){
     //printf("ispis fajl");
     char slovo;
     rewind(pf);
      while ((slovo=fgetc(pf))!=EOF){
            putch(slovo);
      }
      puts("\n");
      //printf("ende ispis u fajl");
    }



main(){
  pKoke=fopen("koke.txt","w+");
 
  struct s_koka koka;

 char jabuka='@';

 if (pKoke!=NULL){

 
  do{
     puts("*** koka ***");
     unos(&koka);
       if( strcmp(koka.ime,"exit")!=0){// pisi ako nije koka exit
        upisFajl(pKoke,&koka);
       }  
   }while( strcmp(koka.ime,"exit")!=0);
   
      // ispis
    printf("\n *** *** Koke ispis iz fajla*** ***\n");
     ispisFajl(pKoke);


   }else{
       printf("Nemogu da kreiram ili otvorim koke.txt fajl\n");
   }


 fclose(pKoke);
 
 
 getch();    
}

Wednesday, April 1, 2015

#4 Unos jabuka c, y, z u istoimene fajlove dok se neunese x za kraj, zatim ispis jabuka iz fajlova

#include<stdio.h>
#include<conio.h>
// program za unos jabuka c-crvene, y-zute, z-zelene u istoimene txt fajlove
// jabuke se unose dok se neunese x
// po zavrsetku unosa ispisati unete jabuke iz fajlova na ekran
 FILE *pc,*py,*pz;

void unos(char* jabuka){
     printf("jabuka:");
     scanf(" %c",jabuka);
     }
void ispis(char* jabuka){
     printf("@%c",*jabuka);
     }
void upisFajl(FILE* pf,char jabuka){
       fputc(jabuka,pf);
     }
void ispisFajl(FILE *pf){
     char jabuka;
     rewind(pf);
      while ((jabuka=fgetc(pf))!=EOF){
            putch(jabuka);
      }
      puts("\n");
    }
int ifc(char jabuka){
 return (  (jabuka=='x')||(jabuka=='X'));
}
main(){
     
 pc=fopen("crvene.txt","w+");
 py=fopen("zute.txt","w+");
 pz=fopen("zelene.txt","w+");

 char jabuka='@';

 if (pc!=NULL){
  if (py!=NULL){
   if (pz!=NULL){
         
  do{
   unos(&jabuka);
 
    switch(jabuka){
     case 'c': case 'C':
         upisFajl(pc,jabuka);
     break;
     case 'y': case 'Y':
         upisFajl(py,jabuka);
     break;
     case 'z': case 'Z':
         upisFajl(pz,jabuka);
     break;
     case 'x': case 'X':
         // neradi nista
     break;
     default:
     printf("nije jabuka\n");
     break;      
    }          
   }while( (jabuka=='x' || jabuka=='X')!=1);
   
      // ispis
 puts("crvene::\n");
  ispisFajl(pc);
 puts("zute::\n");
  ispisFajl(py);
 puts("zelene::\n");
  ispisFajl(pz);
 //zatvaranje
 
   }else{
       printf("Nemogu da kreiram ili otvorim zelene.txt fajl\n");
   }        
  }else{
       printf("Nemogu da kreiram ili otvorim zute.txt fajl\n");
  }        
 }else{
       printf("Nemogu da kreiram ili otvorim fajl crvene.txt \n");
 }


 fclose(pc);
 fclose(py);
 fclose(pz);
 getch();    
}

Wednesday, March 18, 2015

#6 Levo spregnuta lista

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<malloc.h>

typedef char string10[10];
struct cvor{
        string10 ime_cvora;
        struct cvor *prethodni;
        };
typedef cvor LCVOR;

void lista_ispis(LCVOR *tekuci){
  while (tekuci!=NULL){
    tekuci=tekuci->prethodni;
    printf("%s ",tekuci->ime_cvora);    
   }  
}


main(){

 LCVOR *pocetakListe, *novi;
 char ch[20];
 pocetakListe=NULL;
 printf("\n Unesi sadrzaj liste :\n");

 do{
    scanf("%s",&ch);
    novi = (LCVOR*)malloc(sizeof(LCVOR));
    strcpy(novi->ime_cvora,ch);
    novi->prethodni = pocetakListe;
    pocetakListe=novi;      
       
   }while(strcmp(ch,"kraj")!=0);
 
   printf("Sadrzaj Liste je :\n");
   lista_ispis(pocetakListe);
 
 getch();    
}

Monday, March 16, 2015

#5 Pisanje i citanje 3 strukture iz binarnog fajla

#include<stdio.h>
#include<conio.h>
#include<string.h>

// ime fajla

#define fOsoba "osoba.dat"
#define max_niza 3

// pisanje i citanje 3 strukture ili struktura iz fajla

 struct s_osoba{
    char ime[20];
    char prezime[20];
    int godine;      
 };

 void osoba_unos(struct s_osoba *osoba);
 void osoba_ispis(struct s_osoba *osoba);

 void osoba_fUnos(FILE *fp,struct s_osoba *osoba);
 void osoba_fIspis(FILE *fp,struct s_osoba *osoba);

 // rad sa vise osoba
 void osobe_unos(struct s_osoba osobe[], int max);
 void osobe_ispis(struct s_osoba osobe[], int max);
 
 void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba);
 void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba);


 void osobe_fUnosBin(FILE *fp,struct s_osoba osoba[],int max);
 void osobe_fIspisBin(FILE *fp,struct s_osoba osoba[]);

 // jedna osoba
 struct s_osoba osoba;
 // niz osoba
 struct s_osoba osobe[max_niza];
 main(){
        printf("Program za unos i citanje 3 strukture iz binarnog fajla \n");
        FILE *fp=fopen(fOsoba,"wb");
         //unos strukture sa tastature
         osobe_unos(osobe,max_niza);
         // upis u fajl
         osobe_fUnosBin(fp,&osoba,max_niza);
         // citanje iz fajla
         osobe_fIspisBin(fp,&osoba);
          // ispis strukture na ekran
          osobe_ispis(osobe,max_niza);
          //
         
          fclose(fp);
         getch();      
}

void osoba_unos(struct s_osoba *osoba){
        printf("osoba.ime=");scanf("%s",&osoba->ime);
        printf("osoba.prezime=");scanf("%s",&osoba->prezime);
        printf("osoba.godine=");scanf("%d",&osoba->godine);
     }
void osoba_ispis(struct s_osoba *osoba){
        printf("osoba.ime=%s\n",osoba->ime);
        printf("osoba.prezime=%s\n",osoba->prezime);
        printf("osoba.godine=%d\n",osoba->godine);
     }
void osobe_unos(struct s_osoba osobe[],int max){
      printf("\n##################### UNOS #################### \n");
        for (int i=0;i<max;i++){
         printf("****** OSOBA ****** \n");
          struct s_osoba osoba;
          osoba_unos(&osoba);
          osobe[i]=osoba;
        }
     }
void osobe_ispis(struct s_osoba osobe[], int max){
      printf("\n##################### ISPIS #################### \n");
        for (int i=0;i<max;i++){
          printf("****** OSOBA ****** \n");
          osoba_ispis(&osobe[i]);
        }
     }
void osoba_fUnos(FILE *fp,struct s_osoba *osoba){
      if (fp!=NULL){
        fprintf(fp,"%s\n",osoba->ime);
        fprintf(fp,"%s\n",osoba->prezime);
        fprintf(fp,"%d\n",osoba->godine);
       }
       else{
       printf("Cant read or create file");
       }
     }
 void osoba_fIspis(FILE *fp,struct s_osoba *osoba){
     if (fp!=NULL){
       rewind(fp); // vrati na pocetak fajla pre citnaja
         char str[20];
        fgets(str,20,fp); strcpy(osoba->ime,str);
        fgets(str,20,fp); strcpy(osoba->prezime,str);
        fscanf (fp, "%d", &osoba->godine);
       
       }
       else{
       printf("Cant read or create file");
       }
     }
void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba){
      if (fp!=NULL){
        fwrite(osoba, sizeof(struct s_osoba), 1, fp);
       }
       else{
       printf("Cant read or create file");
       }
     }

  void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba){
     if (fp!=NULL){
       rewind(fp); // vrati na pocetak fajla pre citnaja
       fread(osoba,sizeof(struct s_osoba),1,fp);
       }
       else{
       printf("Cant read or create file");
       }
     }
void osobe_fUnosBin(FILE *fp,struct s_osoba osobe[],int max){
      if (fp!=NULL){
         for(int i=0;i<max;i++){
               fwrite(&osobe[i], sizeof(struct s_osoba), 1, fp);
         }
       }
       else{
       printf("Cant read or create file");
       }
     }

  void osobe_fIspisBin(FILE *fp,struct s_osoba osobe[]){
     if (fp!=NULL){
       rewind(fp); // vrati na pocetak fajla pre citnaja
       // citaj sve dok je velicna procitanog ista kao velicina strukture
       struct s_osoba osoba;
       int i=0;
        while ( fread(&osoba,sizeof(struct s_osoba),1,fp)== sizeof(struct s_osoba)) {
        /* byte swap here */
          osobe[i]=osoba;
          struct s_osoba osoba;
          i++;
        }
     
       }
       else{
       printf("Cant read or create file");
       }
     }

Monday, March 9, 2015

#3 Pisanje i citanje strukture iz fajla

#include<stdio.h>
#include<conio.h>
#include<string.h>

// pisanje i citnaje strukture iz fajla
 struct s_person{
    char name[20];
    char surname[20];
    int age;      
 };

 void person_input(struct s_person *person);
 void person_output(struct s_person *person);

 void person_fWrite(FILE *fp,struct s_person *person);
 void person_fRead(FILE *fp,struct s_person *person);

 struct s_person person;

 main(){
       
        FILE *fp=fopen("fStruct.txt","w+");
         //unos strukture sa tastature
         person_input(&person);
         // upis u fajl
         person_fWrite(fp,&person);
         // citanje iz fajla
         person_fRead(fp,&person);
          // ispis strukture na ekran
          person_output(&person);
          //
         
          fclose(fp);
         getch();      
}

void person_input(struct s_person *person){
        printf("person.name=");scanf("%s",&person->name);
        printf("person.surname=");scanf("%s",&person->surname);
        printf("person.age=");scanf("%d",&person->age);
     }
void person_output(struct s_person *person){
        printf("person.name=%s",person->name);
        printf("person.surname=%s",person->surname);
        printf("person.age=%d",person->age);
     }
void person_fWrite(FILE *fp,struct s_person *person){
      if (fp!=NULL){
        fprintf(fp,"%s\n",person->name);
        fprintf(fp,"%s\n",person->surname);
        fprintf(fp,"%d\n",person->age);
       }
       else{
       printf("Cant read or create file");
       }
     }
 void person_fRead(FILE *fp,struct s_person *person){
     if (fp!=NULL){
       rewind(fp); // vrati na pocetak fajla pre citnaja
         char str[20];
        fgets(str,20,fp); strcpy(person->name,str);
        fgets(str,20,fp); strcpy(person->surname,str);
        fscanf (fp, "%d", &person->age);
       
       }
       else{
       printf("Cant read or create file");
       }
     }