亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現(xiàn)圖書借閱管理系統(tǒng)

 更新時間:2022年03月10日 08:54:23   作者:Mr_fengzi  
這篇文章主要為大家詳細介紹了Python實現(xiàn)圖書借閱管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本篇文章將編寫一個python簡易的圖書借閱管理系統(tǒng),可以實現(xiàn)一些基本的功能。

圖書借閱管理系統(tǒng)需求分析:

1. 書籍的屬性信息:書名, 作者, 借閱狀態(tài)(借出數(shù)量, 未借的數(shù)量)
2. 書籍借閱需要的操作:

1). 錄入書籍信息;
2). 借閱書籍信息;
3). 歸還書籍;
4). 查詢書籍信息;
5). 退出

主要思路:

用戶進入系統(tǒng)后,可以通過鍵入數(shù)字1~5去實現(xiàn)相對應的功能,并且可以重復操作,直到輸入數(shù)字5之后退出系統(tǒng)。

先創(chuàng)建一個空的列表,作為一個存放書籍信息的容器,執(zhí)行程序時先進行初始化,自動添加幾個已有的信息到列表中;

當輸入數(shù)字1后,要求用戶輸入要錄入的書籍名稱,若書籍已存在列表中,則報錯,若書籍不在列表中,則進一步要求用戶輸入相應的書籍信息,并把它們存放到列表中去;

當輸入數(shù)字2后,要求用戶輸入要借閱的書籍名稱,之后判斷該書籍的庫存數(shù)量是否為0,若庫存為0,則返回庫存不足的信息,否則,借閱成功,庫存數(shù)減1,借出數(shù)加1;

當輸入數(shù)字3后,要求用戶輸入要歸還的書籍名稱,并且?guī)齑鏀?shù)量加1,借出數(shù)量減1;

當輸入數(shù)字4后,可以給用戶以表格的形式返回所有的書籍信息;

當輸入數(shù)字5后,退出系統(tǒng)。

在寫圖書借閱管理系統(tǒng)之前,需要寫一個改變字體的顏色的代碼,在借閱系統(tǒng)中出現(xiàn)不同的情況時,會有相應的顏色變化。

下面簡單介紹一下Python中怎樣改變輸出字體顏色:

實現(xiàn)過程:

終端的字符顏色是用轉(zhuǎn)義序列控制的,是文本模式下的系統(tǒng)顯示功能,和具體的語言無關(guān)。

轉(zhuǎn)義序列是以ESC開頭,即用\033來完成(ESC的ASCII碼用十進制表示是27,用八進制表示就是033)。

書寫格式:

