中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現圖書管理系統設計的代碼怎么寫

發布時間:2022-03-10 09:47:37 來源:億速云 閱讀:160 作者:iii 欄目:開發技術

本篇內容介紹了“Python實現圖書管理系統設計的代碼怎么寫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

基于python的tkinter,將圖書管理系統的界面進行簡單的開發,我在這里使用的方法比較簡單理解,但是代碼過于繁多。添加、刪除及修改并未使用數據庫,而是使用了csv文件的讀取操作,從而替代數據庫。

基本效果如下圖所示:

Python實現圖書管理系統設計的代碼怎么寫

該系統將所有代碼全都放在一個文件中,源碼如下:

import os
import tkinter
import tkinter.messagebox
from tkinter import *
from tkinter import ttk
 
class LoginPage (object):
    def __init__(self, master=None): 
        self.root = master #定義內部變量root 
        # 獲取當前屏幕的寬高
        self.width = self.root.winfo_screenwidth()
        self.height = self.root.winfo_screenheight()
        # 設置窗口大小
        self.h = 600
        self.w = 800
        # 將窗口居中
        self.y = (self.height - 600) / 2
        self.x = (self.width - 800) / 2
        self.root.geometry("%dx%d+%d+%d" %(self.w,self.h,self.x,self.y))
        # 不允許修改窗口大小
        self.root.resizable(False,False)
        self.addnum = StringVar() 
        self.addname = StringVar() 
        self.addauthor = StringVar() 
        self.addchu = StringVar() 
        self.adddate = StringVar() 
        self.addpri = StringVar() 
        self.altnum = StringVar() 
        self.altname = StringVar() 
        self.altauthor = StringVar() 
        self.altchu = StringVar() 
        self.altdate = StringVar() 
        self.altpri = StringVar() 
        self.createPage() 
 
    # 創建頁面
    def createPage(self): 
        #表格
        tree = ttk.Treeview(self.root)
        tree.place(x=10,y=10,width=780,height=260)
        # #定義列
        tree["columns"] = ("編號","書名","作者", "出版社", "出版日期", "價格")
        tree['show'] = 'headings'
        # 設置列,列還不顯示
        tree.column("編號", width=80,anchor ='c')
        tree.column("書名", width=150,anchor ='c')
        tree.column("作者", width=150,anchor ='c')
        tree.column("出版社", width=150,anchor ='c')
        tree.column("出版日期", width=150,anchor ='c')
        tree.column("價格", width=100,anchor ='c')
        #設置表頭
        tree.heading("編號", text="編號")
        tree.heading("書名", text="書名")
        tree.heading("作者", text="作者")
        tree.heading("出版社", text="出版社")
        tree.heading("出版日期", text="出版日期")
        tree.heading("價格", text="價格")
        #添加數據
        f = open('圖書.csv','r',encoding='utf-8')
        for line in f.readlines():
            info = line[:-1].split(",")
            tree.insert("", 0, values=(info[0],info[1],info[2],info[3],info[4],info[5]))
        f.close()
 
        # 添加編號
        addnum = Label(self.root, text="編號",font=('微軟雅黑',10,''),anchor='w')
        addnum.place(x=42.5,y=280,height=20,width=80)
        addnuminput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.addnum)
        addnuminput.place(x=122.5,y=279,height=24,width=105)
        # 添加書名
        addname = Label(self.root, text="書名",font=('微軟雅黑',10,''),anchor='w')
        addname.place(x=42.5,y=310,height=20,width=80)
        addnameinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.addname)
        addnameinput.place(x=122.5,y=309,height=24,width=105)
        # 添加作者
        addauthor = Label(self.root, text="作者",font=('微軟雅黑',10,''),anchor='w')
        addauthor.place(x=42.5,y=340,height=20,width=80)
        addauthorinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.addauthor)
        addauthorinput.place(x=122.5,y=339,height=24,width=105)
        # 添加出版社
        addchu = Label(self.root, text="出版社",font=('微軟雅黑',10,''),anchor='w')
        addchu.place(x=42.5,y=370,height=20,width=80)
        addchuinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.addchu)
        addchuinput.place(x=122.5,y=369,height=24,width=105)
        # 添加出版日期
        adddate = Label(self.root, text="出版日期",font=('微軟雅黑',10,''),anchor='w')
        adddate.place(x=42.5,y=400,height=20,width=80)
        adddateinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.adddate)
        adddateinput.place(x=122.5,y=399,height=24,width=105)
        # 添加價格
        addpri = Label(self.root, text="價格",font=('微軟雅黑',10,''),anchor='w')
        addpri.place(x=42.5,y=430,height=20,width=80)
        addpriinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.addpri)
        addpriinput.place(x=122.5,y=429,height=24,width=105)
        # 添加按鈕
        add = Button(self.root,command=self.click, text ="添加書本",font=('微軟雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515')
        add.place(x=105,y=500,height=35,width=100)
 
 
        # 修改編號
        altnum = Label(self.root, text="編號",font=('微軟雅黑',10,''),anchor='w')
        altnum.place(x=292.5,y=280,height=20,width=80)
        altnuminput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altnum)
        altnuminput.place(x=372.5,y=279,height=24,width=105)
        # 修改書名
        altname = Label(self.root, text="書名",font=('微軟雅黑',10,''),anchor='w')
        altname.place(x=292.5,y=310,height=20,width=80)
        altnameinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altname)
        altnameinput.place(x=372.5,y=309,height=24,width=105)
        # 修改作者
        altauthor = Label(self.root, text="作者",font=('微軟雅黑',10,''),anchor='w')
        altauthor.place(x=292.5,y=340,height=20,width=80)
        altauthorinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altauthor)
        altauthorinput.place(x=372.5,y=339,height=24,width=105)
        # 修改出版社
        altchu = Label(self.root, text="出版社",font=('微軟雅黑',10,''),anchor='w')
        altchu.place(x=292.5,y=370,height=20,width=80)
        altchuinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altchu)
        altchuinput.place(x=372.5,y=369,height=24,width=105)
        # 修改出版日期
        altdate = Label(self.root, text="出版日期",font=('微軟雅黑',10,''),anchor='w')
        altdate.place(x=292.5,y=400,height=20,width=80)
        altdateinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altdate)
        altdateinput.place(x=372.5,y=399,height=24,width=105)
        # 修改價格
        altpri = Label(self.root, text="價格",font=('微軟雅黑',10,''),anchor='w')
        altpri.place(x=292.5,y=430,height=20,width=80)
        altpriinput = Entry(self.root,font=('微軟雅黑',10,''),textvariable=self.altpri)
        altpriinput.place(x=372.5,y=429,height=24,width=105)
        # 修改按鈕
        alter = Button(self.root,command=self.altclick, text ="修改書本",font=('微軟雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515')
        alter.place(x=350,y=500,height=35,width=100)
        # 保存按鈕
        pre = Button(self.root,command=self.show, text ="保存書本信息",font=('微軟雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515')
        pre.place(x=595,y=500,height=35,width=100)
 
    # 寫入判斷輸入框是否有空值
    def Isspace(self,text):
        temp = 0
        for i in text:
           if not i.isspace():
               temp = 1
               break
        if temp==1:
            return 0
        else:
            return 1
    # 檢查寫入是否有空值
    def click(self):
        addnum = self.addnum.get()
        addname = self.addname.get()
        addauthor = self.addauthor.get()
        addchu = self.addchu.get()
        adddate = self.adddate.get()
        addpri = self.addpri.get()
        if self.Isspace(addnum) or self.Isspace(addname) or self.Isspace(addauthor) or self.Isspace(addchu) or self.Isspace(adddate) or self.Isspace(addpri) :
            tkinter.messagebox.showerror(title='提示', message ="請填寫所有信息")
        else:
            self.write(addnum,addname,addauthor,addchu,adddate,addpri)
    # 寫入信息
    def write(self,addnum,addname,addauthor,addchu,adddate,addpri):
        f = open('圖書.csv','r',encoding='utf-8')
        for line in f.readlines():
            info = line[:-1].split(",")
            if len(info)<6:
                break
            if info[0] ==addnum and info[1] ==addname:
                 tkinter.messagebox.showinfo(title='結果', message ="已存在該圖書信息!")
                 f.close()
                 return
 
        f.close()
        f = open('圖書.csv','a',encoding='utf-8')
        f.write('{},{},{},{},{},{}\n'.format(addnum,addname,addauthor,addchu,adddate,addpri))
        f.close()
        tkinter.messagebox.showinfo(title='提示', message ="寫入成功,點擊保存后更新")
 
    # 檢查修改信息是否空白
    def altclick(self):
        altnum = self.altnum.get()
        altname = self.altname.get()
        altauthor = self.altauthor.get()
        altchu = self.altchu.get()
        altdate = self.altdate.get()
        altpri = self.altpri.get()
        if self.Isspace(altnum) or self.Isspace(altname) or self.Isspace(altauthor) or self.Isspace(altchu) or self.Isspace(altdate) or self.Isspace(altpri) :
            tkinter.messagebox.showerror(title='提示', message ="輸入項為空")
        else:
            self.modify(altnum,altname,altauthor,altchu,altdate,altpri)
 
    # 修改信息
    def modify(self,altnum,altname,altauthor,altchu,altdate,altpri):
        temp = 0
        with open("圖書.csv","r",encoding="utf-8") as f:
            lines = f.readlines()
   
        with open("圖書.csv","w",encoding="utf-8") as f_w:
            for line in lines:
                info = line[:-1].split(",")
                if info[0] ==altnum:
                    temp = 1
                    f_w.write('{},{},{},{},{},{}\n'.format(altnum,altname,altauthor,altchu,altdate,altpri))
                    continue
                f_w.write(line)
        if temp==0:
            tkinter.messagebox.showerror(title='提示', message ="沒有該信息")
        else:
            tkinter.messagebox.showinfo(title='提示', message ="修改成功,點擊保存后更新")
    # 保存信息并顯示
    def show(self):
        self.createPage() 
root = Tk() 
root.title('圖書管理') 
LoginPage(root) 
root.mainloop()

在運行代碼前需要在同級文件夾下創建一個名為“圖書”的csv文件,如下圖所示:

Python實現圖書管理系統設計的代碼怎么寫

“Python實現圖書管理系統設計的代碼怎么寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜都市| 平阳县| 泰宁县| 黎平县| 绵阳市| 如东县| 子长县| 平阳县| 信宜市| 轮台县| 南充市| 林口县| 惠东县| 永和县| 苍南县| 莱西市| 鄢陵县| 蕉岭县| 莱州市| 兖州市| 商洛市| 凤翔县| 镇坪县| 西华县| 庆安县| 龙游县| 喀喇沁旗| 棋牌| 北安市| 阜新| 郴州市| 桑日县| 修文县| 井冈山市| 四子王旗| 宁陕县| 四平市| 楚雄市| 廉江市| 商城县| 龙里县|