kestutis

5pamokėlė. 2lygis. Parduotuvė.

Mar 14th, 2013
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | None | 0 0
  1. #include "CParduotuve.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. //================================================
  6. CParduotuve::CParduotuve(const char failas [])
  7. {
  8.     ifstream duomenys(failas);
  9.  
  10.     duomenys >> kindziulio_pinigai
  11.             >> lentynu_skaicius;
  12.  
  13.     lentynos = new LENTYNA [lentynu_skaicius];
  14.  
  15.     int prekiu_skaicius_lentynoje;
  16.  
  17.     for (int i = 0; i < lentynu_skaicius; i++)
  18.     {
  19.         duomenys >> prekiu_skaicius_lentynoje;
  20.         lentynos[i] = LENTYNA(prekiu_skaicius_lentynoje);
  21.         for(int j = 0; j < prekiu_skaicius_lentynoje; j++)
  22.             duomenys >> lentynos[i].prekes[j];
  23.     }
  24.  
  25.     kindziulio_pirktos_prekes = 0;
  26. }
  27. //---------------------------------------------
  28. CParduotuve::CParduotuve()
  29. {
  30.     lentynu_skaicius = kindziulio_pirktos_prekes = 0;
  31.     kindziulio_pinigai = kindziulio_likusieji_pinigai = 0;
  32.     lentynos = NULL;
  33. }
  34. //-------------------------------------------
  35. CParduotuve::~CParduotuve()
  36. {
  37.     delete[] lentynos;
  38. }
  39. //---------------------------------------------
  40. void CParduotuve::Skaiciuoti()
  41. {
  42.     kindziulio_likusieji_pinigai = kindziulio_pinigai;
  43.  
  44.     int ID;
  45.  
  46.     for (int i = 0; i < lentynu_skaicius; i++)
  47.     {
  48.         ID = 0;
  49.         for(int j = 0; j < lentynos[i].prekiu_skaicius; j++)
  50.             if (lentynos[i].prekes[j] > lentynos[i].prekes[ID] && lentynos[i].prekes[ID] < kindziulio_likusieji_pinigai)
  51.                 ID = j;
  52.         if(lentynos[i].prekes[ID] <= kindziulio_likusieji_pinigai) {
  53.                 kindziulio_likusieji_pinigai -= lentynos[i].prekes[ID];
  54.                 kindziulio_pirktos_prekes++;
  55.         }
  56.     }
  57. }
  58. //---------------------------------------------------
  59. void CParduotuve::SuvestiRezultatus(const char failas[])
  60. {
  61.     ofstream rezultatai;
  62.     rezultatai.open(failas);
  63.  
  64.     rezultatai << fixed << setprecision(0);
  65.     rezultatai << kindziulio_pirktos_prekes << " " << kindziulio_likusieji_pinigai;
  66.  
  67.     rezultatai.close();
  68. }
  69. //=========================================================
  70. LENTYNA::LENTYNA(int prekiu_skaicius)
  71. {
  72.     prekes = new double [prekiu_skaicius];
  73.     this->prekiu_skaicius = prekiu_skaicius;
  74. }
  75. //---------------------------------------------------------
  76. LENTYNA& LENTYNA::operator=(const LENTYNA& other) {
  77.     if (this != &other) {//Avoid stupid bugs
  78.         //Copy data
  79.         double* tmp = new double[other.prekiu_skaicius];
  80.         for(int i=0; i<other.prekiu_skaicius; ++i)
  81.             tmp[i] = other.prekes[i];
  82.         prekes = tmp;
  83.         prekiu_skaicius = other.prekiu_skaicius;
  84.         //cout << ":)" << endl;
  85.     }
  86.     return *this;  
  87. }
  88. //---------------------------------------------------------
  89. LENTYNA::LENTYNA()
  90. {
  91.     prekiu_skaicius = 0;
  92.     prekes = NULL;
  93. }
  94. //------------------------------------------------------------
  95. LENTYNA::~LENTYNA()
  96. {
  97.     //cout << prekiu_skaicius << endl;
  98.     if(prekes != NULL)
  99.         delete[] prekes;
  100.     prekes = NULL;
  101. }
  102. //=============================================================
Advertisement
Add Comment
Please, Sign In to add comment