Advertisement
kaunas163

Lengva duomenų failų generacija 4 laborui

May 15th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.22 KB | None | 0 0
  1. /* 2014.05.16 Ieva Jakšaitytė KTU IF-3/4
  2.  
  3. Pagalbinė programa "U4-15. Prekių apyvarta." Laboratoriniui darbui
  4. Dokumento 1-oje eilutėje yra mėnesio diena. Kiekvienoje kitoje eilutėje yra:
  5. prekės pavadinimas, ryte turėtas kiekis, per dieną parduotas kiekis, kaina.
  6.  
  7. Čia principas toks:
  8. Turiu vieną didelį prekių sąrašą, kuriame turiu prekės pavadinimus ir kainas.
  9. Jį nuskaitau ir kuriuosi kiekvieną failą atskirai, pasirinkdama kurias
  10. prekes į jį dėti. Programa automatiškai sugeneruoja kiek parduotuvė
  11. tų prekių turėjus iš ryto ir kiek pardavus per dieną. Viską išveda gražiai
  12. į nurodytą failą (failo vardą renkasi žmogus).
  13.  
  14. Duomenų failo pavyzdys (pavadinimas, kaina):
  15.  
  16. Speed-link XEOX Pro Analog juoda USB zaidimu vairamente, 59.99
  17. Multimedia pultelis WL3, 176
  18. GPS navigacine iranga Becker Ready 45 ICE, 449
  19. Zaidimas Call of Duty 5 (World at War) CLASSIC XB360, 78.49
  20. Arnica Dulkiu siurblys 800W MERLIN, 194
  21. 4World Raktu pakabukas-Mini DV kamera su diktofonas 8GB USB, 91.99
  22. A-DATA 4GB USB2.0 atmintine Sport S805 raudona, 15.99
  23. Acer ICONIA W4-820 Tablet, 1059
  24. Zaidimas 1C COMPANY Parkan 2, 30.49
  25. Veidrodinis fotoaparatas Canon EOS 1200D 18-55 IS II, 1469
  26. Televizorius Blaupunkt 23'' E-LED HD, 527
  27. Skalbykle AEG L60060SL O, 1152
  28. Siuvimo masina Singer Promise SMC1409/00, 419
  29.  
  30. Išvesto failo pavyzdys:
  31.  
  32. 2
  33. Multimedia pultelis WL3, 4 1 176
  34. A-DATA 4GB USB2.0 atmintine Sport S805 raudona, 11 9 15.99
  35. Arnica Dulkiu siurblys 800W MERLIN, 11 4 194
  36. */
  37.  
  38. #include <iostream>
  39. #include <fstream>
  40. #include <string>
  41. #include <iomanip>
  42. #include <stdio.h>      // printf, NULL
  43. #include <stdlib.h>     // srand, rand
  44. #include <time.h>       // time
  45. using namespace std;
  46.  
  47.  
  48. class Preke
  49. {
  50. private:
  51.     string pavadinimas;
  52.     double kaina;
  53. public:
  54.     void DetiDuomenis(string pav, double kain)
  55.     { pavadinimas = pav; kaina = kain; }
  56.     string ImtiPavadinima() { return pavadinimas; }
  57.     double ImtiKaina() { return kaina; }
  58. };
  59.  
  60.  
  61. void NuskaitytiPrekes(Preke PrekiuMasyvas[], int & kiek);
  62. void IsvestiVisasPrekes(Preke PrekiuMasyvas[], int kiek);
  63. void KurtiAtskiraPrekiuDokumenta(Preke PrekiuMasyvas[]);
  64.  
  65.  
  66. int main() {
  67.  
  68.     setlocale(LC_ALL, "Lithuanian");
  69.     Preke PrekiuMasyvas[20];    // visi duomenys apie prekes
  70.     int kiek = 0;           // kiek prekių iš viso
  71.     char l;
  72.     NuskaitytiPrekes(PrekiuMasyvas, kiek);
  73.     IsvestiVisasPrekes(PrekiuMasyvas, kiek);
  74.     bool dar = true;
  75.     while (dar)
  76.     {
  77.         KurtiAtskiraPrekiuDokumenta(PrekiuMasyvas);
  78.         cout << "Kurti dar vieną failą? (y/n) "; cin >> l;
  79.         if (l != 'y')
  80.             dar = false;
  81.     }
  82.     system("pause");
  83.     return 0;
  84. }
  85.  
  86.  
  87. /* Nuskaito visas prekes iš pradinio sąrašo, viską deda į masyvą,
  88. paėma skaičių, kiek yra prekių */
  89. void NuskaitytiPrekes(Preke PrekiuMasyvas[], int & kiek)
  90. {
  91.     ifstream fin("prekes.txt");
  92.     string pav; double kaina;
  93.     while (!fin.eof())
  94.     {
  95.         getline(fin, pav, ',');
  96.         fin >> ws >> kaina >> ws;
  97.         PrekiuMasyvas[kiek].DetiDuomenis(pav, kaina);
  98.         kiek++;
  99.     }
  100.     fin.close();
  101. }
  102.  
  103.  
  104. /* Išveda rastas prekes į ekraną */
  105. void IsvestiVisasPrekes(Preke PrekiuMasyvas[], int kiek)
  106. {
  107.     cout << "Nuskaitytos prekės:\n\n";
  108.     for (int i = 0; i < kiek; i++)
  109.     {
  110.         cout << i+1 << ". " << PrekiuMasyvas[i].ImtiPavadinima()
  111.             << " (" << PrekiuMasyvas[i].ImtiKaina() << " Lt)\n";
  112.     }
  113.     cout << "\n\n\n";
  114. }
  115.  
  116.  
  117. /* Išveda nurodytas prekes į atskirą nurodytą failą */
  118. void KurtiAtskiraPrekiuDokumenta(Preke PrekiuMasyvas[])
  119. {
  120.     string failoVardas; int kiekIsvesti;
  121.     int menesioDiena, prekesNumeris, a, b;
  122.     srand(time(NULL));
  123.  
  124.     cout << "Nurodykite failo vardą į kurį norite išvesti (su .txt galūne, be tarpų):\n";
  125.     cin >> failoVardas;
  126.     cout << "Kiek prekių išvesite? ";
  127.     cin >> kiekIsvesti;
  128.     cout << "Mėnesio diena: "; cin >> menesioDiena;
  129.     cout << endl;
  130.  
  131.     ofstream f(failoVardas);
  132.     f << menesioDiena << endl;
  133.     for (int i = 0; i < kiekIsvesti; i++)
  134.     {
  135.         cout << "Prekės numeris: "; cin >> prekesNumeris;
  136.         a = rand() % 15;
  137.         bool Nulis = true;
  138.         while (Nulis)
  139.         {
  140.             if (a == 0)
  141.                 a = rand() % 15;
  142.             else
  143.                 Nulis = false;
  144.         }
  145.         b = rand() % a;
  146.         f << PrekiuMasyvas[prekesNumeris-1].ImtiPavadinima() << ", "
  147.             << a << " " << b << " " << PrekiuMasyvas[prekesNumeris-1].ImtiKaina()
  148.             << "\n";
  149.     }
  150.     cout << "Baigta.\n\n";
  151.     f.close();
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement