Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- using namespace std;
- ofstream fr;
- const int maks = 100; // konst, nurodanti maks. galimą masyvo reikšmę
- // failas, kuriame laikomi duomenys apie zoo sode esančius gyvūnus
- const char Zo[] = "zoo.txt";
- // failas, kuriame bus laikomi galutiniai skaičiavimai ar kiti duomenys
- const char Rez[] = "rez.txt";
- // klasė ----------------------------------------------
- // zoo sode esančius gyvūnus aprašanti klasė
- class ZooSodas
- {
- string gyvunas; // gyvūnas
- int kiekis; // gyvūnų skaičius
- public:
- void Dėti(string gyvunas, int kiekis);
- string ImtiGyvūną() { return gyvunas; }
- int ImtiKiekį() { return kiekis; }
- };
- // suteikia klasės kintamiesiems naujas reikšmes
- void ZooSodas::Dėti(string gyvunas, int kiekis)
- {
- ZooSodas::gyvunas = gyvunas;
- ZooSodas::kiekis = kiekis;
- }
- // prototipai -----------------------------------------
- void Skaityti(ZooSodas z1[], string & zooPav, int & gyvunSK);
- void NurodytiGyvunai(ZooSodas z1[], ZooSodas Z0[], int & ATRskaicius, int gyvunSK);
- void Išvedimas(ofstream & fr, ZooSodas Z0[], int & ATRskaicius);
- // main funkcija --------------------------------------
- int main()
- {
- setlocale(LC_ALL, "Lithuanian");
- ZooSodas z1[maks]; // Klasės "Zoo" objektai
- ZooSodas Z0[maks]; // masyvas, kuriame bus išrinkti gyvūnai
- string zooPav; int gyvunSK; // Zoo sodo pavadinimas ir gyvūnų skaičius
- int ATRskaicius; // atrinktų gyvūnų skaičius
- fr.open(Rez);
- Skaityti(z1, zooPav, gyvunSK); // funkcija, nuskaitanti pradinį failą
- NurodytiGyvunai(z1, Z0, ATRskaicius, gyvunSK); // funkcija, išrenkanti atitinkamus gyvūnus
- Išvedimas(fr, Z0, ATRskaicius); // funkcija, išvedanti atrinktus gyvūnus
- fr.close();
- return 0;
- }
- // funkcijos -----------------------------------------
- // skaito duomenis apie gyvūnus iš failo
- void Skaityti(ZooSodas z1[], string & zooPav, int & gyvunSK)
- {
- string gyv; // zoo sodo gyvūnas
- int kiekis; // šių gyvūnų skaičius
- ifstream fd(Zo);
- fd >> zooPav >> gyvunSK;
- for (int i = 0; i < gyvunSK; i++){
- fd >> gyv >> kiekis;
- z1[i].Dėti(gyv, kiekis);
- }
- fd.close();
- }
- // skaičiuoja kiek yra gyvūnų pagal duotus kriterijus
- void NurodytiGyvunai(ZooSodas z1[], ZooSodas Z0[], int & ATRskaicius, int gyvunSK)
- {
- int kiekis; // laik. kint. gyvųnų skaičiui saugoti
- int sk = 0; // nurodytų gyvūnų skaičius
- ATRskaicius = 0;
- cout << "Bus atrinkti gyvūnai neviršijantys nurodyto skaičiaus.\nĮveskite skaičių: ";
- cin >> kiekis;
- cout << endl;
- for (int i = 0; i < gyvunSK; i++){
- if (z1[i].ImtiKiekį() <= kiekis){
- sk++;
- Z0[ATRskaicius++] = z1[i];
- }
- }
- fr << "Gyvūnų, kurių yra nedaugiau nei " << kiekis << ", yra " << sk << endl;
- }
- // išveda išrinktus gyvūnus į failą
- void Išvedimas(ofstream & fr, ZooSodas Z0[], int & ATRskaicius)
- {
- fr << "----------------------\n";
- fr << "Gyvūnas Kiekis\n";
- fr << "----------------------\n";
- for (int i = 0; i < ATRskaicius; i++){
- fr << setw(16) << left << Z0[i].ImtiGyvūną()
- << setw(4) << right << Z0[i].ImtiKiekį()
- << endl;
- }
- fr << "----------------------\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement