设计一个抽象类,编写一个程序实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售记录良好(图书每月销售500本以上,杂志每月销售2500本以上)的图书和杂志名称显示出来。
时间: 2024-02-20 15:57:13 浏览: 72
图书销售管理系统设计与实现
好的,下面是一个抽象类 `Publication` 的设计:
```python
from abc import ABC, abstractmethod
class Publication(ABC):
def __init__(self, name, sales):
self.name = name
self.sales = sales
@abstractmethod
def is_popular(self):
pass
```
然后我们可以创建两个子类 `Book` 和 `Magazine`,它们分别继承自 `Publication` 类,并实现 `is_popular` 方法:
```python
class Book(Publication):
def __init__(self, name, sales):
super().__init__(name, sales)
def is_popular(self):
return self.sales >= 500
class Magazine(Publication):
def __init__(self, name, sales):
super().__init__(name, sales)
def is_popular(self):
return self.sales >= 2500
```
最后,我们可以编写一个程序来输入销售记录,并显示出销售良好的图书和杂志名称:
```python
books = []
magazines = []
while True:
name = input("请输入书籍/杂志名称:")
if name == "":
break
sales = int(input("请输入该书籍/杂志的月销售量:"))
if name.startswith("书"):
books.append(Book(name, sales))
elif name.startswith("杂志"):
magazines.append(Magazine(name, sales))
popular_books = [book.name for book in books if book.is_popular()]
popular_magazines = [magazine.name for magazine in magazines if magazine.is_popular()]
print("销售良好的书籍有:", popular_books)
print("销售良好的杂志有:", popular_magazines)
```
这个程序会不断要求输入书籍/杂志名称和月销售量,当输入空字符串时结束输入。最后会输出销售良好的图书和杂志名称。
阅读全文