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

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

27.09.2025, 06:57. Показов 851. Ответов 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
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
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
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru