最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python實(shí)現(xiàn)名片管理系統(tǒng)

 更新時(shí)間:2020年06月18日 17:25:14   作者:程序員不掉發(fā)  
這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)名片管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

python實(shí)現(xiàn)名片管理系統(tǒng)(界面+數(shù)據(jù)庫(kù))

開(kāi)發(fā)一個(gè)簡(jiǎn)單的信息管理系統(tǒng)(類似于前面的名片管理系統(tǒng)),要求:

1.用結(jié)構(gòu)化方法或面向?qū)ο箝_(kāi)發(fā)方法開(kāi)發(fā)系統(tǒng)
2.有圖形用戶界面
3.用數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)
4.用python語(yǔ)言實(shí)現(xiàn)系統(tǒng)

部分功能如下圖

進(jìn)入時(shí)的界面

顯示所有名片后的界面

新建名片功能

新建成功

查找名片里包含(修改名片和刪除名片)

具體代碼如下

import sys
from tkinter import *
from tkinter.messagebox import *
from tkinter import ttk
import sqlite3

con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
#con.execute("create table card(name primary key ,phone,QQ,email)")

#新增名片
def add():
 add = Tk()
 add.geometry('260x140+350+200')
 add.minsize(260, 140)
 add.maxsize(260, 140)
 add.title("新建名片")
 lf = LabelFrame(add,text="請(qǐng) 輸 入 :",labelanchor=N)
 lf.pack()
 Label(lf, text="姓 名:").grid(row=0,column=0)
 Label(lf, text="電 話:").grid(row=1,column=0)
 Label(lf, text="Q Q:").grid(row=2, column=0)
 Label(lf, text="Email:").grid(row=3, column=0)
 name = Entry(lf)
 name.grid(row=0,column=1,columnspan=2)
 phone = Entry(lf)
 phone.grid(row=1,column=1,columnspan=2)
 qq = Entry(lf)
 qq.grid(row=2,column=1,columnspan=2)
 email = Entry(lf)
 email.grid(row=3,column=1,columnspan=2)
 #確定按鈕添加數(shù)據(jù)
 def qd_event():
 try:
 if name.get()=="":
 showinfo(title="提示", message="姓名不能為空!")
 add.destroy()
 else:
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cardList = (name.get(),phone.get(),qq.get(),email.get())
 con.execute("insert into card(name,phone,QQ,email) values (?,?,?,?)",cardList)
 #card = {"姓名":name.get(),"電話":phone.get(),"QQ":qq.get(),"Email":email.get()}
 #card_list.append(card)
 con.commit()
 con.close()
 add.destroy()
 show_all()
 #save_data()
 showinfo(title="提示", message="新建名片成功!")
 except:
 print("error occur")
 showinfo(title="警告", message="姓名不能重復(fù)!")
 #取消按鈕
 def qx_event():
 add.destroy()
 Button(lf,text=" 確 定 ",command=qd_event).grid(row=4,column=2,sticky=W)
 Button(lf,text=" 取 消 ",command=qx_event).grid(row=4,column=1,sticky=E)
 
#顯示所有
def show_all():
 x=dataTreeview.get_children()
 for item in x:
 dataTreeview.delete(item)
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cur = con.execute("select * from card")
 for i in cur:
 print(i)
 n=0
 #dataTreeview.insert('', 1, values=("1","2","3","4"))
 dataTreeview.insert('',n, values=i)
 n+=1 

#清空數(shù)據(jù)
def del_all():
 x=dataTreeview.get_children()
 for item in x:
 dataTreeview.delete(item)

#查詢名片
def search_card():
 search = Tk()
 search.geometry('240x50+450+300')
 search.minsize(240, 80)
 search.maxsize(400, 170)
 search.title("查找名片")
 lf = LabelFrame(search, text="請(qǐng) 輸 入 :", labelanchor=N)
 lf.pack()
 Label(lf, text="姓 名:").grid(row=0, column=0)
 name = Entry(lf)
 name.grid(row=0, column=1, columnspan=2)
 #print(name.get())
 def sure():
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 cur = con.execute("select * from card")
 for i in cur:
 #print(i)
 #print(name.get())
 #print(name.get()==i[0])
 if name.get() == i[0]:
 print("查找成功")
 #print(i[0])
 update(i[0])
 
 search.destroy()
 break
 else:
 showinfo(title="提示",message="沒(méi)有找到!")
 Button(lf, text="查找", command=sure).grid(row=1, column=1, sticky=N)

