①录入:从键盘输入(或从文件读入)图书(或学生)信息表的各个数据元素; ②查找:可按不同属性查找所有等于给定值的数据元素,找到并返回它们在表中的位序; ③插入:在表中第i(1=<i<=N+1)个位置插入一个新元素; ④删除:可删除表中第i(1=<i<=N)个位置上的元素; ⑤输出:依次打印表中的各个元素的值; ⑥排序:可按某属性对表中的元素进行排序。(可选)
时间: 2023-06-27 21:06:43 浏览: 133
以下是一个示例的图书信息管理程序的实现,包括录入、查找、插入、删除、输出和排序功能:
```python
class Book:
def __init__(self, name, author, publisher, year):
self.name = name
self.author = author
self.publisher = publisher
self.year = year
class BookList:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def find_books(self, key, value):
result = []
for i, book in enumerate(self.books):
if getattr(book, key) == value:
result.append(i)
return result
def insert_book(self, index, book):
self.books.insert(index, book)
def delete_book(self, index):
del self.books[index]
def print_books(self):
for book in self.books:
print(f"{book.name}, {book.author}, {book.publisher}, {book.year}")
def sort_books(self, key):
self.books.sort(key=lambda x: getattr(x, key))
# 示例程序
book_list = BookList()
while True:
print("请选择操作:")
print("1. 录入图书信息")
print("2. 查找图书信息")
print("3. 插入图书信息")
print("4. 删除图书信息")
print("5. 输出图书信息")
print("6. 排序图书信息")
print("0. 退出程序")
choice = input("请输入您的选择:")
if choice == "1":
name = input("请输入图书名称:")
author = input("请输入作者名字:")
publisher = input("请输入出版社:")
year = input("请输入出版年份:")
book = Book(name, author, publisher, year)
book_list.add_book(book)
print("已录入图书信息")
elif choice == "2":
key = input("请输入查找的属性(name/author/publisher/year):")
value = input("请输入查找的值:")
indices = book_list.find_books(key, value)
if indices:
print(f"找到了{len(indices)}本图书:")
for i in indices:
print(f"{i + 1}. {book_list.books[i].name}")
else:
print("没有找到匹配的图书")
elif choice == "3":
index = int(input("请输入插入的位置:"))
name = input("请输入图书名称:")
author = input("请输入作者名字:")
publisher = input("请输入出版社:")
year = input("请输入出版年份:")
book = Book(name, author, publisher, year)
book_list.insert_book(index - 1, book)
print("已插入图书信息")
elif choice == "4":
index = int(input("请输入删除的位置:"))
book_list.delete_book(index - 1)
print("已删除图书信息")
elif choice == "5":
print("图书信息如下:")
book_list.print_books()
elif choice == "6":
key = input("请输入排序的属性(name/author/publisher/year):")
book_list.sort_books(key)
print("已排序图书信息")
elif choice == "0":
print("谢谢使用,再见!")
break
else:
print("输入有误,请重新输入")
```
这个程序定义了两个类,`Book` 表示一本图书的信息,`BookList` 表示整个图书信息表,包括一些基本的操作方法。在主程序中,通过一个循环不断接受用户的选择,然后调用对应的方法实现相应的功能。用户可以通过键盘输入(或从文件读入)图书信息,按不同属性查找所有等于给定值的数据元素并返回它们在表中的位序,插入一个新元素,删除一个元素,依次打印表中的各个元素的值,以及按某属性对表中的元素进行排序。
阅读全文