開頭部分:\033[顯示方式;前景色;背景色m + 結(jié)尾部分:\033[0m

注意:

開頭部分的三個參數(shù):顯示方式,前景色,背景色是可選參數(shù),可以只寫其中的某一個;

另外由于表示三個參數(shù)不同含義的數(shù)值都是唯一的沒有重復的,所以三個參數(shù)的書寫先后順序沒有固定要求,系統(tǒng)都能識別;但是,建議按照默認的格式規(guī)范書寫。

對于結(jié)尾部分,其實也可以省略,但是為了書寫規(guī)范,建議\033[***開頭,\033[0m結(jié)尾。

數(shù)值表示的參數(shù)含義:

顯示方式: 0(默認值)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、 5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)

前景色: 30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋 紅)、36(青色>)、37(白色)

背景色: 40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋 紅)、46(青色>)、47(白色)

先創(chuàng)建一個colorFont.py文件,方便之后調(diào)用,并編寫代碼:

OKGREEN = '\033[32m'
ERROR = '\033[31m'
WARNING = '\033[33m'
END = '\033[0m'
?
if __name__ == '__main__':
? ? print(OKGREEN + 'OK')
? ? print(ERROR + '錯誤')
? ? print(WARNING + "警告")

測試后,輸出結(jié)果如下:

接下來就是系統(tǒng)的編寫了,首先需要導入colorFont模塊,代碼如下:

from colorFont import *
from prettytable import PrettyTable
class Book(object):
? ? def __init__(self, name, author, borrowed=0, borrow=0):
? ? ? ? """
? ? ? ? :param name:書籍名稱
? ? ? ? :param author: 作者
? ? ? ? :param borrowed: 已借出書籍數(shù)
? ? ? ? :param borrow: 未借出的書籍數(shù)
? ? ? ? """
? ? ? ? self.name = name
? ? ? ? self.author = author
? ? ? ? self.borrowed = borrowed
? ? ? ? self.borrow = borrow
?
? ? def __str__(self):
? ? ? ? return '<Book: %s>' %(self.name)
?
class BookManage(object):
? ? books = []
?
? ? def init(self):
? ? ? ? """初始化書籍信息的函數(shù), 添加書籍信息"""
? ? ? ? self.books.append(Book("Python核心編程", 'Wesley Chun', 5, 0))
? ? ? ? self.books.append(Book("Python for data analysis", 'Wes McKinney', 5, 10))
? ? ? ? self.books.append(Book("流暢的Python", 'Luciano Ramalho', 0, 10))
? ? ? ? print(OKGREEN + "初始化書籍信息成功" + END)
?
? ? def find(self, name):
? ? ? ? """
? ? ? ? 根據(jù)用戶傳入的書籍名稱判斷書籍是否存在, 如果存在, 返回該書籍對象; 如果不存在, 返回None
? ? ? ? """
? ? ? ? for book in self.books:
? ? ? ? ? ? if book.name == name:
? ? ? ? ? ? ? ? return book
? ? ? ? else:
? ? ? ? ? ? return None
?
? ? def entering(self):
? ? ? ? name = input("請輸入要錄入的書籍名稱:").strip()
? ? ? ? book = self.find(name)
? ? ? ? if book:
? ? ? ? ? ? print(WARNING + "該書信息已存在,請不要重復錄入" +END)
? ? ? ? else:
? ? ? ? ? ? author = input("請輸入作者:")
? ? ? ? ? ? borrow = input("請輸入錄入數(shù)量:")
? ? ? ? ? ? borrowed = 0
? ? ? ? ? ? self.books.append(Book(name, author, borrowed, int(borrow)))
? ? ? ? ? ? print(OKGREEN + "錄入書籍信息成功" +END)
?
? ? def borrowBook(self):
? ? ? ? # 刪除字符串左右的空格
? ? ? ? name = input("借閱書籍名稱:").strip()
? ? ? ? # 查找書籍, 如果存在, 返回書籍對象, 不存在, 返回None;
? ? ? ? book = self.find(name)
? ? ? ? if book:
? ? ? ? ? ? if book.borrow > 0:
? ? ? ? ? ? ? ? # 未借出書籍數(shù)量減1;
? ? ? ? ? ? ? ? book.borrow -= 1
? ? ? ? ? ? ? ? # 借出書籍數(shù)量加1
? ? ? ? ? ? ? ? book.borrowed += 1
? ? ? ? ? ? ? ? print(OKGREEN + "書籍借閱成功" + END)
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print(WARNING + "書籍%s庫存不足" %(book.name) + END)
? ? ? ? else:
? ? ? ? ? ? print(ERROR + "書籍%s不存在" %(name) + END)
?
? ? def returnBook(self):
? ? ? ? name = input("歸還書籍名稱:").strip()
? ? ? ? book = self.find(name)
? ? ? ? if book:
? ? ? ? ? ? book.borrow += 1
? ? ? ? ? ? book.borrowed -= 1
? ? ? ? ? ? print(OKGREEN + "書籍歸還成功" + END)
? ? ? ? else:
? ? ? ? ? ? print(ERROR + "本圖書館沒有此書" + END)
?
? ? def show(self):
? ? ? ? print("書籍信息顯示".center(50, '*'))
? ? ? ? table = PrettyTable()
? ? ? ? table.field_names = ["編號", "書籍名稱", "作者", "已借出數(shù)量", "庫存數(shù)量"]
? ? ? ? for index, book in enumerate(self.books):
? ? ? ? ? ? table.add_row([index+1, book.name, book.author, book.borrowed, book.borrow])
? ? ? ? print(table)
?
def main():
? ? # 創(chuàng)建書籍管理的對象
? ? bm = BookManage()
? ? # 先初始化書籍信息
? ? bm.init()
? ? prompt = """
? ? ? ? ? ? ? ? 書籍借閱與管理系統(tǒng)
? ? ? ? ? ? ? ??
? ? ? ? ? ? 1).錄入書籍信息
? ? ? ? ? ? 2).借閱書籍信息
? ? ? ? ? ? 3).歸還書籍
? ? ? ? ? ? 4).查詢書籍信息
? ? ? ? ? ? 5).退出系統(tǒng)
? ? ? ? ? ??
? ? ? ? ? ??
? ? 請輸入你的選擇:"""
? ? while True:
? ? ? ? choice = input(prompt)
? ? ? ? if choice == '1':
? ? ? ? ? ? bm.entering()
? ? ? ? elif choice == '2':
? ? ? ? ? ? bm.borrowBook()
? ? ? ? elif choice == '3':
? ? ? ? ? ? bm.returnBook()
? ? ? ? elif choice == '4':
? ? ? ? ? ? bm.show()
? ? ? ? elif choice == '5':
? ? ? ? ? ? exit(0)
? ? ? ? else:
? ? ? ? ? ? print("請輸入正確的選項")
?
if __name__ == '__main__':
? ? main()

運行程序之后,輸出如下所示:

之后輸入要執(zhí)行的操作相對應的數(shù)字,先輸入一個 4 吧,看一下書庫里最開始有什么信息,輸入4后,得到下面的輸出:

再輸入一個 1 ,錄入一個新的信息:

再輸入一個2,借一本書吧:

再輸入 3 還書吧:

再輸入 4 看一下,現(xiàn)在書庫中所有書的情況吧:

最后輸入 5 就可以退出該系統(tǒng)了。

以上就是一個簡單的圖書借閱管理系統(tǒng)的實現(xiàn)。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python+requests接口自動化框架的實現(xiàn)

    python+requests接口自動化框架的實現(xiàn)

    這篇文章主要介紹了python+requests接口自動化框架的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 淺談Python中的數(shù)據(jù)類型

    淺談Python中的數(shù)據(jù)類型

    Python很重要的的那幾個數(shù)據(jù)類型:字符串,列表,字典,元組,經(jīng)常有網(wǎng)友問他們之間重要的區(qū)別的是什么?能否舉幾個例子來說明下!下嘛我們就來探討下。
    2015-05-05
  • 在Python中移動目錄結(jié)構(gòu)的方法

    在Python中移動目錄結(jié)構(gòu)的方法

    這篇文章主要介紹了在Python中移動目錄結(jié)構(gòu)的方法,需要的朋友可以參考下
    2016-01-01
  • python實現(xiàn)自動網(wǎng)頁截圖并裁剪圖片

    python實現(xiàn)自動網(wǎng)頁截圖并裁剪圖片

    這篇文章主要為大家詳細介紹了python實現(xiàn)自動網(wǎng)頁截圖并裁剪圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python 網(wǎng)絡(luò)編程要點總結(jié)

    python 網(wǎng)絡(luò)編程要點總結(jié)

    Python 提供了兩個級別訪問的網(wǎng)絡(luò)服務:低級別的網(wǎng)絡(luò)服務支持基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層操作系統(tǒng) Socket 接口的全部方法。高級別的網(wǎng)絡(luò)服務模塊SocketServer, 它提供了服務器中心類,可以簡化網(wǎng)絡(luò)服務器的開發(fā)。下面看下該如何使用
    2021-06-06
  • python讀寫二進制文件的方法

    python讀寫二進制文件的方法

    這篇文章主要介紹了python讀寫二進制文件的方法,實例分析了Python讀寫二進制文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解

    cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解

    getStructuringElement()函數(shù)可用于構(gòu)造一個特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python實現(xiàn)xlwt xlrd 指定條件給excel行添加顏色

    python實現(xiàn)xlwt xlrd 指定條件給excel行添加顏色

    這篇文章主要介紹了python實現(xiàn)xlwt xlrd 指定條件給excel行添加顏色,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 使用pyplot.matshow()函數(shù)添加繪圖標題

    使用pyplot.matshow()函數(shù)添加繪圖標題

    這篇文章主要介紹了使用pyplot.matshow()函數(shù)添加繪圖標題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python基于urllib實現(xiàn)按照百度音樂分類下載mp3的方法

    python基于urllib實現(xiàn)按照百度音樂分類下載mp3的方法

    這篇文章主要介紹了python基于urllib實現(xiàn)按照百度音樂分類下載mp3的方法,涉及Python使用urllib模塊操作頁面元素的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評論