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

    技术2023-12-28  83

    本作业基于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)功能实现界面: (2)插入一个学生信息:

    (3)查询目标学生:

    (4)删除目标学生信息

    Processed: 0.012, SQL: 9