一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python項目實戰(zhàn)練習:制作小型圖書管理系統(tǒng)

 Coder編程 2021-06-09

本文的文字及圖片來源于網(wǎng)絡,僅供學習、交流使用,不具有任何商業(yè)用途,版權歸原作者所有,如有問題請及時聯(lián)系我們以作處理

以下文章來源于IT叢林 ,作者: IT叢林

 

說明:此程序適合入門基本練習。

 

私信回復“資料”,即可免費領取Python實戰(zhàn)案例講解視頻

Python GUI制作視頻解析神器,全網(wǎng)視頻免費看

https://www.bilibili.com/video/BV1tz4y1o7Yc/

 

目標

了解面向?qū)ο箝_發(fā)過程中類內(nèi)部功能的分析方法。

了解常用系統(tǒng)功能

系統(tǒng)需求

使用面向?qū)ο缶幊趟枷胪瓿蓤D書管理系統(tǒng)的開發(fā)。具體如下:

系統(tǒng)要求:圖書信息存儲到文件中

系統(tǒng)功能,添加,刪除,修改,保存,查詢,顯示所有圖書信息,退出系統(tǒng)等功能。

程序文件分析設計

角色分析:圖書,管理系統(tǒng)

注意事項:

一個角色一個程序文件

項目的主入口,可以定義為main.py

主要功能

基于面向?qū)ο螅簩崿F(xiàn)圖書:

添加功能,

刪除功能,

修改功能,

查詢功能,

顯示所有,

保存到文件中,

加載數(shù)據(jù)等功能。

程序文件

程序入口:main.py

圖書文件:book.py

管理系統(tǒng)文件:systemmgr.py

1.1.4 程序代碼

圖書文件代碼

圖書文件:book.py

需求:圖書包括:書名,類型,sn號等。

添加__str__魔法方法,方便查看圖書對象信息

代碼:

class Book(object):
    def __init__(self,name,type,sn):
        self.name=name
        self.type=type
        self.sn=sn
    def __str__(self):


        return f'{self.name},{self.type},{self.sn}'

管理文件程序代碼

需求:

系統(tǒng)功能循環(huán)使用,根據(jù)用戶輸入的功能序號執(zhí)行不同的功能

步驟:

加載數(shù)據(jù)

顯示功能菜單

根據(jù)用戶輸入進行不同操作功能

定義系統(tǒng)功能函數(shù):添加,刪除,保存等

定義該管理系統(tǒng)的類:用于初始化,類中存儲管理系統(tǒng)的代碼。

定義一個一個list_page空圖書列表,方便存儲。

def __init__(self):
self.list_page=[]

添加一個靜態(tài)方法用于顯示功能菜單

@staticmethod
    def show_menu():
        print("請選擇如下功能")
        print("1,添加新書")
        print("2,刪除新書")
        print("3,修改新書")
        print("4,查詢相關書")
        print("5,顯示所有書")
        print("6,保存書信息")
        print("7,加載書信息")
        print("9,退出系統(tǒng)")

程序入口函數(shù),啟動程序執(zhí)行的函數(shù) run()

def run(self):
    while True:
        self.show_menu()
        int_num=int(input("請輸入功能序號"))
        if int_num==1:#添加
            self.add_book()
        if int_num == 2:#刪除
            self.del_book()
        elif int_num==3:#修改
            self.update_book()
        elif int_num==4:#查詢
            self.search_book()
        elif int_num==5:#顯示
            self.show_book()
        elif int_num==6:#保存
            self.save_book()
        elif int_num == 7:#加載
            self.load_book()
        elif int_num == 9:
            print("退出系統(tǒng)")
            break
    else:
        print("輸入錯誤!")

程序入口文件程序代碼

功能:導入系統(tǒng)管理模塊,啟動圖書管理系統(tǒng)。

main.py

from xm19code.systemgr import Systemmgr
if __name__=='__main__':
    rr = Systemmgr()
    rr.run()

程序代碼清單:

 

具體代碼如下圖:

class Book(object):
    def __init__(self,name,type,sn):
        self.name=name
        self.type=type
        self.sn=sn
    def __str__(self):
        return f'{self.name},{self.type},{self.sn}'
from xm19code.systemgr import Systemmgr


if __name__=='__main__':
    rr = Systemmgr()
    rr.run()
