mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-10-28 11:10:38 +01:00
probne kolokwium
This commit is contained in:
29
uczelnia/2_semestr/programowanie/laby/kolosy/kolokwium1.cpp
Normal file
29
uczelnia/2_semestr/programowanie/laby/kolosy/kolokwium1.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
class Pole_Szymon_Prusiewicz {
|
||||
public:
|
||||
int x, y;
|
||||
Pole_Szymon_Prusiewicz(int x, int y) : x(x), y(y) {
|
||||
cout << x << ' ' << y << endl;
|
||||
}
|
||||
~Pole_Szymon_Prusiewicz() { cout << "koniec zycia" << endl; }
|
||||
void oblicz_pole() { cout << "Pole wynosi: " << x * y << endl; }
|
||||
|
||||
Pole_Szymon_Prusiewicz &operator=(const Pole_Szymon_Prusiewicz &inne_pole) {
|
||||
cout << "Przypisanie" << endl;
|
||||
if (this != &inne_pole) {
|
||||
x = inne_pole.x;
|
||||
y = inne_pole.y;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
Pole_Szymon_Prusiewicz p1(1, 2);
|
||||
Pole_Szymon_Prusiewicz p2 = p1;
|
||||
p1.oblicz_pole();
|
||||
return 0;
|
||||
}
|
||||
121
uczelnia/2_semestr/programowanie/laby/kolosy/kolokwium2.cpp
Normal file
121
uczelnia/2_semestr/programowanie/laby/kolosy/kolokwium2.cpp
Normal file
@@ -0,0 +1,121 @@
|
||||
#include <cstddef>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
class Towar {
|
||||
double cena;
|
||||
int sztuki;
|
||||
|
||||
public:
|
||||
std::string nazwa;
|
||||
Towar(std::string nazwa, double cena, int sztuki)
|
||||
: nazwa(nazwa), cena(cena), sztuki(sztuki) {}
|
||||
Towar() {}
|
||||
|
||||
void wypisz() const {
|
||||
std::cout << "Nazwa: " << nazwa << '\n'
|
||||
<< "Cena: " << cena << '\n'
|
||||
<< "Liczba sztuk: " << sztuki << std::endl;
|
||||
}
|
||||
double wartosc() const { return cena * sztuki; }
|
||||
void zmienCene(double nowaCena) { cena = nowaCena; }
|
||||
void dodajSztuki(int ile) { sztuki += ile; }
|
||||
// int operator+(Towar &t) { return cena + t.cena; }
|
||||
Towar operator+(Towar &t) {
|
||||
return Towar(nazwa + t.nazwa, cena + t.cena, sztuki + t.sztuki);
|
||||
}
|
||||
};
|
||||
|
||||
class Sklep {
|
||||
Towar *sklep;
|
||||
int max_ammount;
|
||||
int current_ammount;
|
||||
static int sklep_ammount;
|
||||
|
||||
public:
|
||||
Sklep(size_t max_towary)
|
||||
: max_ammount(max_towary), sklep(new Towar[max_towary]),
|
||||
current_ammount(0) {
|
||||
Sklep::sklep_ammount++;
|
||||
}
|
||||
|
||||
~Sklep() {
|
||||
delete[] sklep;
|
||||
sklep = nullptr;
|
||||
Sklep::sklep_ammount--;
|
||||
}
|
||||
|
||||
bool dodajTowar(const Towar &t) {
|
||||
if (current_ammount >= max_ammount) {
|
||||
return false;
|
||||
}
|
||||
sklep[current_ammount++] = t;
|
||||
return true;
|
||||
}
|
||||
|
||||
Towar *znajdzTowar(const std::string &nazwa) {
|
||||
for (int i = 0; i < current_ammount; i++) {
|
||||
if (sklep[i].nazwa == nazwa) {
|
||||
return &sklep[i];
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void wypiszWszystkie() const {
|
||||
for (int i = 0; i < current_ammount; i++) {
|
||||
sklep[i].wypisz();
|
||||
}
|
||||
}
|
||||
|
||||
double obliczWartoscSklepu() const {
|
||||
double sum = 0;
|
||||
for (int i = 0; i < current_ammount; i++) {
|
||||
sum += sklep[i].wartosc();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
static int ileSklepow() { return Sklep::sklep_ammount; }
|
||||
};
|
||||
|
||||
int Sklep::sklep_ammount = 0;
|
||||
|
||||
int main() {
|
||||
Sklep sklep = Sklep(5);
|
||||
std::cout << "=== 1. Oryginalny stan sklepu ===" << std::endl;
|
||||
sklep.dodajTowar(Towar("Marchewka", 2, 3));
|
||||
sklep.dodajTowar(Towar("Banan", 4, 2));
|
||||
sklep.dodajTowar(Towar("Jabłko", 5, 3));
|
||||
sklep.dodajTowar(Towar("Ziemniak", 10, 15));
|
||||
sklep.wypiszWszystkie();
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "=== 2. Modyfikowany stan sklepu ===" << std::endl;
|
||||
|
||||
Towar *znalezionyTowar = sklep.znajdzTowar("Marchewka");
|
||||
znalezionyTowar->zmienCene(4);
|
||||
sklep.wypiszWszystkie();
|
||||
Towar *znalezionyTowar2 = sklep.znajdzTowar("Banan");
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "=== 3. Dodajemy marchewkę z bananem ===" << std::endl;
|
||||
|
||||
Towar suma_towarow = *znalezionyTowar + *znalezionyTowar2;
|
||||
suma_towarow.wypisz();
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "=== 4. Wypisujemy wszystkie towary ===" << std::endl;
|
||||
|
||||
sklep.wypiszWszystkie();
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "=== 5. Wypisujemy łączną wartość sklepu ===" << std::endl;
|
||||
|
||||
std::cout << "Wartość: " << sklep.obliczWartoscSklepu() << std::endl;
|
||||
|
||||
std::cout << std::endl;
|
||||
std::cout << "=== 6. Wypisujemy łączną ilość sklepów ===" << std::endl;
|
||||
|
||||
std::cout << "Ilość: " << sklep.ileSklepow() << std::endl;
|
||||
}
|
||||
@@ -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