#修改名片
def update(n):
 
 update = Tk()
 update.geometry('400x170+350+200')
 update.minsize(400, 170)
 update.maxsize(400, 170)
 update.title("查找名片")
 lf1 = LabelFrame(update, text="名片信息",labelanchor=N)
 lf1.pack()
 Label(lf1, text="姓 名:").grid(row=0, column=0)
 Label(lf1, text="電 話:").grid(row=1, column=0)
 Label(lf1, text="Q Q:").grid(row=2, column=0)
 Label(lf1, text="Email:").grid(row=3, column=0)
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 print(n+"好靚仔")
 cur = con.execute("select * from card where name =="+"'"+n+"'")
 print("'"+n+"'")
 for i in cur:
 print(i[0]+i[1]+i[2]+i[3])
 Label(lf1, text=i[0], width=20, anchor=W).grid(row=0, column=1, columnspan=2)
 Label(lf1, text=i[1], width=20, anchor=W).grid(row=1, column=1, columnspan=2)
 Label(lf1, text=i[2], width=20, anchor=W).grid(row=2, column=1, columnspan=2)
 Label(lf1, text=i[3], width=20, anchor=W).grid(row=3, column=1, columnspan=2)
 name = Entry(lf1)
 name.grid(row=0, column=3, columnspan=2)
 phone = Entry(lf1)
 phone.grid(row=1, column=3, columnspan=2)
 qq = Entry(lf1)
 qq.grid(row=2, column=3, columnspan=2)
 email = Entry(lf1)
 email.grid(row=3, column=3, columnspan=2)
 Label(lf1,text="提示!修改名片在空白處輸入確認(rèn)修改即可",anchor=E).grid(row=4, column=0, columnspan=3)
 def xg_event(n):
 print(n)
 print(name.get()) 
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 con.execute("update card set name=?,phone=?,qq=?,email=? where name ="+"'"+n+"'",(name.get(),phone.get(),qq.get(),email.get()))
 con.commit()
 con.close()
 update.destroy()
 show_all()
 
 #刪除名片
 def delete(n):
 con = sqlite3.connect(r"D:\Python練習(xí)\作業(yè)\12月6日python\card.db")
 con.execute("delete from card where name ="+"'"+n+"'")
 con.commit()
 con.close()
 show_all()
 showinfo(title="提示", message="已刪除!")
 update.destroy()
 Button(lf1, text="修 改", command=lambda: xg_event(n)).grid(row=5, column=2, sticky=E)
 Button(lf1, text="刪 除", command=lambda: delete(n)).grid(row=5, column=1, sticky=E)

 
#退出系統(tǒng)
def quit():
 root.destroy()


def about():
 showinfo(title="關(guān)于我們",message="卡片管理系統(tǒng)\n版本號(hào):V4.0 \n作者:華浩新\n完成日期:2019年12月18日")

 #創(chuàng)建一個(gè)Tk根窗口組件root
root=Tk()
root.title("名片管理系統(tǒng)")
root["width"]=800
root["height"]=500


#系統(tǒng)管理菜單欄
mubar=Menu(root)
muLogin=Menu(mubar,tearoff=0)
mubar.add_cascade(label="系統(tǒng)管理",menu=muLogin)
muLogin.add_command(label="加載數(shù)據(jù)",command=show_all)
muLogin.add_command(label="清空數(shù)據(jù)",command=del_all)
tc=muLogin.add_command(label="退出",command=quit)

#名片管理菜單欄
muCard=Menu(mubar,tearoff=0)
mubar.add_cascade(label="名片管理",menu=muCard)
muCard.add_command(label="顯示所有",command=show_all)
root.bind("<Button-1>,")
muCard.add_command(label="新建",command=add)
muCard.add_command(label="查找",command=search_card)
muCard.add_command(label="保存")

#幫助菜單欄
muHelp=Menu(mubar,tearoff=0)
mubar.add_cascade(label="幫助",menu=muHelp)
muHelp.add_command(label="關(guān)于",command=about)
t=Text(root,width=100,height=30)
t.pack()



