python_圖書管理系統(tǒng)

用戶類
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 23 09:57:05 2019

@author: Mr.Ming
"""

class User:
    def __init__(self, userName = None, password = None):
        self.userName = userName
        self.__password = password
    
    def getUserName(self):
        return self.userName
    
    def setUserName(self, userName):
        self.userName = userName
    
    def getpassword(self):
        return self.__password
    
    def setPassword(self, password):
        self.__password = password
    
    def __repr__(self):
        return "User{" + "userName=" + self.userName + "}"
書籍類
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 22 23:13:21 2019

@author: Mr.Ming
"""

class Book:
    def __init__(self, Id = None, bookName = None, info = None):
        self.id = Id
        self.bookName = bookName
        self.info = info
    
    def getId(self):
        return self.id
    
    def setID(self, Id):
        self.id = Id
    
    def getBookName(self):
        return self.bookName
    
    def setBookName(self, bookName):
        self.bookName = bookName
    
    def getInfo(self):
        return self.info
    
    def setInfo(self, info):
        self.info = info
    
    def __repr__(self):
        return "Book{" + "id=" + str(hash(self.id)) + ", bookName='" + self.bookName + "'" + ", info='" + self.info + "'}"
借閱記錄類
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 23 10:55:46 2019

@author: Mr.Ming
"""

class Order:
    def __init__(self, timer = None, bookName = None):
        self.timer = timer
        self.bookName = bookName
    
    def getTimer(self):
        return self.timer
    
    def getBookName(self):
        return self.bookName
    
    def __repr__(self):
        return "Order{" + "timer=" + self.timer + ", books='" + self.bookName +
書籍管理系統(tǒng)主程序
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 23 10:45:34 2019

@author: Mr.Ming
"""

import time
import uuid

from User import User
from Book import Book
from Order import Order

userList = []
bookList = []
orderList = []

def mian():
    # 數(shù)據(jù)準備
    userList.append(User(userName = "Louis", password = "123123"))
    userList.append(User(userName = "Angelina", password = "123456"))
    userList.append(User(userName = "Julian", password = "666666"))
    bookList.append(Book(uuid.uuid3(uuid.NAMESPACE_DNS, 'C Primer Plus'), 'C Primer Plus', 'C語言學習經(jīng)典'))
    bookList.append(Book(uuid.uuid3(uuid.NAMESPACE_DNS, 'Core Python Application Programming'),'Core Python Application Programming', 'Python學習經(jīng)典'))
    bookList.append(Book(uuid.uuid3(uuid.NAMESPACE_DNS, '世界上下五千年'), '世界上下五千年', '世界歷史'))
    bookList.append(Book(uuid.uuid3(uuid.NAMESPACE_DNS, '何以笙簫默'), '何以笙簫默', '顧漫小說'))
    # 主界面
    # 登錄 注冊
    print('{:#^30}'.format('歡迎使用圖書館管理系統(tǒng)'))
    print("請選擇功能:")
    print("\t◇1.登錄")
    print("\t◇2.注冊")
    print("\t◇3.退出")
    print(">" * 20 +  "<" * 20)
    loginChoice = input("~$")
    if eval(loginChoice) == 1:
        # 登錄
        loginContinue = True
        while loginContinue:
            if login():     # 通過登錄函數(shù)的返回值判斷是否登錄成功
                print("登錄成功")
                loginContinue = False
            else:
                print("登錄失敗,請重新登錄")
        pass
    elif eval(loginChoice) == 2:
        # 注冊
        registe()
        loginContinue = True
        while loginContinue:
            if login():
                print("登錄成功")
                loginContinue = False
            else:
                print("登錄失敗,請重新登錄")
        pass
    elif eval(loginChoice) == 3:
        # 退出
        return print("感謝您登錄,再見!")
    else:
        print("輸入錯誤")
    # 登錄后的主界面
    looding = True
    while looding:
        print("請選擇功能:")
        print("\t◇1.查看圖書")
        print("\t◇2.用戶借閱和借閱記錄")
        print("\t◇3.圖書管理")
        print("\t◇4.退出")
        print(">" * 20 +  "<" * 20)
        functionChoice = input("~$")
        if eval(functionChoice) == 1:
            # 查看圖書
            print(bookList)
        elif eval(functionChoice) == 2:
            # 用戶借書和查看借閱記錄
            circleLooding = True
            while circleLooding:
                print("請輸入執(zhí)行的操作:")
                print("\t◇1.借書")
                print("\t◇2.借閱記錄")
                print("\t◇3.返回主菜單")
                print(">" * 20 +  "<" * 20)
                functionChoice = input("~$")
                if eval(functionChoice) == 1:
                    borrowBook = input("請輸入你要借閱的書籍:")
                    for book in bookList:
                        if book.getBookName() == borrowBook:        # 判斷需要借閱的書籍是否在書庫中
                            orderList.append(Order(time.ctime(), borrowBook))
                            print("借閱成功")
                elif eval(functionChoice) == 2:
                    # 借閱列表
                    print(orderList) 
                elif eval(functionChoice) == 3:
                    circleLooding = False
                else:
                    print("輸入錯誤")
        elif eval(functionChoice) == 3:
            # 圖書管理
            print("請選擇:")
            print("\t◇1.添加書籍")
            print("\t◇2.刪除書籍")
            print(">" * 20 +  "<" * 20)
            functionChoice = input("~$")
            if eval(functionChoice) == 1:
                # 添加書籍
                addBook()
            elif eval(functionChoice) == 2:
                # 刪除數(shù)據(jù)
                deleteBook()
            else:
                print("輸入錯誤")
        elif eval(functionChoice) == 4:
            # 退出
            looding = False
            return print("感謝您登錄,再見!")
        else:
            print("輸入錯誤")
    pass

def login():
    userName = input("請輸入用戶名:")
    password = input("請輸入密碼:")
    for user in userList:
        # 當輸入的用戶名不為空且用戶名和密碼和用戶對象列表中的數(shù)據(jù)匹配時返回真(登錄成功)
        if userName != "" and user.getUserName() == userName and user.getpassword() == password:
            return True
    return False

def registe():
    userName = input("請輸入用戶名:")
    password = input("請輸入密碼:")
    # 防止重復用戶名
    for user in userList:
        if user.getUserName == userName:
            print("用戶名已存在,注冊失敗,請換一個")
            registe()
    # 將新增的用戶對象添加到用戶對象列表
    userList.append(User(userName = userName, password = password))
    print("注冊成功")
    pass

def addBook():
    # 添加書籍
    looding = True
    while looding:
        bookName = input("請輸入添加的書籍名:")
        bookInfo = input("請輸入書籍的描述信息:")
        bookList.append(Book(uuid.uuid3(uuid.NAMESPACE_DNS, bookName), bookName, bookInfo))
        print("是否繼續(xù)添加:")
        print("\t◇1.繼續(xù)")
        print("\t◇2.返回主菜單")
        print(">" * 20 +  "<" * 20)
        exitChoice = input("~$")
        if eval(exitChoice) == 2:
            looding = False
            print("添加完畢")
    pass

def deleteBook():
    # 刪除書籍
    looding = True
    while looding:
        bookName = input("請輸入要刪除的書籍名:")
        for i in range(len(bookList)):
            if bookList[i].getBookName() == bookName:
                k = i       # 獲取要刪除書籍的下標
        bookList.pop(k)
        print("是否繼續(xù)刪除:")
        print("\t◇1.繼續(xù)")
        print("\t◇2.返回主菜單")
        print(">" * 20 +  "<" * 20)
        exitChoice = input("~$")
        if eval(exitChoice) == 2:
            looding = False
            print("刪除完畢")
    pass

mian()

運行演示:


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摄狱,一起剝皮案震驚了整個濱河市秋度,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌欺旧,老刑警劉巖观堂,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件让网,死亡現(xiàn)場離奇詭異,居然都是意外死亡师痕,警方通過查閱死者的電腦和手機溃睹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胰坟,“玉大人因篇,你說我怎么就攤上這事。” “怎么了竞滓?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵咐吼,是天一觀的道長。 經(jīng)常有香客問我商佑,道長锯茄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任茶没,我火速辦了婚禮肌幽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抓半。我一直安慰自己喂急,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布笛求。 她就那樣靜靜地躺著廊移,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣易。 梳的紋絲不亂的頭發(fā)上画机,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天冶伞,我揣著相機與錄音新症,去河邊找鬼。 笑死响禽,一個胖子當著我的面吹牛徒爹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芋类,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼隆嗅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了侯繁?” 一聲冷哼從身側(cè)響起胖喳,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贮竟,沒想到半個月后丽焊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡咕别,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年技健,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惰拱。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡雌贱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情欣孤,我是刑警寧澤馋没,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站降传,受9級特大地震影響披泪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搬瑰,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一款票、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泽论,春花似錦艾少、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹦赎,卻和暖如春谍椅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背古话。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工雏吭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陪踩。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓杖们,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肩狂。 傳聞我的和親對象是個殘疾皇子摘完,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在上一篇文章里我們簡單的說了一下圖書管理系統(tǒng)的設(shè)計思路,這一篇文章我們將設(shè)計一下此系統(tǒng)的數(shù)據(jù)庫. 一:前提條件: ...
    云時之間閱讀 4,546評論 0 5
  • # 第一章復習題答案p3 1、計算機系統(tǒng)由哪些部分組成? 2傻谁、什么是計算機的操作系統(tǒng)?答:操作系統(tǒng)是計算機的一種系...
    叛逆閑人閱讀 3,340評論 0 0
  • 是否你也像我一樣二十多歲 剛出社會迷迷糊糊,搞不清狀況力图,有些問題也不會深思熟慮步绸,也不會為自己的利息打算,心寬的很大...
    徐端端閱讀 868評論 0 0
  • “我對先生的喜歡何止中意二字 望向你時眼里藏不住的愛意 一想到你嘴角不聽使喚上揚” “我對姑娘的喜歡何止青睞二字 ...
    魚悅月閱讀 1,024評論 0 8
  • 2018年4月6日刑桑,星期五氯质,多云。 到達合肥站時已經(jīng)是上午9點半了祠斧。對于一個外地游客來說闻察,最先接觸到的是這座城市的...
    James3745閱讀 667評論 2 3