lesson 3, exercise 1

This commit is contained in:
Alexander Zhirov 2021-06-24 16:43:37 +03:00
parent c451149748
commit 407e117689
12 changed files with 264 additions and 0 deletions

BIN
lesson_3/Debug/lesson_3 Executable file

Binary file not shown.

6
lesson_3/Debug/main.d Normal file
View File

@ -0,0 +1,6 @@
main.o: ../main.cpp ../exercise_1.hpp ../exercise_2.hpp ../exercise_3.hpp \
../exercise_4.hpp
../exercise_1.hpp:
../exercise_2.hpp:
../exercise_3.hpp:
../exercise_4.hpp:

BIN
lesson_3/Debug/main.o Normal file

Binary file not shown.

57
lesson_3/Debug/makefile Normal file
View File

@ -0,0 +1,57 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include ../makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
-include ../makefile.defs
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: lesson_3
# Tool invocations
lesson_3: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C++ Linker'
g++ -o "lesson_3" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
# Other Targets
clean:
-$(RM) $(CC_DEPS)$(C++_DEPS)$(EXECUTABLES)$(C_UPPER_DEPS)$(CXX_DEPS)$(OBJS)$(CPP_DEPS)$(C_DEPS) lesson_3
-@echo ' '
.PHONY: all clean dependents
-include ../makefile.targets

View File

@ -0,0 +1,8 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
USER_OBJS :=
LIBS :=

27
lesson_3/Debug/sources.mk Normal file
View File

@ -0,0 +1,27 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
C_UPPER_SRCS :=
CXX_SRCS :=
C++_SRCS :=
OBJ_SRCS :=
CC_SRCS :=
ASM_SRCS :=
CPP_SRCS :=
C_SRCS :=
O_SRCS :=
S_UPPER_SRCS :=
CC_DEPS :=
C++_DEPS :=
EXECUTABLES :=
C_UPPER_DEPS :=
CXX_DEPS :=
OBJS :=
CPP_DEPS :=
C_DEPS :=
# Every subdirectory with source files must be described here
SUBDIRS := \
. \

24
lesson_3/Debug/subdir.mk Normal file
View File

@ -0,0 +1,24 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
# Add inputs and outputs from these tool invocations to the build variables
CPP_SRCS += \
../main.cpp
OBJS += \
./main.o
CPP_DEPS += \
./main.d
# Each subdirectory must supply rules for building sources it contributes
%.o: ../%.cpp
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '

106
lesson_3/exercise_1.hpp Normal file
View File

@ -0,0 +1,106 @@
/*
* Для расчет площади фигур квадрат/ромб/прямоугольник/параллелограмм
* справедлива будет одна общая формула - произведение основания на высоту
*/
#ifndef EXERCISE_1_HPP_
#define EXERCISE_1_HPP_
#include <math.h>
#define PI 3.14159265358979323846
float getRadian(float degree)
{
return PI / 180 * degree;
}
class Figure
{
public:
virtual float area() = 0;
virtual ~Figure() = 0;
};
class Parallelogram : public Figure
{
private:
float m_side_a;
float m_side_b;
float m_height;
protected:
float getSideA() const
{
return m_side_a;
}
float getSideB() const
{
return m_side_b;
}
public:
Parallelogram(float side_a, float height, float side_b = 0.0)
: m_side_a(side_a), m_side_b(side_b), m_height(height) { }
float area()
{
float area = m_side_a * m_height;
std::cout << "Площадь параллелограмма равна " << area << std::endl;
return area;
}
};
class Circle : public Figure
{
};
class Rectangle : public Parallelogram
{
public:
Rectangle(float side_a, float side_b)
: Parallelogram(side_a, side_b, side_b) { }
float area()
{
float area = getSideA() * getSideB();
std::cout << "Площадь прямоугольника равна " << area << std::endl;
return area;
}
};
class Square : public Parallelogram
{
Square(float side_a, float side_b)
: Parallelogram(side_a, side_b, side_b) { }
float area()
{
float area = getSideA() * getSideB();
std::cout << "Площадь квадрата равна " << area << std::endl;
return area;
}
};
class Rhombus : public Parallelogram
{
Rhombus(float side_a, float side_b)
: Parallelogram(side_a, side_b, side_b) { }
float area()
{
float area = getSideA() * getSideB();
std::cout << "Площадь ромба равна " << area << std::endl;
return area;
}
};
#endif

8
lesson_3/exercise_2.hpp Normal file
View File

@ -0,0 +1,8 @@
#ifndef EXERCISE_2_HPP_
#define EXERCISE_2_HPP_
#endif

8
lesson_3/exercise_3.hpp Normal file
View File

@ -0,0 +1,8 @@
#ifndef EXERCISE_3_HPP_
#define EXERCISE_3_HPP_
#endif

8
lesson_3/exercise_4.hpp Normal file
View File

@ -0,0 +1,8 @@
#ifndef EXERCISE_4_HPP_
#define EXERCISE_4_HPP_
#endif

12
lesson_3/main.cpp Normal file
View File

@ -0,0 +1,12 @@
#include <iostream>
#include "exercise_1.hpp"
#include "exercise_2.hpp"
#include "exercise_3.hpp"
#include "exercise_4.hpp"
using namespace std;
int main()
{
}