1.图书信息录入:从键盘输入n(n<10)本书的书名和单价用于构造图书链表,然后输出所有图书信息;
2.图书信息排序:按照单价从高到低的顺序进行排序后输出图书信息;
3.图书信息插入:实现新增图书信息(图书信息插入链表后,单价排序保持降序)并输出图书信息;
4.图书信息查找:实现图书按名查找并输出结果;
5.图书信息删除:实现按书名删除图书信息后输出图书信息;
6.图书信息修改:实现按书名修改图书单价后输出图书信息;
7.图书信息统计:实现统计图书数量及图书总价并输出结果;
8.图书信息浏览。
9.退出系统。
要 求:
1.使用单向链表作为图书信息的存储结构;
2.编写函数实现各模块功能;
3.在主函数中设计一个菜单,选择相关功能后按要求输入数据并调用各函数实现;
这个问题我来回答你,若有帮助,还望采纳,点击回答右侧采纳即可。
1、图书信息:结构体
2、主要考察链表操作,实现链表的增删改查和排序。
参考:http://t.csdn.cn/jSctq
这需要用到数据结构中的链表,可以看下这个博主的:
https://blog.csdn.net/weixin_53172496/article/details/119915425
实现了图书管理11项功能,包括插入删除等,代码全部有,直接运行,我看完全符合您的需求。望采纳!!!
给出主要函数的结构,其他需要您自行补充了。
图书信息录入:
void input_book_info(book_node_t *head) {
// 从键盘输入n(n<10)本书的书名和单价
// 构造图书链表
// 输出所有图书信息
}
图书信息排序:
void sort_book_info(book_node_t *head) {
// 按照单价从高到低的顺序进行排序
// 输出图书信息
}
图书信息插入:
void insert_book_info(book_node_t *head) {
// 新增图书信息
// 保持单价排序
// 输出图书信息
}
图书信息查找:
void search_book_info(book_node_t *head) {
// 按名查找
// 输出结果
}
图书信息删除:
void delete_book_info(book_node_t *head) {
// 按书名删除
// 输出图书信息
}
图书信息修改:
void modify_book_info(book_node_t *head) {
// 按书名修改单价
// 输出图书信息
}
你的思路很清晰了,可以直接写代码,如果在写代码时遇到问题,可以来交流交流
这样会不会更合适?
要使用链表编程实现图书信息管理功能,需要先创建一个链表数据结构来存储图书的信息。每个节点都应该包含图书的标题、作者、编号等信息。
下面是一个简单的链表实现:
class BookNode:
def __init__(self, title, author, book_id):
self.title = title
self.author = author
self.book_id = book_id
self.next = None
class BookList:
def __init__(self):
self.head = None
def add_book(self, title, author, book_id):
new_book = BookNode(title, author, book_id)
new_book.next = self.head
self.head = new_book
def find_book(self, book_id):
current = self.head
while current is not None:
if current.book_id == book_id:
return current
current = current.next
return None
def delete_book(self, book_id):
current = self.head
if current.book_id == book_id:
self.head = current.next
return
while current.next is not None:
if current.next.book_id == book_id:
current.next = current.next.next
return
current = current.next
可以在上面的链表实现中增加修改图书信息和统计图书数量的功能,代码如下:
class BookList:
def __init__(self):
self.head = None
self.count = 0 # 用来统计图书数量
def add_book(self, title, author, book_id):
new_book = BookNode(title, author, book_id)
new_book.next = self.head
self.head = new_book
self.count += 1 # 添加图书时统计数量
def find_book(self, book_id):
current = self.head
while current is not None:
if current.book_id == book_id:
return current
current = current.next
return None
def delete_book(self, book_id):
current = self.head
if current.book_id == book_id:
self.head = current.next
self.count -= 1 # 删除图书时统计数量
return
while current.next is not None:
if current.next.book_id == book_id:
current.next = current.next.next
self.count -= 1 # 删除图书时统计数量
return
current = current.next
def update_book(self, book_id, new_title=None, new_author=None):
book = self.find_book(book_id)
if book is None:
return None
if new_title is not None:
book.title = new_title
if new_author is not None:
book.author = new_author
return book
def get_book_count(self):
return self.count
这样就可以在链表中增加修改图书信息和统计图书数量的功能了。
其中,update_book函数用来修改图书信息,可以修改标题或作者,如果没有指定新的标题或作者,则原来的值不变;get_book_count函数用来获取链表中图书的数量。