kestutis

2 lygis | 7 pamokėlė | Automobiliai | Autoriaus sprendimas

Jun 14th, 2014
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iomanip>
  4. #include <string>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7.  
  8. using namespace std;
  9.  
  10. struct automobilis
  11. {
  12.     string pavadinimas;
  13.     int rida;
  14.     int remontas;
  15. };
  16.  
  17. void skaitymas (automobilis Visi[], automobilis Perkami[], int &vkiekis, int &pkiekis, int &rida, int &remontas);
  18. void salinti (automobilis Visi[], int &vkiekis, int &rida, int &remontas);
  19. void pastumtikairen (automobilis Visi[], int &vkiekis, int indeksas);
  20. void papildyti (automobilis Visi[], automobilis Perkami[], int &vkiekis, int &pkiekis);
  21. void ribiniai (automobilis Visi[], automobilis Ribiniai[], int &vkiekis, int &rkiekis, int rida);
  22. void isvedimas(automobilis Visi[], automobilis Ribiniai[], int &vkiekis, int &rkiekis);
  23.  
  24. int main ()
  25. {
  26.     automobilis Visi[100], Perkami[100], Ribiniai[100];
  27.     int vkiekis = 0, pkiekis = 0, rkiekis = 0, rida = 0, remontas = 0;
  28.     skaitymas(Visi, Perkami, vkiekis, pkiekis, rida, remontas);
  29.     salinti(Visi, vkiekis, rida, remontas);
  30.     papildyti (Visi, Perkami, vkiekis, pkiekis);
  31.     ribiniai (Visi, Ribiniai, vkiekis, rkiekis, rida);
  32.     isvedimas(Visi, Ribiniai, vkiekis, rkiekis);
  33.     return 0;
  34. }
  35.  
  36. void skaitymas (automobilis Visi[], automobilis Perkami[], int &vkiekis, int &pkiekis, int &rida, int &remontas)
  37. {
  38.     ifstream fd ("Duomenys.txt");
  39.     fd >> rida >> remontas;
  40.     fd >> vkiekis;
  41.     for (int i = 0; i < vkiekis; i++)
  42.     {
  43.             fd >> Visi[i].pavadinimas;
  44.             fd.ignore();
  45.             fd >> Visi[i].rida;
  46.             fd.ignore();
  47.             fd >> Visi[i].remontas;
  48.             fd.ignore();
  49.     }
  50.  
  51.     fd >> pkiekis;
  52.     for (int i = 0; i < pkiekis; i++)
  53.     {
  54.             fd >> Perkami[i].pavadinimas;
  55.             fd.ignore();
  56.             fd >> Perkami[i].rida;
  57.             fd.ignore();
  58.             fd >> Perkami[i].remontas;
  59.             fd.ignore();
  60.     }
  61.     fd.close();
  62. }
  63.  
  64. void papildyti (automobilis Visi[], automobilis Perkami[], int &vkiekis, int &pkiekis)
  65. {
  66.     for (int i = 0; i < pkiekis; i++)
  67.     {
  68.         Visi[vkiekis++] = Perkami[i];
  69.     }
  70. }
  71.  
  72. void salinti (automobilis Visi[], int &vkiekis, int &rida, int &remontas)
  73. {
  74.     int i = 0;
  75.     while (i < vkiekis)
  76.     {
  77.             if (Visi[i].remontas > remontas || Visi[i].rida > rida)
  78.             {
  79.             pastumtikairen(Visi, vkiekis, i);
  80.             i--;
  81.             }
  82.             i++;
  83.     }
  84. }
  85.  
  86. void pastumtikairen(automobilis Visi[], int &vkiekis, int indeksas)
  87. {
  88.     for (int i = indeksas; i < vkiekis; i++)
  89.     {
  90.         Visi[i] = Visi[i+1];
  91.     }
  92.     vkiekis--;
  93. }
  94.  
  95. void isvedimas(automobilis Visi[], automobilis Ribiniai[], int &vkiekis, int &rkiekis)
  96. {
  97.     ofstream fr ("Rezultatai.txt");
  98.     fr << "Naujas automobilių sąrašas: " << endl;
  99.     for (int i = 0; i < vkiekis; i++) {
  100.             fr << fixed << setprecision(2) << Visi[i].pavadinimas << " " << Visi[i].rida << " " << Visi[i].remontas << endl;
  101.     }
  102.     fr << endl << "Ribinės ridos automobiliai: " << endl;
  103.     for (int i = 0; i < rkiekis; i++) {
  104.             fr << fixed << setprecision(2) << Ribiniai[i].pavadinimas << " " << Ribiniai[i].rida << " " << Ribiniai[i].remontas << endl;
  105.     }
  106.     fr.close();
  107. }
Advertisement
Add Comment
Please, Sign In to add comment