mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-10-28 11:10:38 +01:00
rzeczy
This commit is contained in:
83
uczelnia/2_semestr/programowanie/laby/kolokwium2_probne.cpp
Normal file
83
uczelnia/2_semestr/programowanie/laby/kolokwium2_probne.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
class Produkt {
|
||||
double cena;
|
||||
int ilosc;
|
||||
|
||||
public:
|
||||
std::string nazwa;
|
||||
Produkt(std::string nazwa, double cena, int ilosc)
|
||||
: nazwa(nazwa), cena(cena), ilosc(ilosc) {}
|
||||
Produkt() {}
|
||||
|
||||
void wypisz() const {
|
||||
std::cout << "Nazwa: " << nazwa << '\n'
|
||||
<< "Cena: " << cena << '\n'
|
||||
<< "Ilość: " << ilosc << std::endl;
|
||||
}
|
||||
|
||||
double wartosc() const { return cena * ilosc; }
|
||||
void zmienCene(double nowaCena) { cena = nowaCena; }
|
||||
void dodajSztuke(int ile) { ilosc += ile; }
|
||||
};
|
||||
|
||||
class Magazyn {
|
||||
int max_pojemnosc;
|
||||
int aktualna_pojemnosc;
|
||||
static int ilosc_magazynow;
|
||||
|
||||
public:
|
||||
Produkt *magazyn;
|
||||
|
||||
Magazyn(int pojemnosc)
|
||||
: max_pojemnosc(pojemnosc), magazyn(new Produkt[pojemnosc]),
|
||||
aktualna_pojemnosc(0) {}
|
||||
~Magazyn() { delete[] magazyn; }
|
||||
bool dodajProdukt(const Produkt &p) {
|
||||
if (aktualna_pojemnosc >= max_pojemnosc) {
|
||||
return false;
|
||||
}
|
||||
magazyn[aktualna_pojemnosc++] = p;
|
||||
return true;
|
||||
}
|
||||
|
||||
Produkt *znajdzProdukt(const std::string &nazwa) {
|
||||
for (int i = 0; i < aktualna_pojemnosc; i++) {
|
||||
if (magazyn[i].nazwa == nazwa) {
|
||||
return &magazyn[i];
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void wypiszWszystkie() const {
|
||||
for (int i = 0; i < aktualna_pojemnosc; i++) {
|
||||
magazyn[i].wypisz();
|
||||
}
|
||||
}
|
||||
|
||||
double obliczWartoscMagazynu() const {
|
||||
double wartosc = 0;
|
||||
for (int i = 0; i < aktualna_pojemnosc; i++) {
|
||||
wartosc += magazyn[i].wartosc();
|
||||
}
|
||||
return wartosc;
|
||||
}
|
||||
|
||||
static int ileMagazynow() { return Magazyn::ilosc_magazynow; }
|
||||
};
|
||||
|
||||
int Magazyn::ilosc_magazynow = 0;
|
||||
|
||||
int main() {
|
||||
Magazyn m = Magazyn(10);
|
||||
m.dodajProdukt(Produkt("marchewka", 2, 2));
|
||||
m.dodajProdukt(Produkt("banan", 5, 3));
|
||||
m.dodajProdukt(Produkt("gruszka", 4, 10));
|
||||
Produkt *p = m.znajdzProdukt("gruszka");
|
||||
p->zmienCene(234);
|
||||
m.wypiszWszystkie();
|
||||
m.obliczWartoscMagazynu();
|
||||
m.ileMagazynow();
|
||||
}
|
||||
Reference in New Issue
Block a user