initial commit
This commit is contained in:
105
C++/lesson8/ex5.cpp
Normal file
105
C++/lesson8/ex5.cpp
Normal file
@ -0,0 +1,105 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
class Character {
|
||||
public:
|
||||
std::string name;
|
||||
int level;
|
||||
int exp;
|
||||
int health;
|
||||
int attack;
|
||||
int protection;
|
||||
|
||||
Character(std::string name) {
|
||||
this->name = name;
|
||||
level = 0;
|
||||
exp = 0;
|
||||
health = 10;
|
||||
attack = 2;
|
||||
protection = 2;
|
||||
}
|
||||
|
||||
void levelUp() {
|
||||
level++;
|
||||
health += 5;
|
||||
attack++;
|
||||
protection++;
|
||||
}
|
||||
|
||||
void gainExp(int amount) {
|
||||
exp += amount;
|
||||
}
|
||||
|
||||
int getHelth() {
|
||||
return health;
|
||||
}
|
||||
|
||||
int getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
bool isAlive() {
|
||||
return health > 0;
|
||||
}
|
||||
|
||||
void attack_character(Character& target) {
|
||||
if (target.protection == 0) {
|
||||
target.health -= attack;
|
||||
std::cout << target.name << " was attacked\n";
|
||||
} else {
|
||||
target.protection--;
|
||||
std::cout << target.name << " has protection\n";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
Character vasiya("Вася");
|
||||
Character petyia("Петя");
|
||||
|
||||
vasiya.levelUp();
|
||||
vasiya.levelUp();
|
||||
vasiya.levelUp();
|
||||
|
||||
petyia.levelUp();
|
||||
petyia.levelUp();
|
||||
|
||||
vasiya.attack_character(petyia);
|
||||
vasiya.attack_character(petyia);
|
||||
|
||||
petyia.attack_character(vasiya);
|
||||
petyia.attack_character(vasiya);
|
||||
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
vasiya.attack_character(vasiya); // Вася не умный
|
||||
|
||||
if (vasiya.isAlive()) {
|
||||
std::cout << "Вася как-то выжил\n";
|
||||
} else {
|
||||
std::cout << "Вася умер\n";
|
||||
}
|
||||
|
||||
if (petyia.isAlive()) {
|
||||
std::cout << "Петя как-то выжил\n";
|
||||
} else {
|
||||
std::cout << "Петя умер\n";
|
||||
}
|
||||
}
|
162
C++/lesson8/ex7.cpp
Normal file
162
C++/lesson8/ex7.cpp
Normal file
@ -0,0 +1,162 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
class Passenger {
|
||||
std::string firstName;
|
||||
std::string lastName;
|
||||
int passportNamber;
|
||||
|
||||
public:
|
||||
Passenger() = default;
|
||||
|
||||
Passenger(std::string firstName, std::string lastName, int passportNamber) {
|
||||
this->firstName = firstName;
|
||||
this->lastName = lastName;
|
||||
this->passportNamber = passportNamber;
|
||||
}
|
||||
|
||||
void info() {
|
||||
std::cout << firstName << ", " << lastName << ", " << passportNamber << "\n";
|
||||
}
|
||||
};
|
||||
|
||||
class Plane {
|
||||
std::string model;
|
||||
int year;
|
||||
size_t seat_count;
|
||||
|
||||
public:
|
||||
Passenger* passengers;
|
||||
size_t passengerAmount;
|
||||
|
||||
Plane() = default;
|
||||
|
||||
Plane(std::string model, int year, size_t seat_count) {
|
||||
passengerAmount = 0;
|
||||
passengers = new Passenger[0];
|
||||
this->model = model;
|
||||
this->year = year;
|
||||
this->seat_count = seat_count;
|
||||
}
|
||||
|
||||
void info() {
|
||||
std::cout << model << ", " << year << ", " << seat_count << '\n';
|
||||
}
|
||||
|
||||
void PassengerInformation() {
|
||||
for (size_t i = 0; i < passengerAmount; i++) {
|
||||
passengers[i].info();
|
||||
}
|
||||
}
|
||||
|
||||
void addPassager(Passenger passenger) {
|
||||
Passenger* new_passengers = new Passenger[passengerAmount + 1];
|
||||
for (size_t i = 0; i < passengerAmount; i++) {
|
||||
new_passengers[i] = passengers[i];
|
||||
}
|
||||
new_passengers[passengerAmount] = passenger;
|
||||
delete[] passengers;
|
||||
passengers = new_passengers;
|
||||
passengerAmount++;
|
||||
}
|
||||
|
||||
void removePassenger(size_t n) {
|
||||
Passenger* new_passengers = new Passenger[passengerAmount - 1];
|
||||
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
new_passengers[i] = passengers[i];
|
||||
}
|
||||
|
||||
for (size_t j = n + 1; j < passengerAmount; j++) {
|
||||
new_passengers[j - 1] = passengers[j];
|
||||
}
|
||||
delete[] passengers;
|
||||
passengers = new_passengers;
|
||||
passengerAmount -= 1;
|
||||
}
|
||||
};
|
||||
|
||||
class FlyCompany {
|
||||
Plane* planes;
|
||||
size_t planeAmount;
|
||||
|
||||
public:
|
||||
FlyCompany() {
|
||||
planes = new Plane[0];
|
||||
planeAmount = 0;
|
||||
}
|
||||
|
||||
void addPlane(Plane plane) {
|
||||
Plane* new_planes = new Plane[planeAmount + 1];
|
||||
for (size_t i = 0; i < planeAmount; i++) {
|
||||
new_planes[i] = planes[i];
|
||||
}
|
||||
new_planes[planeAmount] = plane;
|
||||
delete[] planes;
|
||||
planes = new_planes;
|
||||
planeAmount++;
|
||||
}
|
||||
|
||||
void deletePlane(size_t n) {
|
||||
Plane* new_planes = new Plane[planeAmount - 1];
|
||||
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
new_planes[i] = planes[i];
|
||||
}
|
||||
|
||||
for (size_t j = n + 1; j < planeAmount; j++) {
|
||||
new_planes[j - 1] = planes[j];
|
||||
}
|
||||
delete[] planes;
|
||||
planes = new_planes;
|
||||
planeAmount--;
|
||||
}
|
||||
|
||||
void register_passenger(Passenger passanger, size_t plane_index) {
|
||||
planes[plane_index].addPassager(passanger);
|
||||
}
|
||||
|
||||
void unregister_passenger(size_t passenger_id, size_t plane_index) {
|
||||
planes[plane_index].removePassenger(passenger_id);
|
||||
}
|
||||
|
||||
void plane_info() {
|
||||
for (size_t i = 0; i < planeAmount; i++) {
|
||||
planes[i].info();
|
||||
}
|
||||
}
|
||||
|
||||
void passenger_info() {
|
||||
for (size_t i = 0; i < planeAmount; i++) {
|
||||
planes[i].PassengerInformation();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
FlyCompany company;
|
||||
|
||||
Plane boing("Boing", 2000, 10);
|
||||
Plane plane2("Plane2", -5, 3);
|
||||
|
||||
Passenger petiya("Петя", "Васильев", 112245326);
|
||||
Passenger pasha("Паша", "Александров", 531930186);
|
||||
Passenger vova("Вова", "Клепцов", 913573127);
|
||||
|
||||
company.addPlane(boing);
|
||||
company.addPlane(plane2);
|
||||
|
||||
company.register_passenger(petiya, 0);
|
||||
company.register_passenger(pasha, 1);
|
||||
company.register_passenger(vova, 1);
|
||||
|
||||
company.passenger_info();
|
||||
company.plane_info();
|
||||
std::cout << '\n';
|
||||
|
||||
company.deletePlane(0);
|
||||
company.unregister_passenger(0, 0);
|
||||
|
||||
company.passenger_info();
|
||||
company.plane_info();
|
||||
}
|
Reference in New Issue
Block a user