dataTreeview = ttk.Treeview(root, height=19,show='headings', column=('name', 'phone', 'QQ', 'email'))
dataTreeview.column('name', width=80, anchor="center")
dataTreeview.column('phone', width=80, anchor="center")
dataTreeview.column('QQ', width=80, anchor="center")
dataTreeview.column('email', width=80, anchor="center")

dataTreeview.heading('name', text='姓名')
dataTreeview.heading('phone', text='電話')
dataTreeview.heading('QQ', text='QQ')
dataTreeview.heading('email', text='郵箱')
dataTreeview.place(rely=0, relwidth=1)
Label(root, text='名片管理系統(tǒng)V4.0', bg='white', fg='blue', font=('宋體', 15)).pack(side=BOTTOM, fill='x')

root["menu"]=mubar
root.mainloop()

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 浮點(diǎn)數(shù)四舍五入需要注意的地方

    python 浮點(diǎn)數(shù)四舍五入需要注意的地方

    這篇文章主要介紹了python 四舍五入需要注意的地方,幫助大家避免一些不必要的坑,感興趣的朋友可以了解下
    2020-08-08
  • Python中獲取屏幕DPI值的不同方法總結(jié)

    Python中獲取屏幕DPI值的不同方法總結(jié)

    在 Python 中,可以通過(guò)多種方式獲取屏幕的 DPI(每英寸點(diǎn)數(shù)),這篇文章為大家詳細(xì)介紹了一些常見(jiàn)的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)

    pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)

    這篇文章主要介紹了pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python桌面文件清理腳本分享

    Python桌面文件清理腳本分享

    這篇文章主要介紹了Python桌面文件清理腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python基于動(dòng)態(tài)規(guī)劃算法計(jì)算單詞距離

    Python基于動(dòng)態(tài)規(guī)劃算法計(jì)算單詞距離

    這篇文章主要介紹了Python基于動(dòng)態(tài)規(guī)劃算法計(jì)算單詞距離的方法,實(shí)例分析了Python動(dòng)態(tài)規(guī)劃算法的實(shí)現(xiàn)與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • TF-IDF的算法原理以及Python實(shí)現(xiàn)過(guò)程

    TF-IDF的算法原理以及Python實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了TF-IDF的算法原理以及Python實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2018-01-01
  • python如何利用plt.legend()添加圖例代碼示例

    python如何利用plt.legend()添加圖例代碼示例

    用python的matplotlib畫圖時(shí),往往需要加圖例說(shuō)明,下面這篇文章主要給大家介紹了關(guān)于python如何利用plt.legend()添加圖例的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • matplotlib教程——強(qiáng)大的python作圖工具庫(kù)

    matplotlib教程——強(qiáng)大的python作圖工具庫(kù)

    這篇文章主要介紹了python matplotlib的相關(guān)資料,幫助大家更好的利用python matplotlib庫(kù)繪制圖表,感興趣的朋友可以了解下
    2020-10-10
  • 基于Python制作一個(gè)相冊(cè)播放器

    基于Python制作一個(gè)相冊(cè)播放器

    對(duì)于相冊(cè)播放器,大家應(yīng)該都不陌生(用于瀏覽多張圖片的一個(gè)應(yīng)用)。本文將利用Python編寫一個(gè)簡(jiǎn)單的相冊(cè)播放器,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • 探究Python的Tornado框架對(duì)子域名和泛域名的支持

    探究Python的Tornado框架對(duì)子域名和泛域名的支持

    這篇文章主要介紹了探究Python的Tornado框架對(duì)子域名和泛域名的支持,Tornado作為一個(gè)典型的異步框架、在Python開(kāi)發(fā)者中的人氣相當(dāng)高,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

九龙城区| 兴国县| 布拖县| 杭锦后旗| 保定市| 通道| 滕州市| 兴和县| 南宁市| 托克逊县| 蒙自县| 富平县| 沛县| 宜川县| 盐山县| 海门市| 渑池县| 平顶山市| 华亭县| 上杭县| 迁安市| 大化| 修文县| 都江堰市| 德阳市| 四会市| 应城市| 宁武县| 银川市| 革吉县| 华坪县| 长丰县| 漳平市| 平凉市| 钟山县| 枣强县| 永顺县| 尉犁县| 阜阳市| 荔浦县| 德惠市|