综合GUI编程——学生信息管理

(1)使用SQLiteStudio.exe工具,设计test.db数据库,创建数据表tstudent

(2)设计学生管理界面,实现学生“录入”、“删除”、“修改”、“查询”、“查看”和关闭6个子功能。 

import tkinter as tk
import tkinter.messagebox as tkm
import tkinter.font as tkFont
import sqlite3

#建立数据库
co=sqlite3.connect(r'自己建立数据库所在地址')
cu=co.cursor()
cu.execute('DROP TABLE IF EXISTS tstudent')
sql="CREATE TABLE tstudent (id varchar(20) PRIMARY KEY,\
    name varchar(20) not null,\
    age varchar(4) not null,\
    sex varchar(4) not null,\
    class varchar(10) not null)"
cu.execute(sql)
def login():#录入信息
    sql="INSERT INTO tstudent VALUES (?,?,?,?,?)"
    cu.execute(sql,(v1.get(),v2.get(),v3.get(),v4.get(),v5.get()))
    co.commit()

def Delete():#删除信息
    sql="select id,name,age,sex,class from tstudent where id='%s'"%v1.get()
    cu.execute(sql)
    s=cu.fetchall()
    if len(s)!=0:
        cu.execute("DELETE FROM tstudent WHERE id='%s'"%v1.get())
    else:
        tkm.showerror("删除失败",'学生'+v1.get()+'不存在')
    
    co.commit()

def update():#修改信息
    cu.execute("select id,name,age,sex,class from tstudent where id='%s'"%v1.get() )
    s=cu.fetchall()
    if len(s)==0:
        tkm.showerror("修改失败",'学生'+v1.get()+'不存在')
    else:
        sql="update tstudent set name='%s',age='%s',sex='%s',class='%s' where id='%s'"%(v2.get(),v3.get(),v4.get(),v5.get(),v1.get())
        cu.execute(sql)
    co.commit()

def select():#查看信息
    global i
    cu.execute("select id,name,age,sex,class from tstudent where id=%s"%v1.get())
    s=cu.fetchall()
    f=tkFont.Font(size=10)
    if len(s)==0:
        tkm.showerror("查看失败",'学生'+v1.get()+'不存在')
    else:
        vshow.set(s)
    i+=1

def check():#查阅信息
    
    f=tkFont.Font(size=10)
    sql="select * from tstudent"
    cu.execute(sql)
    s=cu.fetchall()
    r=''
    if len(s)==0:
        tkm.showerror("查阅失败","无学生信息")
    else:
        for k in s:
            r=r+k[0]+','+k[1]+','+k[2]+','+k[3]+','+k[4]+','+'\n'
    vshow.set(r)



i=1
root=tk.Tk()
root.title('学生成绩管理平台')
root.geometry('900x700')
f1=tkFont.Font(family='microsoft yahei',size=20,slant='roman')
f2=tkFont.Font(family='microsoft yahei',size=14)
lb=tk.Label(root,text='学生管理平台',font=f1).place(x=350,y=20)
#学号
v1=tk.StringVar()
lb1=tk.Label(root,text='学号',font=f2).place(x=100,y=95)
entry1=tk.Entry(root,textvariable=v1).place(x=150,y=100)
#姓名
v2=tk.StringVar()
lb2=tk.Label(root,text='姓名',font=f2).place(x=100,y=135)
entry2=tk.Entry(root,textvariable=v2).place(x=150,y=140)
#年龄
v3=tk.StringVar()
lb3=tk.Label(root,text='年龄',font=f2).place(x=100,y=175)
entry3=tk.Entry(textvariable=v3).place(x=150,y=180)
#性别
v4=tk.StringVar()
lb4=tk.Label(root,text='性别',font=f2).place(x=450,y=95)
entry4=tk.Entry(textvariable=v4).place(x=500,y=100)
#班级
v5=tk.StringVar()
lb5=tk.Label(root,text='班级',font=f2).place(x=450,y=135)
entry5=tk.Entry(root,textvariable=v5).place(x=500,y=140)

bt1=tk.Button(root,text='录入',command=login).place(x=80,y=220,width=100)
bt2=tk.Button(root,text='删除',command=Delete).place(x=200,y=220,width=100)
bt3=tk.Button(root,text='修改',command=update).place(x=320,y=220,width=100)
bt4=tk.Button(root,text='查阅',command=check).place(x=440,y=220,width=100)
bt4=tk.Button(root,text='查看',command=select).place(x=560,y=220,width=100)
bt5=tk.Button(root,text='关闭',command=root.destroy).place(x=680,y=220,width=100)

vshow=tk.StringVar()
tl=tk.Listbox(listvariable=vshow).place(x=80,y=280,width=700,height=400)
root.mainloop()

 代码运行成果图如图所示。

 代码仅供参考,仍有诸多不足。欢迎在评论区或者小窗戳我讨论斧正。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值