用Python实现一个图书管理系统(附带源码)

这篇具有很好参考价值的文章主要介绍了用Python实现一个图书管理系统(附带源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、题目信息

二、分析

三、主函数

四、总结


一、题目信息

实现一个图书管理系统,要求有学生信息管理、图书信息管理和图书借阅管理三大功能。

二、分析

创建一个LMS类

class LMS():
    def __init__(self, Lname):
        self.Lname = Lname
        self.Student = []
        self.Books = {}
        self.BowBooks = {}
        print(Lname, '开馆了')

1.学生信息管理:具有添加学生和删除学生两个功能,并将学生存在Student列表中。在删除学生时,如果学生还有未归还书籍则无法删除。

# 学生信息管理
def AddStudent(self, Sname):
    if Sname in self.Student:
        print('学生已存在')
    else:
        self.Student.append(Sname)
        print('学生', Sname, '已添加成功')

def DelStudent(self, Sname):
    if Sname in self.BowBooks.keys():
        print('该学生还未归在本馆借阅的图书!')
        return
    if Sname not in self.Student:
        print('学生不存在!')
    else:
        self.Student.remove(Sname)
        print('学生', Sname, '已删除成功')

2.图书信息管理:具有添加图书和删除图书两个功能,并将图书存在Books字典中。添加和删除图书时都需要输入书名和书的数量。

# 图书信息管理
def AddBook(self, Bname, num=1):
    num = int(num)
    if Bname in self.Books.keys():
        self.Books[Bname] += num
    else:
        self.Books[Bname] = num
    print('已成功添加', num, '本', Bname)

def DelBook(self, Bname, num):
    num = int(num)
    if Bname in self.Books.keys():
        if self.Books[Bname] <= num or num == -1:
            self.Books.pop(Bname)
            print('图书', Bname, '已删除成功')
        else:
            self.Books[Bname] -= num
            print('已成功删除', num, '本', Bname)
            print('图书', Bname, '现有库存', self.Books[Bname], '本')
    else:
        print('图书', Bname, '不存在')

3.图书借阅管理:具有借阅图书和归还图书两个功能,并将借阅人、借阅图书、借阅数量都存在BowBooks字典中。借书时,学生输入自己的姓名、所借书名和借书数量,然后系统会检查图书馆中是否记录了这个学生,如果系统中没有这个学生,那么该学生就不能借书。学生结束成功后,系统会将学生记录到BowBooks字典中,当学生还书后会自动删除。

# 图书借阅管理
def BowBook(self, Sname, Bname, num):
    num = int(num)
    if Sname not in self.Student:
        print('学生未添加')
        return
    if Bname in self.Books.keys():
        if self.Books[Bname] < num:
            print('库存不足!')
        else:
            self.Books[Bname] -= num
            if Sname in self.BowBooks.keys():
                if Bname in self.BowBooks[Sname].keys():
                    self.BowBooks[Sname][Bname] += num
                else:
                    self.BowBooks[Sname][Bname] = num
            else:
                self.BowBooks[Sname] = {
                    Bname: num
                }
            print(Sname, '已成功借出', num, '本', Bname)
            if self.Books[Bname] == 0:
                self.Books.pop(Bname)
                print('图书', Bname, '已全部借出')
            else:
                print('图书', Bname, '现有库存', self.Books[Bname], '本')
    else:
        print('图书', Bname, '不存在')

def GiveBook(self, Sname, Bname, num):
    num = int(num)
    if Sname not in self.BowBooks.keys():
        print('您未在本图书馆借过书')
        return
    if Bname in self.BowBooks[Sname].keys():
        if Bname in self.Books.keys():
            self.Books[Bname] += num
            print(Sname, '已成功归还', num, '本', Bname)
        else:
            self.Books[Bname] = num
            print(Sname, '已成功归还', num, '本', Bname)
        self.BowBooks[Sname][Bname] -= num
        if self.BowBooks[Sname][Bname] == 0:
            self.BowBooks[Sname].pop(Bname)
        if len(self.BowBooks[Sname]) == 0:
            self.BowBooks.pop(Sname)
    else:
        print('您没有在本图书馆借过这本书')

4.查看功能:通过Look函数使用者可以查看当前图书馆的在馆学生、图书库存和借阅人信息。

# 查看
def Look(self):

    if len(self.Student) == 0:
        print('当前没有学生在馆内。')
    else:
        print('当前在馆学生:')
        print(self.Student)
        print('共', len(self.Student), '人')
    if len(self.Books) == 0:
        print('当前没有藏书。')
    else:
        print('当前馆藏图书:')
        print(self.Books)
    if len(self.BowBooks) == 0:
        print('当前未外借图书')
    else:
        print('当前已借阅图书:')
        print(self.BowBooks)

5.错误捕获,当使用者输入不符合不正确的命令时,系统会报错,并给出相应的提示。

三、主函数

if __name__ == '__main__':
    HeNanLibrary = LMS('HeNanLibrary')
    while True:
        try:
            cont = input('请输入操作命令:')
            if cont == 'AddBook':
                Bname = input('请输入书名:')
                num = input('请输入增加的数目:')
                HeNanLibrary.AddBook(Bname, num)
            elif cont == 'DelBook':
                Bname = input('请输入想要删除的书名:')
                num = int(input('请输入删除的数目:'))
                HeNanLibrary.DelBook(Bname, num)
            elif cont == 'AddStudent':
                Sname = input('请输入学生姓名:')
                HeNanLibrary.AddStudent(Sname)
            elif cont == 'DelStudent':
                Sname = input('请输入学生姓名:')
                HeNanLibrary.DelStudent(Sname)
            elif cont == 'BowBook':
                Sname = input('请输入借书人姓名:')
                Bname = input('请输入书名:')
                num = input('请输入借书数目:')
                HeNanLibrary.BowBook(Sname, Bname, num)
            elif cont == 'GiveBook':
                Sname = input('请输入还书人姓名:')
                Bname = input('请输入书名:')
                num = input('请输入还书数目:')
                HeNanLibrary.GiveBook(Sname, Bname, num)
            elif cont == 'Look':
                HeNanLibrary.Look()
            elif cont == 'exit':
                break
            else:
                print('请输入正确的操作命令!')
        except Exception:
            print('输入错误!')

四、总结

        设计系统时采用面向对象的思想会大幅度减轻工作量。就拿图书馆系系统来说,采用面向对象的设计方法会清楚的将系统分为三个模块:学生信息管理、图书信息管理和图书借阅管理,然后再依次实现各个模块的功能。三个主要功能实现之后可以再添加一些小功能来丰富系统。比如通过添加异常捕获来提高系统的健壮性。文章来源地址https://www.toymoban.com/news/detail-511532.html

到了这里,关于用Python实现一个图书管理系统(附带源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何用Java实现一个简易的图书管理系统

    目录 确立对象 确立这些对象的基本信息和功能 书 书架 管理员和普通用户 各对象之间进行交互 既然是Java实现,那么就应该从面向对象的思想入手。首先需要确立有哪些对象,这些对象的功能又是什么,然后通过这些对象的交互实现这样一个建议的图书管理系统。 要实现图

    2024年02月04日
    浏览(76)
  • 使用eclipse创建一个图书管理系统(2)---------逻辑的实现

    就像使用C语言写代码一样。比如要用 ​​​​​​ C语言写一个小游戏的代码,我们的逻辑实现是在哪里实现的啊?是不是在一个test.c源文件里面啊?没错,就是的!在之前的文章里,我说过我定义的Main函数就像C语言里的test.c文件一样!所以,为了不打自己的脸。那我便在

    2024年02月02日
    浏览(24)
  • Java实现一个简单的图书管理系统(内有源码)

    哈喽哈喽大家好啊,之前作者也是讲了Java不少的知识点了,为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性,就让我们完成一个图书管理系统的小项目吧。 项目简介: 通过管理员和普通用户的两种操作界面,利用其中的方法以及对象之间的交互,来实现对

    2024年02月11日
    浏览(25)
  • 用python实现简易图书管理系统

    很多图书馆都有自己的图书管理系统,它主要担负的功能有 借书和还书 ,以及图书管理员对图书的操作等。 用户登录/注册—借书/还书/查看图书----(管理员)添加、修改图书信息 txt文件 首先,在任意位置创建一个文件夹,创建以下几个txt文件: bookISDN,ISDN.txt :存储书籍的

    2024年02月08日
    浏览(37)
  • python+tkinter实现图书管理系统(首发)

    2023年08月13日
    浏览(36)
  • 将Java与数据库连接起来(配置idea),实现一个简单的图书管理系统

    目录 1.通过connector连接Java和Mysql数据库 (1)首先配置idea (2)如何把java和mysql连接起来 1.简单连接 2.认识PrepareStatement 2.实现简单的图书管理系统 (1)创建数据库jdbc,并且创建出book表  (2)在idea中书写代码将mysql与java连接,实现基本的增删改查 1.JdbcUtiles类,一个使用jdbc的工具

    2024年02月11日
    浏览(33)
  • Python 基础 (十)Python实现简单的图书管理系统

    Python 基础 (一)Python基本认识与环境搭建 Python 基础 (一)Python基本认识与环境搭建 Python 基础 (二)Python变量与基本数据类型 Python 基础 (二)Python变量与基本数据类型 Python 基础 (三)Python基本语句与基本运算 Python 基础 (三)Python基本语句与基本运算 Python 基础 (四

    2024年02月04日
    浏览(28)
  • 【图书管理系统】Servlet+JSP+MySql 实现的一个前后端 javaweb项目(内附源码)

    源码分享在文末! 学习完Javaweb的知识后做了个项目练练手,我选择了经典而且比较简单的图书管理系统。 最近有时间,整理了一下,分享给大家,希望能够帮到你! 基于B/S结构 前端: HTML+CSS+JS +JQuery 后端: Servlet+JSP+MySql 操作系统: win8/win10 JDK: 8.0 开发工具: Intellij IDEA2020.1 旗舰

    2024年02月06日
    浏览(39)
  • 基于Python的图书管理系统的设计与实现

    点我完整下载:基于Python的图书管理系统的设计与实现.docx 基于Python的图书管理系统的设计与实现 Design and Implementation of a Book Management System based on Python 目录 2 摘要 3 3 第一章 引言 4 1.1 研究背景 4 1.2 研究目的 5 1.3 研究意义 6 1.4 论文结构 7 第二章 相关技术与理论介绍

    2024年02月04日
    浏览(34)
  • 基于ssm+vue.js+uniapp小程序的图书管理系统附带文章和源代码部署视频讲解等

    🌞 博主介绍 :✌CSDN特邀作者、985计算机专业毕业、某互联网大厂高级全栈开发程序员、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导、面试辅导、简

    2024年04月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包