用python做一个简单的学生信息登记系统

本作业基于pymysql和tkinter实现

摘要
由于高校学生人数多,学生信息量大,使用传统的人工管理模式不易于整理和修改学生信息。
为了方便学校管理学生信息,本次设计采用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)功能实现界面:
用python做一个简单的学生信息登记系统_第1张图片
(2)插入一个学生信息:
用python做一个简单的学生信息登记系统_第2张图片

(3)查询目标学生:
用python做一个简单的学生信息登记系统_第3张图片

(4)删除目标学生信息

用python做一个简单的学生信息登记系统_第4张图片

你可能感兴趣的:(用python做一个简单的学生信息登记系统)