С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.06.2025
Сообщений: 13

«Система управления библиотекой»

27.09.2025, 06:57. Показов 780. Ответов 1

Студворк — интернет-сервис помощи студентам
Задание: «Система управления библиотекой»
# Описание
# Необходимо смоделировать простую систему учёта книг в библиотеке
# с использованием классов и наследования.
# Требования:
# 1. Создайте базовый класс Item, который будет описывать общий
# объект в библиотеке.
# ◦ Атрибуты:
# ▪ title (название)
# ▪ year (год издания)
# ◦ Метод __str__() для красивого вывода информации.
# 2. Создайте класс-наследник Book, расширяющий
# функциональность:
# ◦ Дополнительные атрибуты:
# ▪ author (автор)
# ▪ pages (количество страниц)
# ◦ Переопределите метод __str__(), чтобы он включал все
# атрибуты.
# 3. Создайте ещё один класс-наследник Magazine:
# ◦ Дополнительные атрибуты:
# ▪ issue (номер выпуска)
# ▪ publisher (издательство)
# ◦ Переопределите метод __str__().
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Item:
    def __init__(self, title, year):
        self.title = title
        self.year = year
 
    def __str__(self):
        return f"Книга(Название={self.title}, Год издания={self.year})"
    def title(self):
        print(f'Успех или успеть')
    def year(self):
        print('2017')
class Book(Item):
    def __init__(self, autor_B, pages_B, title_B, year_B):
        super().__init__(autor_B,pages_B)
        self.autor = autor_B
        self.pages = pages_B
        self.title = title_B
        self.year = year_B
    def __str__(self):
        return f"Книга(Название={self.title}, Год издания={self.year}), Автор={self.autor}, Количество страниц={self.pages}"
 
class Magazine(Book):
    def __init__(self, issue,publisher):
        super().__init__(issue,publisher)
        self.issue = issue
        self.publisher = publisher
    def __str__(self):
        books= f"Книга(Название={self.title}, Год издания={self.year}), Автор={self.autor}, Количество страниц={self.pages}, Номер выпуска={self.issue}, Издательство={self.publisher}"
book = Book ( 'Сергей',  25, 'Успех или успеть', 2017)
print(book.title)
print(book.year)
print(book.autor)
print(book.pages)
не знаю куда дальше двигаться подскажите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2025, 06:57
Ответы с готовыми решениями:

Банковская система управления
Доброго времени суток! Очень нужна помощь по задаче! Спасибо! Некоторый банк хочет внедрить...

Задача - Банковская система управления
Необходимо реализовать такую систему. Изначально у банка один клиент, на него должен быть открыт...

Работа с библиотекой Crypto. Хеш-значения
Вот такое задание: Дан текстовый файл, размер которого 1Мб. Сформировать файл, содержащий...

1
 Аватар для andrey_f
883 / 536 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
30.09.2025, 10:50
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class Library:
    def __init__(self, name):
        self.name = name
        self.items = []
    
    def add_item(self, item):
        """Добавить элемент в библиотеку"""
        self.items.append(item)
        print(f"Добавлено: {item.title}")
    
    def remove_item(self, title):
        """Удалить элемент по названию"""
        for item in self.items:
            if item.title.lower() == title.lower():
                self.items.remove(item)
                print(f"Удалено: {item.title}")
                return
        print(f"Элемент '{title}' не найден")
    
    def find_by_title(self, title):
        """Найти элемент по названию"""
        return [item for item in self.items if title.lower() in item.title.lower()]
    
    def find_by_author(self, author):
        """Найти книги по автору"""
        return [item for item in self.items if isinstance(item, Book) and author.lower() in item.author.lower()]
    
    def display_all(self):
        """Показать все элементы библиотеки"""
        print(f"\n=== Библиотека '{self.name}' ===")
        if not self.items:
            print("Библиотека пуста")
            return
        
        for i, item in enumerate(self.items, 1):
            print(f"{i}. {item}")
    
    def get_statistics(self):
        """Получить статистику библиотеки"""
        books = [item for item in self.items if isinstance(item, Book)]
        magazines = [item for item in self.items if isinstance(item, Magazine)]
        
        print(f"\n=== Статистика библиотеки '{self.name}' ===")
        print(f"Всего элементов: {len(self.items)}")
        print(f"Книг: {len(books)}")
        print(f"Журналов: {len(magazines)}")
 
# Демонстрация работы расширенной системы
if __name__ == "__main__":
    # Создаем библиотеку
    library = Library("Главная библиотека")
    
    # Создаем элементы
    book1 = Book("Успех или успеть", 2017, "Сергей", 250)
    book2 = Book("Мастер и Маргарита", 1967, "Михаил Булгаков", 384)
    book3 = Book("Преступление и наказание", 1866, "Фёдор Достоевский", 512)
    
    magazine1 = Magazine("Наука и жизнь", 2023, 5, "Научное издательство")
    magazine2 = Magazine("Forbes", 2024, 3, "Forbes Media")
    
    # Добавляем элементы в библиотеку
    library.add_item(book1)
    library.add_item(book2)
    library.add_item(book3)
    library.add_item(magazine1)
    library.add_item(magazine2)
    
    # Работа с библиотекой
    library.display_all()
    library.get_statistics()
    
    # Поиск элементов
    print("\n=== Поиск по названию 'успех' ===")
    found_items = library.find_by_title("успех")
    for item in found_items:
        print(f"Найдено: {item}")
    
    print("\n=== Поиск книг автора 'Достоевский' ===")
    found_books = library.find_by_author("Достоевский")
    for book in found_books:
        print(f"Найдено: {book}")
    
    # Удаление элемента
    print("\n=== Удаление журнала ===")
    library.remove_item("Forbes")
    library.display_all()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2025, 10:50
Помогаю со студенческими работами здесь

Работа с библиотекой urllib
Здравствуйте. Пытаюсь выполнить команду f = urllib.request.urlopen('http://www.python.org/'). Но...

Работа с библиотекой poplib для получения почты - Как правильно декодировать результат
Добрый день. Пытаюсь считать почту с через poplib: # -*- coding: utf-8 -*- import email, poplib...

Подключение и работа с библиотекой с github.com
Возникла у меня прикладная задача - управлять хабом универсального пульта (по сути ИК-передатчиком)...

Непонятная ошибка при работе с библиотекой requests
Привет. Запускаю такой скрипт: import requests ...

Pefile работа с библиотекой
Привет, подскажите пожалуйста где найти информацию про эту библиотеку и я точно не могу понять на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru