摘要
由于高校学生人数多,学生信息量大,使用传统的人工管理模式不易于整理和修改学生信息。
为了方便学校管理学生信息,本次设计采用python和mysql来设计简单的学生信息管理系统,实现对学生信息的查询,添加,删除功能。
1.引言
随着信息技术应用的普及和不断发展,信息技术已经渗入各类行业当中,促进了许多行业的发展,也方便了许多管理行业的管理方式,迅速地改变人类社会的生产方式和生活方式。随着计算机技术的不断提高,各个领域也离不开计算机技术,有效减轻了人体的体力劳动和脑力劳动
利用计算机技术,可以提高管理效率,学校的学生信息管理也可以利用它来提高信息管理效率,也能有效的防止信息遗漏,改变传统的人工管理,使得学生信息也能够信息化,提高效率,减少人力,所以利用此技术来开发一个学生信息管理系统。
2.系统结构
系统由于要利用数据库存储学生信息,采用pymysql模块和py的tkinter窗口模块实现可以实现功能。
3.实现代码
窗体实现代码
import pymysql
import tkinter as tk
from tkinter import ttk
import tkinter.messagebox
win = tk.Tk()
win.geometry('1000x800')
numLabel = tk.Label(win, text='学号:').grid(row=0,column=0)
numStringvar = tk.StringVar()
numEntry = tk.Entry(win, width=20, textvariable=numStringvar).grid(row=0, column=1)
nameLabel = tk.Label(win, text='姓名:').grid(row=1,column=0)
nameStringvar = tk.StringVar()
nameEntry = tk.Entry(win, width=20, textvariable=nameStringvar).grid(row=1, column=1)
sexLabel = tk.Label(win, text='性别:').grid(row=2,column=0)
sexStringvar = tk.StringVar()
sexEntry = tk.Entry(win, width=20, textvariable=sexStringvar).grid(row=2, column=1)
birLabel = tk.Label(win, text='出生时间:').grid(row=3,column=0)
birStringvar = tk.StringVar()
birEntry = tk.Entry(win, width=20, textvariable=birStringvar).grid(row=3, column=1)
zhuanyeLabel = tk.Label(win, text='专业:').grid(row=4,column=0)
zhuanyeStringvar = tk.StringVar()
zhuanyeEntry = tk.Entry(win, width=20, textvariable=zhuanyeStringvar).grid(row=4, column=1)
xuefenLabel = tk.Label(win, text='总学分:').grid(row=5,column=0)
xuefenStringvar = tk.StringVar()
xuefenEntry = tk.Entry(win, width=20, textvariable=xuefenStringvar).grid(row=5, column=1)
beizhuLabel = tk.Label(win, text='备注:').grid(row=6,column=0)
beizhuStringvar = tk.StringVar()
beizhuEntry = tk.Entry(win, width=20, textvariable=beizhuStringvar).grid(row=6, column=1)
tree = ttk.Treeview(win)
tree['column'] = ('学号','姓名','性别','出生时间','专业','总学分','备注')
tree.column('学号', width=100)
tree.column('姓名', width=100)
tree.column('性别', width=100)
tree.column('出生时间', width=100)
tree.column('专业', width=100)
tree.column('总学分', width=100)
tree.column('备注', width=100)
tree.heading('学号', text='学号')
tree.heading('姓名', text='姓名')
tree.heading('性别', text='性别')
tree.heading('出生时间', text='出生时间')
tree.heading('专业', text='专业')
tree.heading('总学分', text='总学分')
tree.heading('备注', text='备注')
tree.grid(row=8, column=0, columnspan=10)
win.mainloop()
添加学生信息功能
def insert():
connection = pymysql.connect('localhost', 'root', '123456', 'student_info')
cursor = connection.cursor()
cursor.execute('insert into std_excel values ("%s","%s","%s","%s","%s","%s","%s")' %
(numStringvar.get(), nameStringvar.get(), sexStringvar.get(),
birStringvar.get(), zhuanyeStringvar.get(),
xuefenStringvar.get(), beizhuStringvar.get()))
connection.commit()
tree.insert('', 'end', value = [numStringvar.get(), nameStringvar.get(),
sexStringvar.get(), birStringvar.get(),
zhuanyeStringvar.get(), xuefenStringvar.get(),
beizhuStringvar.get()])
tk.messagebox.showinfo('提示', numStringvar.get() + '信息插入成功!')
connection.close()
insertButton = tk.Button(win, text='插入', width=10, height=1,command=insert).grid(row=7,column=1,pady=5)
查询学生信息
def select():
xh = numStringvar.get()
connection = pymysql.connect('localhost', 'root', '123456', 'student_info')
cursor = connection.cursor()
if len(xh) == 0:
c = cursor.execute('select * from std_excel')
else:
print('select * from std_excel where Sid like "%'+xh+'%"')
c = cursor.execute('select * from std_excel where Sid like "%'+xh+'%"')
list_re = cursor.fetchall()
x = tree.get_children()
for item in x:
tree.delete(item)
for i in range(len(list_re)):
tree.insert('', i, text=i, values=(list_re[i][0], list_re[i][1], list_re[i][2], list_re[i][3], list_re[i][4], list_re[i][5], list_re[i][6]))
connection.close()
selectButton = tk.Button(win, text='查询', width=10, height=1,command=select).grid(row=7,column=0,pady=5)
删除目标学生信息
def delete():
xh = numStringvar.get()
connection = pymysql.connect('localhost', 'root', '123456', 'student_info')
cursor = connection.cursor()
cursor.execute('delete from std_excel where Sid = "' + xh + '"' )
connection.commit()
tk.messagebox.showinfo('提示', xh + '信息删除成功!')
connection.close()
deleteButton = tk.Button(win, text='删除', width=10, height=1,command=delete).grid(row=7,column=2,pady=5)
清空输入栏
def clear():
numStringvar.set('')
nameStringvar.set('')
sexStringvar.set('')
birStringvar.set('')
zhuanyeStringvar.set('')
xuefenStringvar.set('')
beizhuStringvar.set('')
clearButton = tk.Button(win, text='清空', width=10,height=1,command=clear).grid(row=7,column=3,pady=5)
4.实验结果
(1)功能实现界面:
(2)插入一个学生信息:
(4)删除目标学生信息