Python--tkinter编程案例

使用tkinter开发一个简单的学生管理系统,可以编辑学生的信息,适时更新学生的资料,并能保存和读取系统数据。具体要求如下:

  1. 使用自定义函数,完成对程序的模块化;
  2. 学生信息至少包含:姓名、性别及手机号;
  3. 该系统具有的功能:添加、删除、修改、显示、退出系统;

将学生信息存储到文件中

import tkinter as tk
import tkinter.messagebox
import json
studentInfos=[]
root=tk.Tk()
root['height']=200
root['width']=250
root.title('学生管理系统')
choice=tk.IntVar()
choice.set(1)
radioAdd=tk.Radiobutton(root,
                        variable=choice,
                        value=1,
                        text='添加学生信息')
radioAdd.place(x=70,y=10,width=100,height=20)
radioDel=tk.Radiobutton(root,
                        variable=choice,
                        value=2,
                        text='删除学生信息')
radioDel.place(x=70,y=40,width=100,height=20)
radioDel=tk.Radiobutton(root,
                        variable=choice,
                        value=3,
                        text='修改学生信息')
radioDel.place(x=70,y=70,width=100,height=20)
radioDel=tk.Radiobutton(root,
                        variable=choice,
                        value=4,
                        text='显示学生信息')
radioDel.place(x=70,y=100,width=100,height=20)
def makechoice():
    if choice.get()==1:
        print("="*30)
        tk.messagebox.showinfo(title='提示',message='添加学生信息')
        newName=input("请输入新的学生的名字:")
        newSex=input("请输入新的学生性别(男/女):")
        newPhone=input("请输入新的学生电话:")
        print("="*30)
        newInfo={}
        newInfo["name"]=newName
        newInfo["sex"]=newSex
        newInfo["phone"]=newPhone
        studentInfos.append(newInfo)
    elif choice.get()==2:
        tk.messagebox.showinfo(title='提示',message='删除学生信息')
        print("="*30)
        defNum=int(input("请输入要删除的序号:"))-1
        print("="*30)
        del studentInfos[delNum]
    elif choice.get()==3:
        tk.messagebox.showinfo(title='提示',message='修改学生信息')
        print("="*30)
        studentId=int(input("请输入要修改的序号:"))-1
        newName=input("请输入新的学生的名字:")
        newSex=input("请输入新的学生性别(男/女):")
        newPhone=input("请输入新的学生电话:")
        print("="*30)
        newInfo={}
        newInfo["name"]=newName
        newInfo["sex"]=newSex
        newInfo["phone"]=newPhone
        studentInfos[studentId]=newInfo
    elif choice.get()==4:
        tk.messagebox.showinfo(title='提示',message='显示学生信息')
        print("="*30)
        print("学生信息如下")
        print("="*30)
        print("序号\t姓名\t性别\t手机号")
        num=1
        for tempInfo in studentInfos:
            print("%d\t%s\t%s\t%s"%(num,tempInfo["name"],tempInfo["sex"],tempInfo["phone"]))
            num+=1
        input("按任意键继续...")
        print("="*30)
buttonChoice=tk.Button(root,
                       text="确定",
                       width=40,
                       command=makechoice)
buttonChoice.place(x=50,y=140,width=40,height=20)
def quitsys():
    if tk.messagebox.askokcancel("提示","退出系统"):
        with open("info.txt","w+") as f:
            for item in studentInfos:
                output=json.dumps(item)
                f.write(output+'\n')
        root.destroy()
buttonQuit=tk.Button(root,
                     text="退出",
                     width=40,
                     command=quitsys)
buttonQuit.place(x=150,y=140,width=40,height=20)
root.mainloop()

 运行结果:

 

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等一句恭喜WE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值