用链表编程实现图书信息(书名,单价)管理

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函数用来获取链表中图书的数量。