(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()
代码运行成果图如图所示。
代码仅供参考,仍有诸多不足。欢迎在评论区或者小窗戳我讨论斧正。