Advertisement
Guest User

Kolis3

a guest
May 5th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.49 KB | None | 0 0
  1. bool AutoDuomenys::operator<(const AutoDuomenys &kitas) {
  2.     if( co2<kitas.co2 && kategorija == 5 && kitas.kategorija == 5)  
  3.         return true;
  4.     return false;
  5. }
  6.  
  7. class AutoElementas {
  8.     AutoDuomenys automob; //informacija apie automobili
  9.     AutoElementas *pirmyn; //tolimesnio elemento adresas
  10.     AutoElementas *atgal; //pries esancio elemento adresas
  11. public:
  12.     /** Konstruktorius
  13.     @param Duom - duomenu dalis
  14.     @param pirm - adresas pirmyn
  15.     @param atga - adresas atgal */
  16.     AutoElementas(const AutoDuomenys & Duom  = AutoDuomenys(), AutoElementas * const pirm = NULL,
  17.         AutoElementas * const atga = NULL):
  18.     automob(Duom), pirmyn (pirm), atgal (atga) { }
  19.     /** Priskiria duomenu dali */
  20.     void PriskirtiDuom(const AutoDuomenys & Duom) { automob = Duom; }
  21.     /** Priskira rodyklei pirmyn reiksme */
  22.     void PriskirtiPirmyn(AutoElementas *pirm) { pirmyn = pirm; }
  23.     /** Priskira rodyklei atgal reiksme */
  24.     void PriskirtiAtgal(AutoElementas *atga) { atgal = atga; }
  25.     /** Grazina Darbuotojas tipo objekta */
  26.     AutoDuomenys Imti() const { return automob; }
  27.     /** Grazina adresa pirmyn */
  28.     AutoElementas *Pirmyn() { return pirmyn; }
  29.     /** Grazina adresa pirmyn */
  30.     const AutoElementas *Pirmyn () const { return pirmyn; }
  31.     /** Grazina adresa atgal */
  32.     AutoElementas *Atgal() { return atgal; }
  33.     /** Grazina adresa atgal */
  34.     const AutoElementas *Atgal() const {return atgal;}
  35.     bool operator <(const AutoElementas & xx);
  36.     AutoElementas & operator =(const AutoElementas & xx);
  37. };
  38.  
  39. AutoElementas & AutoElementas::operator =(const AutoElementas & xx)
  40. {
  41.     automob = xx.automob;
  42.     return *this;
  43. }
  44.  
  45. bool AutoElementas::operator <(const AutoElementas & xx)
  46. {
  47.     return ( automob < xx.automob );
  48. }
  49.  
  50.  
  51. class Automobiliai {
  52.     AutoElementas *pr, *eina, *pb;
  53.     //pr - saraso pradzios rodykle
  54.     //eina - sasajos metodu rodykle
  55.     //pb - rodykle i paskutini saraso elementa
  56.     Automobiliai (const Automobiliai & kitas);
  57.     Automobiliai & operator = (const Automobiliai & kitas);
  58.  
  59. public:
  60.     Automobiliai(): pr(NULL), eina(NULL), pb(NULL) { }
  61.     ~Automobiliai() { Naikinti(); }
  62.  
  63.     /** Nustato rodykle i saraso pradzia */
  64.     void PradetiPr() { eina = pr; }
  65.     /** Nustato rodykle i saraso pabaiga */
  66.     void PradetiPb() { eina = pb; }
  67.     /** Tikrina sasajos rodykle
  68.     @return grazina true, jei rodykle lygi NULL */
  69.     bool Baigti() const { return eina == NULL; }
  70.     /** Grazina Darbuotojas tipo objekta pagal sasajos rodykle */
  71.     AutoDuomenys ImtiEina() const { return eina->Imti(); }
  72.     /** Pastumia sasajos rodykle i prieki */
  73.     void EitiPirmyn() { eina = eina->Pirmyn(); }
  74.     /** Pastumia sasajos rodykle atgal */
  75.     void EitiAtgal() { eina = eina->Atgal(); }
  76.     void Sukurti(const AutoDuomenys & duomp);
  77.     void Naikinti();
  78.     void Rikiuoti();
  79. };
  80.  
  81. /** Sunaikina sarasa */
  82. void Automobiliai::Naikinti()
  83. {
  84.     AutoElementas *naik;
  85.         while(pr != NULL) {
  86.             naik = pr;
  87.             pr = pr->Pirmyn();
  88.             delete naik;
  89.         }
  90.     pb = NULL;
  91.     eina = NULL;
  92. }
  93.  
  94. /** Sukuria naujo saraso elementa
  95. @param duomp - klases AutoDuomenys kintamasis */
  96.  
  97. void Automobiliai::Sukurti(const AutoDuomenys & duomp)
  98. {
  99.     if (pr == NULL)
  100.         pb = pr = new AutoElementas(duomp);
  101.     else {
  102.         AutoElementas *iterpt = new AutoElementas(duomp, NULL, pb);
  103.         pb->PriskirtiPirmyn(iterpt);
  104.         pb = iterpt;
  105.     }
  106. }
  107.  
  108. void Skaityti(const string fv, Automobiliai & objAuto) {
  109.  
  110.     int k, c;
  111.     string g, m;
  112.    
  113.     ifstream fd(fv);
  114.  
  115.     while( !fd.eof() ) {
  116.  
  117.         fd >> g >> m >> k >> c;
  118.  
  119.         AutoDuomenys C(g,m,k,c);
  120.         objAuto.Sukurti(C);
  121.     }
  122.  
  123. }
  124.  
  125. void Spausdinti(const string fv, Automobiliai & objAuto, string eil)
  126. {
  127. ofstream fr(fv,ios::app);
  128. fr << eil << endl;
  129. fr << "-------------------------------------------" << endl;
  130. fr << "| Gamintojas | Modelis | Kategorija | CO2 |" << endl;
  131. fr << "-------------------------------------------" << endl;
  132.  
  133. for (objAuto.PradetiPr(); !objAuto.Baigti(); objAuto.EitiPirmyn()) {
  134.     AutoDuomenys automob = objAuto.ImtiEina();
  135.  
  136.     fr << "|" << left << setw(12) << automob.ImtiGamintoja() << "|" <<  
  137.         setw(9) << automob.ImtiModeli() << "|" << setw(12)
  138.         << automob.ImtiKategorija() << "|" << setw(5) << automob.ImtiCo2() <<  "|";
  139.     fr << endl;
  140. }
  141.  
  142. fr << "--------------------------------------------" << endl;
  143. fr.close();
  144. }
  145.  
  146. AutoDuomenys Minimumas(Automobiliai & objAuto) {
  147.  
  148.     AutoDuomenys min, A;
  149.     bool pirmas = true;
  150.  
  151.     for(objAuto.PradetiPr();!objAuto.Baigti();objAuto.EitiPirmyn()) {
  152.  
  153.         A = objAuto.ImtiEina();
  154.             if(A.ImtiKategorija() == 5 && pirmas == true) {
  155.                 pirmas = false;
  156.                 min = A;
  157.             }
  158.  
  159.             if(A<min && pirmas == false) {
  160.                 min = A;
  161.             }
  162.            
  163.     }
  164.  
  165.     return min;
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement