2301_77223822 2023-12-31 07:49 采纳率: 0%
浏览 10

用Python面向对象编写一个简单的图书管理系统 有朋友知道怎么写吗

题目1:简单的图书借阅系统
设计一个简单的图书借阅系统,具备以下基本功能:
1、图书信息包括书名、作者、出版日期、ISBN号等。
2、用户可以添加新的图书信息。
3、用户可以查看所有图书的信息。
4、用户可以按照书名、作者、出版日期等排序查看图书信息。
5、用户可以根据书名、作者等信息搜索图书信息。
6、用户可以借阅图书,并记录借阅历史。
7、用户可以归还图书,并更新借阅历史。

请注意以下几点:
· 使用类来组织图书信息,例如创建一个Book类。
· 使用列表或其他适当的数据结构来存储图书信息和借阅历史。
· 考虑如何处理用户输入错误或无效的情况。
· 尽量使用函数来组织代码,例如分别创建添加、查看、排序、搜索、借阅、归还图书信息的函数。

  • 写回答

2条回答 默认 最新

  • 梦幻精灵_cq 2023-12-31 07:52
    关注
    • 您这是个系统哦,不太“简单”啊,主要是费手。😋

    • 请ai给您写一个,看看合不合用

      img


      小智正码码中……

    • 小智已完工😋

      img


      您自己调试修正一下,看看ai小智能有几分“智色”😜😜

    ai小智书写的python代码

    # 定义图书类
    class Book:
        def __init__(self, title, author, isbn, price):
            self.title = title
            self.author = author
            self.isbn = isbn
            self.price = price
    
        def __str__(self):
            return f"书名:《{self.title}》,作者:{self.author},ISBN:{self.isbn},价格:{self.price}元。"
    
    # 定义图书管理类
    class Library:
        def __init__(self):
            self.books = []
    
        def add_book(self, book):
            self.books.append(book)
            print("图书已添加。")
    
        def remove_book(self, isbn):
            for book in self.books:
                if book.isbn == isbn:
                    self.books.remove(book)
                    print("图书已删除。")
                    return
            print("未找到指定ISBN的图书。")
    
        def find_book(self, isbn):
            for book in self.books:
                if book.isbn == isbn:
                    return book
            return None
    
        def list_books(self):
            for book in self.books:
                print(book)
    
    # 实例化图书管理对象
    library = Library()
    
    # 添加几本图书
    library.add_book(Book("Python编程", "作者A", "123456", 59))
    library.add_book(Book("Web开发", "作者B", "654321", 89))
    library.add_book(Book("数据分析", "作者C", "789012", 129))
    
    # 列出所有图书
    library.list_books()
    
    # 查找并打印指定ISBN的图书
    book = library.find_book("123456")
    if book:
        print(book)
    
    # 删除指定ISBN的图书
    library.remove_book("654321")
    library.list_books()
    
    
    • 仅仅57行,应该如您所言,是简单而粗糙的。😉

      img

    • 基本还行,可以正常run

      img


    • 我也练习过几个简单的“系统”,并整理成学习笔记了。要把“系统”做成想要的样子,还是有些费劲的,要对“算法”和代码不断修磨,有可能几易数据结构,最终才可以做成“当时认为最美的样子”。😋😋

    我的4个“系统练习”:

    1、聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
    ( 3456 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124539589
    点赞:4   踩 :0  收藏:2  打赏:0  评论:3
    本篇博文笔记于 2022-05-02 13:02:39 首发,最晚于 2022-05-21 06:10:42 修改。

    2、学生信息记录管理系统(python)
    ( 876 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120588365
    点赞:0   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记

    3、单词记忆系统一:菜单循环和菜单确认(Python 自定义类、自定义模块的相对路径import)
    ( 660 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/125364307
    点赞:4   踩 :0  收藏:3  打赏:0  评论:4
    本篇博文笔记于 2022-06-19 23:59:07 首发,最晚于 2022-06-23 00:53:56 修改。

    这还是一个半成品,已经废那儿了😪
    单词记忆系统二:音标字符输入(re从字符串中提取音标字符;依序打印音标字符;输入对应序号;替换序号。-> 完成“音标输入”)
    ( 629 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/126293898
    点赞:5   踩 :0  收藏:2  打赏:0  评论:4
    本篇博文笔记于 2022-08-11 22:17:56 首发,最晚于 2022-08-24 09:12:53 修改。

    单词记忆系统三:优化音标输入(允许键盘字符直接输入和音标序号混合输入)
    ( 611 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/126373690
    点赞:9   踩 :0  收藏:4  打赏:0  评论:9
    本篇博文笔记于 2022-08-16 21:24:25 首发,最晚于 2022-10-02 06:57:58 修改。

    4、名片管理系统(dict 字典 and def 自定义函数练习)
    ( 492 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/119245296
    点赞:1   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2021-07-30 13:06:20 发布。


    展开全部

    评论 编辑记录
    虫虫仙人 2023-12-31 15:54

    哈哈哈哈,老哥也偷懒了啊

    1
    回复
    梦幻精灵_cq 回复 虫虫仙人 2023-12-31 15:59

    简单的代码推给ai😋😋

    回复
    梦幻精灵_cq 回复 梦幻精灵_cq 2023-12-31 16:00
    回复
    展开全部4条评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-31 10:29
    关注

    【以下回答由 GPT 生成】

    图书管理系统

    介绍

    这是一个用Python面向对象编写的简单图书管理系统。它可以添加图书信息、展示图书信息、排序图书信息、搜索图书信息、借阅图书和归还图书。

    解决方案

    1. 创建Book类

    首先,我们需要创建一个Book类,用于表示图书信息。该类应该包括以下属性:书名、作者、出版日期和ISBN号。我们还可以添加其他属性,如借阅状态。

    class Book:
        def __init__(self, title, author, publication_date, isbn):
            self.title = title
            self.author = author
            self.publication_date = publication_date
            self.isbn = isbn
            self.borrowed = False  # 添加借阅状态,默认为False
    
        def __str__(self):
            return f"Title: {self.title}, Author: {self.author}, Publication Date: {self.publication_date}, ISBN: {self.isbn}"
    

    2. 创建Library类

    接下来,我们创建一个Library类,用于管理图书信息。该类应该包括以下方法:

    a. 初始化方法

    在初始化方法中,我们创建一个空的图书列表books来存储所有的图书信息。

    class Library:
        def __init__(self):
            self.books = []
    

    b. 添加图书信息方法

    该方法将接受用户输入的图书信息,并创建一个新的Book对象来表示该图书。然后,该Book对象将添加到图书列表中。

        def add_book(self, title, author, publication_date, isbn):
            book = Book(title, author, publication_date, isbn)
            self.books.append(book)
    

    c. 展示图书信息方法

    该方法将遍历图书列表,并打印每本图书的信息。

        def show_books(self):
            for book in self.books:
                print(book)
    

    d. 排序图书信息方法

    该方法将接受一个属性名参数(sort_key),按照指定的属性对图书列表进行排序,并打印排序后的图书信息。

        def sort_books(self, sort_key):
            sorted_books = sorted(self.books, key=lambda book: getattr(book, sort_key))
            for book in sorted_books:
                print(book)
    

    e. 搜索图书信息方法

    该方法将接受一个搜索关键字参数(keyword),遍历图书列表,并打印包含该关键字的图书信息。

        def search_books(self, keyword):
            for book in self.books:
                if keyword in book.title or keyword in book.author:
                    print(book)
    

    f. 借阅图书方法

    该方法将接受一个书名参数(title),找到该书并将其借阅状态设置为True。

        def borrow_book(self, title):
            for book in self.books:
                if book.title == title and not book.borrowed:
                    book.borrowed = True
                    print(f"{book.title} has been successfully borrowed.")
                    return
            print(f"Cannot borrow {title}.")
    

    g. 归还图书方法

    该方法将接受一个书名参数(title),找到该书并将其借阅状态设置为False。

        def return_book(self, title):
            for book in self.books:
                if book.title == title and book.borrowed:
                    book.borrowed = False
                    print(f"{book.title} has been successfully returned.")
                    return
            print(f"Cannot return {title}.")
    

    3. 编写主要函数

    现在,我们可以编写一些帮助用户与图书管理系统交互的函数,例如添加图书、展示图书、排序图书、搜索图书、借阅图书和归还图书。

    def add_book(library):
        title = input("Enter the title: ")
        author = input("Enter the author: ")
        publication_date = input("Enter the publication date: ")
        isbn = int(input("Enter the ISBN: "))
        library.add_book(title, author, publication_date, isbn)
        print("Book added successfully.")
    
    def show_books(library):
        library.show_books()
    
    def sort_books(library):
        sort_key = input("Enter the sort key ('title', 'author', 'publication_date' or 'isbn'): ")
        library.sort_books(sort_key)
    
    def search_books(library):
        keyword = input("Enter the keyword: ")
        library.search_books(keyword)
    
    def borrow_book(library):
        title = input("Enter the title: ")
        library.borrow_book(title)
    
    def return_book(library):
        title = input("Enter the title: ")
        library.return_book(title)
    
    def main():
        library = Library()
        while True:
            print("""
            1. Add Book
            2. Show Books
            3. Sort Books
            4. Search Books
            5. Borrow Book
            6. Return Book
            7. Quit
            """)
            choice = input("Enter your choice: ")
            if choice == "1":
                add_book(library)
            elif choice == "2":
                show_books(library)
            elif choice == "3":
                sort_books(library)
            elif choice == "4":
                search_books(library)
            elif choice == "5":
                borrow_book(library)
            elif choice == "6":
                return_book(library)
            elif choice == "7":
                break
            else:
                print("Invalid choice.")
    
    if __name__ == "__main__":
        main()
    

    总结

    通过使用面向对象编程和函数式编程,我们成功地创建了一个简单的图书管理系统。用户可以通过菜单选择不同的功能,并交互地添加、展示、排序、搜索、借阅和归还图书。这个系统还考虑了一些错误情况,例如当用户输入无效的选择或无法借阅/归还图书时。通过这个例子,我们可以学习如何优雅地组织代码,并使用面向对象编程思想处理复杂问题。



    【相关推荐】


    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7468711
    • 除此之外, 这篇博客: python小白自学基础知识(二)附加(人狗大战游戏)中的 根据函数和面向对象(类)的知识,概括为一个总的例子(该例子我在其他的文章中见过),作为上课的内容,老师要求实现人狗大战游戏代码编写,内容中包含:人初始化的金钱额度,金钱用于买枪,枪对狗的伤害,以及狗的血量,最后是人在多少次把狗打死(其中没有涉及到人打狗的同时,狗也在咬人,但是却定义了狗对人的伤害,有兴趣的朋友可以继续把游戏做下去) 部分也许能够解决你的问题。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

    展开全部

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部