Предмет: Информатика, автор: progor

Помогите пожалуйста с задачами на пайтон

2. Создайте базовый класс Shape для рисования плоских фигур. Определите методы:
■ Show() — вывод на экран информации о фигуре;
■ Save() — сохранение фигуры в файл;
■ Load() — считывание фигуры из файла
Определите производные классы:
■ Square — квадрат, который характеризуется координатами левого верхнего угла и длиной стороны;
■ Rectangle — прямоугольник с заданными координатами верхнего левого угла и размерами;
■ Circle — окружность с заданными координатами центра и радиусом;
Создайте список фигур, сохраните фигуры в файл.


3. Создать класс Flat (квартира). Реализовать перегруженные операторы:
■ Проверка на равенство площадей квартир (операция ==);
■ Проверка на неравенство площадей квартир (операция !=);
■ Сравнение двух квартир по цене (операции > < <= >=).

4. Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине заданной страны. С помощью механизма наследования, реализуйте класс ForeignPassport (загран.паспорт) производный от Passport. Напомним, что заграничный паспорт содержит помимо паспортных данных, также данные о визах, номер заграничного паспорта(то есть нужно создать новый конструктор)

5. Создать базовый класс Employer (служащий) с функцией Print(). Она должна выводить информацию о служащем. В случае базового класса это может быть строка с надписью This is Employer class. Создайте от него три производных класса: President, Manager, Worker. Переопределите функцию Print() для вывода информации, соответствующей каждому типу служащего

Ответы

Автор ответа: mixail0809
1

2)

import pickle

class Shape:

def __init__(self):

self.shape_type = ""

def Show(self):

pass

def Save(self, filename):

with open(filename, "wb") as f:

pickle.dump(self, f)

@staticmethod

def Load(filename):

with open(filename, "rb") as f:

return pickle.load(f)

class Square(Shape):

def __init__(self, x, y, side_length):

super().__init__()

self.x = x

self.y = y

self.side_length = side_length

self.shape_type = "square"

def Show(self):

print(f"Square: x={self.x}, y={self.y}, side_length={self.side_length}")

class Rectangle(Shape):

def __init__(self, x, y, width, height):

super().__init__()

self.x = x

self.y = y

self.width = width

self.height = height

self.shape_type = "rectangle"

def Show(self):

print(f"Rectangle: x={self.x}, y={self.y}, width={self.width}, height={self.height}")

class Circle(Shape):

def __init__(self, x, y, radius):

super().__init__()

self.x = x

self.y = y

self.radius = radius

self.shape_type = "circle"

def Show(self):

print(f"Circle: x={self.x}, y={self.y}, radius={self.radius}")

shapes = [Square(10, 10, 20), Rectangle(30, 30, 40, 50), Circle(60, 60, 30)]

for shape in shapes:

shape.Show()

shape.Save(f"{shape.shape_type}.pickle")

loaded_shapes = []

for shape_type in ["square", "rectangle", "circle"]:

loaded_shapes.append(Shape.Load(f"{shape_type}.pickle"))

for shape in loaded_shapes:

shape.Show()

3)

class Flat:

def __init__(self, area, price):

self.area = area

self.price = price

def __eq__(self, other):

return self.area == other.area

def __ne__(self, other):

return self.area != other.area

def __lt__(self, other):

return self.price < other.price

def __gt__(self, other):

return self.price > other.price

def __le__(self, other):

return self.price <= other.price

def __ge__(self, other):

return self.price >= other.price

flat1 = Flat(100, 100000)

flat2 = Flat(80, 80000)

flat3 = Flat(100, 120000)

print(f"flat1 == flat2: {flat1 == flat2}")

print(f"flat1 != flat2: {flat1 != flat2}")

print(f"flat1 < flat2: {flat1 < flat2}")

print(f"flat1 > flat2: {flat1 > flat2}")

print(f"flat1 <= flat2: {flat1 <= flat2}")

print(f"flat1 >= flat2: {flat1 >= flat2}")

print(f"flat1 == flat3: {flat1 == flat3}")

print(f"flat1 != flat3: {flat1 != flat3}")

print(f"flat1 < flat3: {flat1 < flat3}")

print(f"flat1 > flat3: {flat1 > flat3}")

print(f"flat1 <= flat3: {flat1 <= flat3}")

print(f"flat1 >= flat3: {flat1 >= flat3}")

4)

class Passport:

def __init__(self, country, name, surname, birth_date):

self.country = country

self.name = name

self.surname = surname

self.birth_date = birth_date

def Print(self):

print(f"Passport info: country={self.country}, name={self.name}, surname={self.surname}, birth_date={self.birth_date}")

class ForeignPassport(Passport):

def __init__(self, country, name, surname, birth_date, passport_number, visas):

super().__init__(country, name, surname, birth_date)

self.passport_number = passport_number

self.visas = visas

def Print(self):

print(f"Foreign passport info: country={self.country}, name={self.name}, surname={self.surname}, birth_date={self.birth_date}, passport_number={self.passport_number}, visas={self.visas}")

passport1 = Passport("USA", "John", "Doe", "01.01.1990")

passport1.Print()

passport2 = ForeignPassport("USA", "Jane", "Doe", "02.02.1995", "123456789", ["UK", "France"])

passport2.Print()

5)

class Employer:

def Print(self):

print("This is Employer class.")

class President(Employer):

def Print(self):

print("This is President class.")

class Manager(Employer):

def Print(self):

print("This is Manager class.")

class Worker(Employer):

def Print(self):

print("This is Worker class.")

employer = Employer()

employer.Print()

president = President()

president.Print()

manager = Manager()

manager.Print()

worker = Worker()

worker.Print()

Похожие вопросы
Предмет: Геометрия, автор: kovalenkokarolina987
Предмет: Английский язык, автор: pgrigina