利用Python编写一个简易的通讯录系统

利用Python编写一个简易的通讯录系统,数据可以存放在文件内,也可以存放在数据库内,利用Python自带的tkinter库设计界面,功能至少包含增删改查,界面设计尽量简洁美观。

 

有没有大佬来帮帮孩子

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

给你个类似的代码,你自己参考着改一下吧

#-*- coding:utf-8 -*-
from tkinter import *
import json
try:
    with open("datajson.txt","r") as f:
        d = f.read()
        data = json.loads(d)
except IOError:
    data = []

top = Tk()
top.title("成绩管理")
top.geometry("400x800+400+50")

def createFun():
    addw = Toplevel(top)
    addw.title("添加成绩")
    addw.geometry("200x200+300+300")
    Label(addw, text="学号").grid(row=0, column=0)
    Label(addw, text="姓名").grid(row=1, column=0)
    Label(addw, text="年龄").grid(row=2, column=0)
    Label(addw, text="成绩").grid(row=3, column=0)
    sno = Entry(addw)
    sno.grid(row=0, column=1)
    name = Entry(addw)
    name.grid(row=1, column=1)
    age = Entry(addw)
    age.grid(row=2, column=1)
    score = Entry(addw)
    score.grid(row=3, column=1)
    def cFun():
        data.append({'sno': sno.get(), 'name': name.get(), 'age': int(age.get()), 'score': float(score.get())})
        addw.destroy()
        upde()
    def qFun():
        addw.destroy()

    Button(addw, text ="确定", command = cFun).grid(row=4, column=0)
    Button(addw, text ="取消", command = qFun).grid(row=4, column=1)
    addw.transient(top)
    addw.focus()
    addw.grab_set()
    top.wait_window(addw)


def quitFun():
    top.quit()

buttbox = Frame(top)
buttbox.pack( side = TOP, fill = X )
Button(buttbox, text ="添加", command = createFun).pack(side = LEFT)
Button(buttbox, text ="退出", command = quitFun).pack(side = LEFT)

# can = Canvas(top, width = 250, height = 500)
# can.pack(side = RIGHT)
fra = Frame(top)
def upde():
    global fra
    fra.destroy()
    fra = Frame(top)
    fra.pack( side = LEFT, fill = BOTH )
    Label(fra, text="学号").grid(row=0, column=0)
    Label(fra, text="姓名").grid(row=0, column=1)
    Label(fra, text="年龄").grid(row=0, column=2)
    Label(fra, text="成绩").grid(row=0, column=3)
    def delFun(i):
        del data[i]
        upde()
    for i in range(len(data)):
        Label(fra, text=data[i]["sno"]).grid(row=i+1, column=0)
        Label(fra, text=data[i]["name"]).grid(row=i+1, column=1)
        Label(fra, text=data[i]["age"]).grid(row=i+1, column=2)
        Label(fra, text=data[i]["score"]).grid(row=i+1, column=3)
        Button(fra, text ="删除", command = lambda i=i: delFun(i)).grid(row=i+1, column=4)


upde()
top.mainloop()
# 写入文件
with open("datajson.txt","w") as f:
    f.write(json.dumps(data))

 

怎么又把采纳给到 有问必答小助手 了,都好几次了。

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y