#from book  import *
from xm19code.book import *
class Systemmgr(object):
    def __init__(self):
        self.list_page=[]
    #循環(huán)
    @staticmethod
    def show_menu():
        print("請選擇如下功能")
        print("1,添加新書")
        print("2,刪除新書")
        print("3,修改新書")
        print("4,查詢相關書")
        print("5,顯示所有書")
        print("6,保存書信息")
        print("7,加載書信息")
        print("9,退出系統(tǒng)")
    def run(self):


        while True:
            self.show_menu()
            int_num=int(input("請輸入功能序號"))
            if int_num==1:#添加
                self.add_book()
            if int_num == 2:#刪除
                self.del_book()
            elif int_num==3:#修改
                self.update_book()
            elif int_num==4:#查詢
                self.search_book()
            elif int_num==5:#顯示
                self.show_book()
            elif int_num==6:#保存
                self.save_book()
            elif int_num == 7:#加載
                self.load_book()
            elif int_num == 9:
                print("退出系統(tǒng)")
                break
        else:
            print("輸入錯誤!")
    def add_book(self):
        #根據(jù)用戶輸入的字段添加
        name=input("請輸入書的名稱")
        type=input("請輸入書的分類")
        sn = input("請輸入書的sn")
        book=Book(name,type,sn)
        self.list_page.append(book)
        print(self.list_page)
        print(book)
    def update_book(self):
        names = input("請輸入要修改的圖書:")
        for i in self.list_page:
            if i.name==names:
                i.name=input("請輸入要修改的圖書名稱:")
                i.type = input("請輸入要修改的圖書類型:")
                i.sn = input("請輸入要修改的圖書SN:")
                print(f'修改了圖書信息成功:圖書{i.name} ,類型{i.type},sn為:{i.sn}')
                break
        else:
            print("沒有該圖書!")


    def del_book(self):
        names=input("請輸入要刪除的圖書:")
        # for 循環(huán)查詢
        for i in self.list_page:
            if i.name == names:
                self.list_page.remove(i)
                print("刪除成功!")
                break
        else:
            print("沒有該圖書")
    def show_book(self):
        print('圖書名稱\t\t\t類型\t\t\tSN')
        for i in self.list_page:
            print(f'{i.name}\t\t\t{i.type}\t\t\t{i.sn}')


    def save_book(self):
        # 打開文件
        f = open('book.data', 'w')
        # 文件寫人 把list【圖書對象】轉(zhuǎn)換為字典
        new_list = [i.__dict__ for i in self.list_page]
        print(new_list)
        f.write(str(new_list))
        # 文件關閉
        f.close();




    def search_book(self):
        names=input("請輸入要查詢的圖書名稱:")
        #for 循環(huán)查詢
        for i in self.list_page:
            if i.name==names:
                print(f'查詢到的圖書信息:圖書{i.name} ,'
                      f'類型{i.type},sn為:{i.sn}')
                break
        else:
            print("沒有該圖書")




    def load_book(self):
        try:
            f=open('book.data','r')
        except:
            f=open('book.data','w')
        else:
            data=f.read()
            #文件讀取的數(shù)據(jù)都是字符串且字符串內(nèi)部為字典數(shù)據(jù)
            # 故需要轉(zhuǎn)換數(shù)據(jù)類型在轉(zhuǎn)換字典為對象存儲到圖書列表中
            new_list=eval(data)
            self.list_page=[Book(i['name'],i['type'],i['sn']) for i in new_list]
            print('圖書\t\t類型\t\tSN')
            for i in self.list_page:
                print(f'{i.name}\t\t{i.type}\t\t{i.sn}')
        finally:
            #關閉文件
            f.close()







程序代碼運行結(jié)果:

C:\Python\Python38\python.exe D:/pythonProject/xm19code/main.py
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號7
圖書    類型    SN
py    py    1234
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號2
請輸入要刪除的圖書:22
沒有該圖書
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號3
請輸入要修改的圖書:22
沒有該圖書!
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號1
請輸入書的名稱1
請輸入書的分類1
請輸入書的sn1
[<xm19code.book.Book object at 0x000000000277F7C0>, <xm19code.book.Book object at 0x00000000025159D0>]
1,1,1
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號6
[{'name': 'py', 'type': 'py', 'sn': '1234'}, {'name': '1', 'type': '1', 'sn': '1'}]
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號1
請輸入書的名稱2
請輸入書的分類2
請輸入書的sn2
[<xm19code.book.Book object at 0x000000000277F7C0>, <xm19code.book.Book object at 0x00000000025159D0>, <xm19code.book.Book object at 0x000000000277F7F0>]
2,2,2
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號4
請輸入要查詢的圖書名稱:1
查詢到的圖書信息:圖書1 ,類型1,sn為:1
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號4
請輸入要查詢的圖書名稱:1
查詢到的圖書信息:圖書1 ,類型1,sn為:1
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號6
[{'name': 'py', 'type': 'py', 'sn': '1234'}, {'name': '1', 'type': '1', 'sn': '1'}, {'name': '2', 'type': '2', 'sn': '2'}]
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號7
圖書    類型    SN
py    py    1234
1    1    1
2    2    2
請選擇如下功能
1,添加新書
2,刪除新書
3,修改新書
4,查詢相關書
5,顯示所有書
6,保存書信息
7,加載書信息
9,退出系統(tǒng)
請輸入功能序號

 

 

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    色丁香之五月婷婷开心| 久久热在线视频免费观看| 日韩人妻有码一区二区| 五月婷婷六月丁香在线观看| 国产精品内射视频免费| 亚洲视频一级二级三级| 狠狠干狠狠操在线播放| 国产一级性生活录像片| 国产成人精品久久二区二区| 国产欧美日韩精品自拍| 少妇在线一区二区三区| 欧美不雅视频午夜福利| 亚洲熟妇av一区二区三区色堂| 欧美日韩在线观看自拍| 中文字幕人妻av不卡| 亚洲国产精品久久网午夜| 91精品视频免费播放| 高清国产日韩欧美熟女| 少妇视频一区二区三区| 日韩一区二区三区在线欧洲| 欧美在线观看视频免费不卡| 老熟女露脸一二三四区| 日韩一区二区三区在线日| 狠色婷婷久久一区二区三区| 国产精品一区二区三区欧美| 色丁香一区二区黑人巨大| 日本人妻免费一区二区三区| 国产av熟女一区二区三区蜜桃| 欧美亚洲国产日韩一区二区| 久久国产人妻一区二区免费| 国产日韩欧美一区二区| 日本一区不卡在线观看| 亚洲中文字幕一区三区| 国产一区二区三区四区中文| 在线欧美精品二区三区| 少妇人妻中出中文字幕| 精品人妻一区二区三区免费| 五月的丁香婷婷综合网| 日本一区不卡在线观看| av中文字幕一区二区三区在线 | 国产精品视频久久一区|