python tkinter实现学生信息管理系统
作者:coder默迹 发布时间:2021-11-01 18:46:16
标签:python,信息,管理系统
本文实例为大家分享了python tkinter实现学生信息管理系统的具体代码,供大家参考,具体内容如下
初学python,代码写的比较繁杂,系统功能还有完善的空间
系统使用了mysql数据库,数据库:sch,用户名:root ,密码:123456,创建表的语句写在代码里面了
import tkinter
import tkinter.messagebox
import re
import pymysql
from tkinter import scrolledtext
import os
from tkinter import *
def window_info(main):
w = main.winfo_screenwidth()
h = main.winfo_screenheight()
x = (w / 2) - 200
y = (h / 2) - 200
return (x, y)
def conn():
con = pymysql.connect("localhost", "root", "root", "sch")
return con
def cur(connection):
cur = connection.cursor()
return cur
def exitsys():
root.destroy()
def teacherlogin():
#===============================================================================
def managerindex():
def addstudent():
def addone():
connection = conn()
cursor = cur(connection)
try:
cursor.execute('insert into student values(%s,%s,%s,%s,%s)',
(addnameentry.get(), addageentry.get(),
addnoentry.get(), addclassentry.get(),'未注册'))
connection.commit()
except:
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '添加失败!')
else:
addsuccessentry.insert('0', '添加失败!')
connection.rollback()
connection.close()
cursor.close
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '添加成功!')
else:
addsuccessentry.insert('0', '添加成功!')
def addcancel():
addnameentry.delete('0', 'end')
addageentry.delete('0', 'end')
addnoentry.delete('0', 'end')
addclassentry.delete('0', 'end')
addsuccessentry.delete('0', 'end')
def exit():
add.destroy()
add = Toplevel()
add.title('添加学生信息')
x, y = window_info(add)
add.geometry("415x295+%d+%d" % (x, y))
add['bg'] = 'dodgerblue'
labelname = tkinter.Label(add, text='添加学生', width=80, bg='dodgerblue')
labelname.place(x=140, y=50, width=150, height=20)
labelname = tkinter.Label(add, text='学生名:', width=80)
labelname.place(x=140, y=80, width=60, height=20)
addnameentry = tkinter.Entry(add, width=200)
addnameentry.place(x=195, y=80, width=80, height=20)
labelage = tkinter.Label(add, text='年 龄:', width=80)
labelage.place(x=140, y=110, width=60, height=20)
addageentry = tkinter.Entry(add, width=200)
addageentry.place(x=195, y=110, width=80, height=20)
labelno = tkinter.Label(add, text='学 号:', width=80)
labelno.place(x=140, y=140, width=60, height=20)
addnoentry = tkinter.Entry(add, width=200)
addnoentry.place(x=195, y=140, width=80, height=20)
labelclass = tkinter.Label(add, text='班 级:', width=80)
labelclass.place(x=140, y=170, width=60, height=20)
addclassentry = tkinter.Entry(add, width=200)
addclassentry.place(x=195, y=170, width=80, height=20)
addsuccessentry = tkinter.Entry(add, width=200, state='normal')
addsuccessentry.place(x=140, y=200, width=135, height=20)
buttonadd = tkinter.Button(add, text="添加", command=addone)
buttonadd.place(x=140, y=230, width=50, height=20)
buttoncancel = tkinter.Button(add, text="重置", command=addcancel)
buttoncancel.place(x=220, y=230, width=50, height=20)
add.mainloop()
return add
# ===================================================================================
def findonestudent():
def search():
if textsearch.get('1.0', 'end') != '':
textsearch.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student where sno=%s', (entrysearchone.get()))
data = list(cursor.fetchone())
textsearch.insert('insert', "学生姓名:" + data[0]
+ "\n" + "年龄:" + data[1]
+ "\n" + "学号" + data[2]
+ "\n" + "班级:" + data[3] + "\n\n")
connection.commit()
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student where sno=%s', (entrysearchone.get()))
data = list(cursor.fetchone())
textsearch.insert('insert', "学生姓名:" + data[0]
+ "\n" + "年龄:" + data[1]
+ "\n" + "学号" + data[2]
+ "\n" + "班级:" + data[3] + "\n\n")
connection.commit()
except:
connection.rollback()
connection.close()
cursor.close
def searchonecancel():
textsearch.delete('1.0', 'end')
def searchnocancel():
entrysearchone.delete('0', 'end')
def exit():
findone.destroy()
findone = Toplevel()
findone.title('查询学生信息')
x, y = window_info(findone)
findone.geometry("415x295+%d+%d" % (x, y))
findone['bg'] = 'dodgerblue'
labelname = tkinter.Label(findone, text='请输入要查询学生的学号:', width=80, bg='dodgerblue')
labelname.place(x=140, y=50, width=140, height=20)
entrysearchone = tkinter.Entry(findone, width=200)
entrysearchone.place(x=140, y=80, width=150, height=20)
buttonsearch = tkinter.Button(findone, text="查找", command=search)
buttonsearch.place(x=140, y=110, width=50, height=20)
buttonsearch = tkinter.Button(findone, text="重置", command=searchnocancel)
buttonsearch.place(x=240, y=110, width=50, height=20)
textsearch = tkinter.scrolledtext.ScrolledText(findone, width=18, height=6)
textsearch.place(x=140, y=140)
buttoncancel = tkinter.Button(findone, text="清空", command=searchonecancel)
buttoncancel.place(x=190, y=230, width=50, height=20)
findone.mainloop()
# ==================================================================================
def deletestudent():
def deleteone():
if deleteoneentry.get() == '':
tkinter.messagebox.showerror('error', message="请输入学号!")
else:
if textdelete.get('1.0', 'end') != '':
textdelete.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('delete from student where sno=%s', (deleteoneentry.get()))
connection.commit()
cursor.execute('select * from student')
data = list(cursor.fetchall())
textdelete.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:")
textdelete.insert('insert', "\n")
for i in data:
print(i)
textdelete.insert('insert', '\t\t'.join(i))
textdelete.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('delete from student where sno=%s', (deleteoneentry.get()))
connection.commit()
cursor.execute('select * from student')
data = list(cursor.fetchall())
textdelete.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:")
textdelete.insert('insert', "\n")
for i in data:
print(i)
textdelete.insert('insert', '\t\t'.join(i))
textdelete.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def exit():
deleteone.destroy()
def deleteonecancel():
deleteoneentry.delete('0', 'end')
delete = Toplevel()
delete.title('删除学生信息')
x, y = window_info(delete)
delete.geometry("415x295+%d+%d" % (x, y))
delete['bg'] = 'dodgerblue'
labelname = tkinter.Label(delete, text='请输入要删除学生的学号:', bg='dodgerblue')
labelname.place(x=5, y=20, width=140, height=20)
deleteoneentry = tkinter.Entry(delete, width=200)
deleteoneentry.place(x=5, y=50, width=150, height=20)
buttondelete = tkinter.Button(delete, text="删除", command=deleteone)
buttondelete.place(x=5, y=80, width=50, height=20)
buttondelete = tkinter.Button(delete, text="重置", command=deleteonecancel)
buttondelete.place(x=105, y=80, width=50, height=20)
textdelete = tkinter.scrolledtext.ScrolledText(delete, width=54, height=9)
textdelete.place(x=5, y=110)
delete.mainloop()
# =======================================================================================
def findallstudent():
def show():
if textshow.get('1.0', 'end') != '':
textshow.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student')
data = list(cursor.fetchall())
textshow.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:\t\t登录密码:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student')
data = list(cursor.fetchall())
textshow.insert('insert', "姓名:\t\t年龄:\t\t学号:\t\t班级:\t\t登录密码:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def searchallcancel():
textshow.delete('1.0', 'end')
def exit():
findall.destroy()
findall = Toplevel()
findall.title('查询所有学生信息')
x, y = window_info(findall)
findall.geometry("520x295+%d+%d" % (x, y))
findall['bg'] = 'dodgerblue'
labelname = tkinter.Label(findall, text='查询所有学生信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(findall, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9)
textshow.place(x=5, y=80)
buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel)
buttoncancel.place(x=5, y=210, width=50, height=20)
findall.mainloop()
# =======================================================================================
def modifystudent():
def modifyfindone():
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student where sno=%s', (modifyoneentry.get()))
connection.commit()
except:
connection.rollback()
connection.close()
cursor.close
data = list(cursor.fetchall())
if data == []:
tkinter.messagebox.showerror(message="没有查询到该学生的信息!")
else:
modifynameentry.insert('0', data[0][0])
modifyageentry.insert('0', data[0][1])
modifynoentry.insert('0', data[0][2])
modifyclassentry.insert('0', data[0][3])
def submit():
print(modifynameentry.get())
print(modifyoneentry.get())
connection = conn()
cursor = cur(connection)
sqlname = "update student set sname = %s where sno = %s"
cursor.execute(sqlname, (modifynameentry.get(), modifyoneentry.get()))
sqlage = "update student set sage = %s where sno = %s"
cursor.execute(sqlage, (modifyageentry.get(), modifyoneentry.get()))
sqlno = "update student set sno = %s where sno = %s"
cursor.execute(sqlno, (modifynoentry.get(), modifyoneentry.get()))
sqlclass = "update student set sclass = %s where sno = %s"
cursor.execute(sqlclass, (modifyclassentry.get(), modifyoneentry.get()))
connection.commit()
if modifysuccessentry.get() != '':
modifysuccessentry.delete('0', 'end')
modifysuccessentry.insert('0', '修改成功!')
else:
modifysuccessentry.insert('0', '修改成功!')
modify = Toplevel()
modify.title('修改学生信息')
x, y = window_info(modify)
modify.geometry("415x295+%d+%d" % (x, y))
modify['bg'] = 'dodgerblue'
labelname = tkinter.Label(modify, text='请输入要修改学生的学号:', bg='dodgerblue')
labelname.place(x=5, y=20, width=140, height=20)
buttonshow = tkinter.Button(modify, text="确定", command=modifyfindone)
buttonshow.place(x=155, y=50, width=50, height=20)
modifyoneentry = tkinter.Entry(modify, width=200)
modifyoneentry.place(x=5, y=50, width=150, height=20)
labelname = tkinter.Label(modify, text='该学生信息如下', bg='dodgerblue')
labelname.place(x=5, y=70, width=85, height=20)
labelname = tkinter.Label(modify, text='姓名:',bg='dodgerblue')
labelname.place(x=5, y=100, width=30, height=20)
modifynameentry = tkinter.Entry(modify, width=200)
modifynameentry.place(x=5, y=120, width=150, height=20)
labelname = tkinter.Label(modify, text='年龄:',bg='dodgerblue')
labelname.place(x=200, y=100, width=30, height=20)
modifyageentry = tkinter.Entry(modify, width=200)
modifyageentry.place(x=200, y=120, width=150, height=20)
labelname = tkinter.Label(modify, text='学号:',bg='dodgerblue')
labelname.place(x=5, y=150, width=30, height=20)
modifynoentry = tkinter.Entry(modify, width=200)
modifynoentry.place(x=5, y=170, width=150, height=20)
labelname = tkinter.Label(modify, text='班级:',bg='dodgerblue')
labelname.place(x=200, y=150, width=30, height=20)
modifyclassentry = tkinter.Entry(modify, width=200)
modifyclassentry.place(x=200, y=170, width=150, height=20)
modifysuccessentry = tkinter.Entry(modify, width=200)
modifysuccessentry.place(x=5, y=200, width=150, height=20)
buttonshow = tkinter.Button(modify, text="提 交", command=submit)
buttonshow.place(x=5, y=230, width=50, height=20)
modify.mainloop()
# ==================================================================================
def findselectcourseinfor():
def show():
print('swj')
if textshow.get('1.0', 'end') != '':
textshow.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select sno,sname,sclass,cno,cname from student,course where student.sno=sc.sno and course.cno=sc.cno')
data = list(cursor.fetchall())
textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select sc.sno,sname,sclass,sc.cno,course.cname from student,course,sc where student.sno=sc.sno and course.cno=sc.cno')
data = list(cursor.fetchall())
textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def searchallcancel():
textshow.delete('1.0', 'end')
findall = Toplevel()
findall.title('查询学生选课信息')
x, y = window_info(findall)
findall.geometry("520x295+%d+%d" % (x, y))
findall['bg'] = 'dodgerblue'
labelname = tkinter.Label(findall, text='查询学生选课信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(findall, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshow = tkinter.scrolledtext.ScrolledText(findall, width=105, height=9)
textshow.place(x=5, y=80)
buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel)
buttoncancel.place(x=5, y=210, width=50, height=20)
findall.mainloop()
#===================================================================================
def addcourse():
def addonecourse():
print(addcnoentry.get())
connection = conn()
cursor = cur(connection)
try:
cursor.execute('insert into course values(%s,%s,%s)',
(addcnoentry.get(), addcnameentry.get(),
addtnoentry.get()))
connection.commit()
except:
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '添加失败!')
else:
addsuccessentry.insert('0', '添加失败!')
connection.rollback()
connection.close()
cursor.close
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '添加成功!')
else:
addsuccessentry.insert('0', '添加成功!')
def addcancel():
addcnoentry.delete('0', 'end')
addcnameentry.delete('0', 'end')
addtnoentry.delete('0', 'end')
addsuccessentry.delete('0', 'end')
addcourse = Toplevel()
addcourse.title('添加学生信息')
x, y = window_info(addcourse)
addcourse.geometry("415x295+%d+%d" % (x, y))
addcourse['bg'] = 'dodgerblue'
labelname = tkinter.Label(addcourse, text='添加学生', width=80, bg='dodgerblue')
labelname.place(x=140, y=50, width=150, height=20)
labelname = tkinter.Label(addcourse, text='课程号:', width=80)
labelname.place(x=140, y=80, width=60, height=20)
addcnoentry = tkinter.Entry(addcourse, width=200)
addcnoentry.place(x=195, y=80, width=80, height=20)
labelage = tkinter.Label(addcourse, text='课程名:', width=80)
labelage.place(x=140, y=110, width=60, height=20)
addcnameentry = tkinter.Entry(addcourse, width=200)
addcnameentry.place(x=195, y=110, width=80, height=20)
labelno = tkinter.Label(addcourse, text='教师编号:', width=80)
labelno.place(x=140, y=140, width=60, height=20)
addtnoentry = tkinter.Entry(addcourse, width=200)
addtnoentry.place(x=195, y=140, width=80, height=20)
addsuccessentry = tkinter.Entry(addcourse, width=200, state='normal')
addsuccessentry.place(x=140, y=170, width=135, height=20)
buttonadd = tkinter.Button(addcourse, text="添加", command=addonecourse)
buttonadd.place(x=140, y=200, width=50, height=20)
buttoncancel = tkinter.Button(addcourse, text="重置", command=addcancel)
buttoncancel.place(x=220, y=200, width=50, height=20)
addcourse.mainloop()
def exitsys():
root.destroy()
studentindex = Toplevel()
studentindex.title('学生信息管理系统')
x, y = window_info(studentindex)
studentindex.geometry("430x505+%d+%d" % (x, y))
studentindex['bg'] = 'dodgerblue'
labelname = tkinter.Label(studentindex, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 20))
labelname.place(x=60, y=30, width=350, height=40)
buttonadd = tkinter.Button(studentindex, text="添 加", command=addstudent)
buttonadd.place(x=150, y=90, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="查 询", command=findonestudent)
buttonadd.place(x=150, y=140, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="删 除", command=deletestudent)
buttonadd.place(x=150, y=190, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="查询所有", command=findallstudent)
buttonadd.place(x=150, y=240, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="修 改", command=modifystudent)
buttonadd.place(x=150, y=290, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="添加课程", command=addcourse)
buttonadd.place(x=150, y=340, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="学生选课信息", command=findselectcourseinfor)
buttonadd.place(x=150, y=390, width=100, height=40)
buttonadd = tkinter.Button(studentindex, text="退出系统", command=exitsys)
buttonadd.place(x=150, y=440, width=100, height=40)
studentindex.mainloop()
# ===============================================================================
def login():
name = entryName.get()
pwd = entryPwd.get()
connection = conn()
cursor = cur(connection)
cursor.execute('select * from login')
data = list(cursor.fetchall())
print(data)
if data == []:
tkinter.messagebox.showerror(message="账号或密码错误!")
return 0
for i in data:
print(i[0])
print(i[1])
if i[0] == name and i[1] == pwd:
managerindex()
def forregister():
def loginregister():
if pwdentry.get() == '' or confirmpwdentry.get == '':
tkinter.messagebox.showerror(message="请输入账号密码!")
elif pwdentry.get() == confirmpwdentry.get():
connection = conn()
cursor = cur(connection)
try:
cursor.execute('insert into login(user,password)values(%s,%s)',
(userentry.get(), pwdentry.get()))
connection.commit()
if registersuccessentry.get() != '':
registersuccessentry.delete('0', 'end')
registersuccessentry.insert('0', '注册成功!')
else:
registersuccessentry.insert('0', '注册成功!')
bottonOk = tkinter.Button(studentregister, text="立即登录", command=registerlogin, bg='dodgerblue')
bottonOk.place(x=125, y=230, width=70, height=30)
#return userentry.get(), pwdentry.get()
except:
connection.rollback()
if registersuccessentry.get() != '':
registersuccessentry.delete('0', 'end')
registersuccessentry.insert('0', '注册失败!')
else:
registersuccessentry.insert('0', '注册失败!')
else:
tkinter.messagebox.showerror(message="两次输入的密码不相同!")
def registerlogin():
managerindex()
studentregister = Toplevel()
x, y = window_info(studentregister)
studentregister.title('学生信息管理系统')
studentregister.geometry("415x295+%d+%d" % (x, y))
studentregister['bg'] = 'dodgerblue'
labelname = tkinter.Label(studentregister, text='注册学生信息管理系统', bg='dodgerblue', font=("楷体", 20))
labelname.place(x=60, y=30, width=300, height=40)
labelName = tkinter.Label(studentregister, text="账 号:", bg='dodgerblue', width=80)
labelName.place(x=115, y=110, width=80, height=20)
userentry = tkinter.Entry(studentregister, width=80)
userentry.place(x=210, y=110, width=80, height=20)
labelPwd = tkinter.Label(studentregister, text="密 码:", bg='dodgerblue', width=80)
labelPwd.place(x=115, y=135, width=80, height=20)
pwdentry = tkinter.Entry(studentregister, width=80)
pwdentry.place(x=210, y=135, width=80, height=20)
labelPwd = tkinter.Label(studentregister, text="确认密码:", bg='dodgerblue', width=80)
labelPwd.place(x=115, y=160, width=80, height=20)
confirmpwdentry = tkinter.Entry(studentregister, width=80)
confirmpwdentry.place(x=210, y=160, width=80, height=20)
registersuccessentry = tkinter.Entry(studentregister, width=80)
registersuccessentry.place(x=125, y=190, width=165, height=20)
bottonCancel = tkinter.Button(studentregister, text='注册', command=loginregister, bg='dodgerblue')
bottonCancel.place(x=225, y=230, width=70, height=30)
studentregister.mainloop()
manager = Toplevel()
manager.title(' 管理员端')
x, y = window_info(manager)
manager.geometry("415x295+%d+%d" % (x, y))
manager['bg'] = 'dodgerblue'
varLoginName = tkinter.StringVar()
varLoginPwd = tkinter.StringVar()
labelname = tkinter.Label(manager, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18))
labelname.place(x=60, y=30, width=300, height=40)
labelName = tkinter.Label(manager, text="账 号:", justify=tkinter.RIGHT, bg='dodgerblue', width=80)
labelName.place(x=110, y=110, width=80, height=20)
labelPwd = tkinter.Label(manager, text="密 码:", justify=tkinter.RIGHT, bg='dodgerblue', width=80)
labelPwd.place(x=110, y=135, width=80, height=20)
entryName = tkinter.Entry(manager, width=80, textvariable=varLoginName)
entryName.place(x=210, y=110, width=80, height=20)
entryPwd = tkinter.Entry(manager, show='*', width=80, textvariable=varLoginPwd)
entryPwd.place(x=210, y=135, width=80, height=20)
bottonOk = tkinter.Button(manager, text="登录", command=login, bg='dodgerblue')
bottonOk.place(x=125, y=170, width=70, height=30)
bottonCancel = tkinter.Button(manager, text='注册', command=forregister, bg='dodgerblue')
bottonCancel.place(x=225, y=170, width=70, height=30)
manager.mainloop()
def studentlogin():
def forstudentregister():
def loginregister():
if pwdentry.get() == '' or confirmpwdentry.get == '':
tkinter.messagebox.showerror(message="请输入账号密码!")
elif pwdentry.get() == confirmpwdentry.get():
connection = conn()
cursor = cur(connection)
try:
sqlpwd = "update student set loginpwd = %s where sno = %s"
cursor.execute(sqlpwd, ( pwdentry.get(),userentry.get()))
connection.commit()
if registersuccessentry.get() != '':
registersuccessentry.delete('0', 'end')
registersuccessentry.insert('0', '注册成功!')
else:
registersuccessentry.insert('0', '注册成功!')
bottonOk = tkinter.Button(studentregister, text="立即登录", command=registerlogin, bg='dodgerblue')
bottonOk.place(x=125, y=230, width=70, height=30)
except:
connection.rollback()
if registersuccessentry.get() != '':
registersuccessentry.delete('0', 'end')
registersuccessentry.insert('0', '注册失败!')
else:
registersuccessentry.insert('0', '注册失败!')
else:
tkinter.messagebox.showerror(message="两次输入的密码不相同!")
return userentry.get()
def registerlogin():
studentindex(userentry.get())
studentregister = Toplevel()
x, y = window_info(studentregister)
studentregister.title('学生信息管理系统-注册')
studentregister.geometry("415x295+%d+%d" % (x, y))
studentregister['bg'] = 'dodgerblue'
labelname = tkinter.Label(studentregister, text='注册学生信息管理系统', bg='dodgerblue', font=("楷体", 20))
labelname.place(x=60, y=30, width=300, height=40)
labelName = tkinter.Label(studentregister, text="学 号:", bg='dodgerblue', width=80)
labelName.place(x=115, y=110, width=80, height=20)
userentry = tkinter.Entry(studentregister, width=80)
userentry.place(x=210, y=110, width=80, height=20)
labelPwd = tkinter.Label(studentregister, text="密 码:", bg='dodgerblue', width=80)
labelPwd.place(x=115, y=135, width=80, height=20)
pwdentry = tkinter.Entry(studentregister, width=80)
pwdentry.place(x=210, y=135, width=80, height=20)
labelPwd = tkinter.Label(studentregister, text="确认密码:", bg='dodgerblue', width=80)
labelPwd.place(x=115, y=160, width=80, height=20)
confirmpwdentry = tkinter.Entry(studentregister, width=80)
confirmpwdentry.place(x=210, y=160, width=80, height=20)
registersuccessentry = tkinter.Entry(studentregister, width=80)
registersuccessentry.place(x=125, y=190, width=165, height=20)
bottonCancel = tkinter.Button(studentregister, text='注册', command=loginregister, bg='dodgerblue')
bottonCancel.place(x=225, y=230, width=70, height=30)
studentregister.mainloop()
def studentindex(name):
loginingno=name
print('sdfsdffds')
def showinfor():
def show():
if textshowinformation.get('1.0', 'end') != '':
textshowinformation.delete('1.0', 'end')
else:
print(loginingno)
print('swj')
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student where sno=%s', (loginingno))
data = list(cursor.fetchone())
textshowinformation.insert('insert', "学生姓名:" + data[0]
+ "\n" + "年龄:" + data[1]
+ "\n" + "学号" + data[2]
+ "\n" + "班级:" + data[3] + "\n\n")
connection.commit()
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from student where sno=%s', (loginingno))
data = list(cursor.fetchone())
textshowinformation.insert('insert', "学生姓名:" + data[0]
+ "\n" + "年龄:" + data[1]
+ "\n" + "学号" + data[2]
+ "\n" + "班级:" + data[3] + "\n\n")
connection.commit()
except:
connection.rollback()
connection.close()
cursor.close
def showinforcancel():
textshowinformation.delete('1.0', 'end')
showinformation = Toplevel()
showinformation.title('查询学籍信息')
x, y = window_info(showinformation)
showinformation.geometry("415x295+%d+%d" % (x, y))
showinformation['bg'] = 'dodgerblue'
labelname = tkinter.Label(showinformation, text='查询学籍信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(showinformation, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshowinformation = tkinter.scrolledtext.ScrolledText(showinformation, width=60, height=9)
textshowinformation.place(x=5, y=80)
buttoncancel = tkinter.Button(showinformation, text="清空", command=showinforcancel)
buttoncancel.place(x=5, y=210, width=50, height=20)
showinformation.mainloop()
def findcourseinfor():
def show():
if textshow.get('1.0', 'end') != '':
textshow.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from course')
data = list(cursor.fetchall())
textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from course')
data = list(cursor.fetchall())
textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def searchallcancel():
textshow.delete('1.0', 'end')
findall = Toplevel()
findall.title('查询课程信息')
x, y = window_info(findall)
findall.geometry("520x295+%d+%d" % (x, y))
findall['bg'] = 'dodgerblue'
labelname = tkinter.Label(findall, text='查询所有课程信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(findall, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9)
textshow.place(x=5, y=80)
buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel)
buttoncancel.place(x=5, y=210, width=50, height=20)
findall.mainloop()
def selectcourse():
def show():
if textshow.get('1.0', 'end') != '':
textshow.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from course')
data = list(cursor.fetchall())
textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select * from course')
data = list(cursor.fetchall())
textshow.insert('insert', "课程号:\t\t\t课程名:\t\t\t教师编号:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def searchallcancel():
textshow.delete('1.0', 'end')
def select():
connection = conn()
cursor = cur(connection)
try:
cursor.execute('insert into sc values(%s,%s)',
(loginingno, entrysearchone.get()))
connection.commit()
except:
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '选课失败!')
else:
addsuccessentry.insert('0', '选课失败!')
connection.rollback()
connection.close()
cursor.close
if addsuccessentry.get() != '':
addsuccessentry.delete('0', 'end')
addsuccessentry.insert('0', '选课成功!')
else:
addsuccessentry.insert('0', '选课成功!')
def addcancel():
entrysearchone.delete('0', 'end')
addsuccessentry.delete('0', 'end')
findall = Toplevel()
findall.title('学生选课')
x, y = window_info(findall)
findall.geometry("520x325+%d+%d" % (x, y))
findall['bg'] = 'dodgerblue'
labelname = tkinter.Label(findall, text='查询所有课程信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(findall, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshow = tkinter.scrolledtext.ScrolledText(findall, width=75, height=9)
textshow.place(x=5, y=80)
labelname = tkinter.Label(findall, text='请输入课程编号:', bg='dodgerblue')
labelname.place(x=5, y=210, width=100, height=20)
entrysearchone = tkinter.Entry(findall, width=200)
entrysearchone.place(x=5, y=240, width=150, height=20)
addsuccessentry = tkinter.Entry(findall, width=200)
addsuccessentry.place(x=5, y=270, width=75, height=20)
buttoncancel = tkinter.Button(findall, text="选择", command=select)
buttoncancel.place(x=5, y=300, width=50, height=20)
buttoncancel = tkinter.Button(findall, text="重置", command=addcancel)
buttoncancel.place(x=105, y=300, width=50, height=20)
findall.mainloop()
def findselectcourseinfor():
def show():
print('swj')
if textshow.get('1.0', 'end') != '':
textshow.delete('1.0', 'end')
else:
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select sno,sname,sclass,cno,cname from student,course where student.sno=sc.sno and course.cno=sc.cno and sno=%s',(loginingno))
data = list(cursor.fetchall())
textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
connection = conn()
cursor = cur(connection)
try:
cursor.execute('select sc.sno,sname,sclass,sc.cno,course.cname from student,course,sc where student.sno=sc.sno and course.cno=sc.cno and sc.sno=%s',(loginingno))
data = list(cursor.fetchall())
textshow.insert('insert', "学号:\t\t姓名:\t\t班级:\t\t课程编号:\t\t课程名:")
textshow.insert('insert', "\n")
for i in data:
print(i)
textshow.insert('insert', '\t\t'.join(i))
textshow.insert('insert', "\n")
except:
connection.rollback()
connection.close()
cursor.close
def searchallcancel():
textshow.delete('1.0', 'end')
findall = Toplevel()
findall.title('查询选课信息')
x, y = window_info(findall)
findall.geometry("520x295+%d+%d" % (x, y))
findall['bg'] = 'dodgerblue'
labelname = tkinter.Label(findall, text='查询选课信息?', bg='dodgerblue')
labelname.place(x=5, y=20, width=100, height=20)
buttonshow = tkinter.Button(findall, text="确定", command=show)
buttonshow.place(x=5, y=50, width=50, height=20)
textshow = tkinter.scrolledtext.ScrolledText(findall, width=105, height=9)
textshow.place(x=5, y=80)
buttoncancel = tkinter.Button(findall, text="清空", command=searchallcancel)
buttoncancel.place(x=5, y=210, width=50, height=20)
findall.mainloop()
print(3)
indexofstudent = Toplevel()
indexofstudent.title('学生信息管理系统-学生')
x, y = window_info(indexofstudent)
indexofstudent.geometry("430x425+%d+%d" % (x, y))
indexofstudent['bg'] = 'dodgerblue'
labelname = tkinter.Label(indexofstudent, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 20))
labelname.place(x=60, y=30, width=350, height=40)
buttonadd = tkinter.Button(indexofstudent, text="查询学籍信息", command=showinfor)
buttonadd.place(x=150, y=90, width=100, height=40)
buttonadd = tkinter.Button(indexofstudent, text="查询课程信息", command=findcourseinfor)
buttonadd.place(x=150, y=140, width=100, height=40)
buttonadd = tkinter.Button(indexofstudent, text="选 课", command=selectcourse)
buttonadd.place(x=150, y=190, width=100, height=40)
buttonadd = tkinter.Button(indexofstudent, text="查询选课信息", command=findselectcourseinfor)
buttonadd.place(x=150, y=240, width=100, height=40)
buttonadd = tkinter.Button(indexofstudent, text="退出系统", command=exitsys)
buttonadd.place(x=150, y=290, width=100, height=40)
indexofstudent.mainloop()
def login():
name = entryName.get()
pwd = entryPwd.get()
connection = conn()
cursor = cur(connection)
cursor.execute('select * from student')
data = list(cursor.fetchall())
print(data)
if data == []:
tkinter.messagebox.showerror(message="账号或密码错误!")
return 0
for i in data:
print(i[2])
print(i[4])
if i[2] == name and i[4] == pwd:
studentindex(name)
student = Toplevel()
student.title(' 登录-学生端')
x, y = window_info(student)
student.geometry("415x295+%d+%d" % (x, y))
student['bg'] = 'dodgerblue'
labelname = tkinter.Label(student, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18))
labelname.place(x=60, y=30, width=300, height=40)
labelName = tkinter.Label(student, text="学 号:", bg='dodgerblue', width=80)
labelName.place(x=110, y=110, width=80, height=20)
labelPwd = tkinter.Label(student, text="密 码:", bg='dodgerblue', width=80)
labelPwd.place(x=110, y=135, width=80, height=20)
entryName = tkinter.Entry(student, width=80, textvariable=varLoginName)
entryName.place(x=210, y=110, width=80, height=20)
entryPwd = tkinter.Entry(student, show='*', width=80, textvariable=varLoginPwd)
entryPwd.place(x=210, y=135, width=80, height=20)
bottonOk = tkinter.Button(student, text="登录", command=login, bg='dodgerblue')
bottonOk.place(x=125, y=170, width=70, height=30)
bottonCancel = tkinter.Button(student, text='注册', command=forstudentregister, bg='dodgerblue')
bottonCancel.place(x=225, y=170, width=70, height=30)
student.mainloop()
root=tkinter.Tk(className=' 学生信息管理系统')
x,y=window_info(root)
root.geometry("415x295+%d+%d"%(x,y))
root['bg']='dodgerblue'
varLoginName=tkinter.StringVar()
varLoginPwd=tkinter.StringVar()
labelname = tkinter.Label(root, text='欢迎使用学生信息管理系统', bg='dodgerblue', font=("楷体", 18))
labelname.place(x=60, y=30, width=300, height=40)
bottonOk=tkinter.Button(root,text="学生登录",command=studentlogin,bg='dodgerblue')
bottonOk.place(x=150,y=140,width=100,height=40)
bottonCancel=tkinter.Button(root,text='管理员登录',command=teacherlogin,bg='dodgerblue')
bottonCancel.place(x=150,y=200,width=100,height=40)
def createdatabase():
conn = pymysql.connect("localhost", "root", "root")
cur = conn.cursor()
cur.execute('create database if not exists sch')
def createtable():
connection = conn()
cursor = cur(connection)
sqlstudent="""create table if not exists student(
sname char(45) not null,
sage char(45),
sno char(45) primary key,
sclass char(45),
loginpwd char(45)
)engine=innodb"""
cursor.execute(sqlstudent)
sqllogin="""create table if not exists login(
user char(45)primary key,
password char(45) not null
)engine=innodb"""
cursor.execute(sqllogin)
connection.commit()
cursor.execute("""insert into login(user,password) values('user','pwd')""")
connection.commit()
sqlteacher="""create table if not exists teacher(
tno char(45) primary key,
tname char(45)
)engine=innodb"""
cursor.execute(sqlteacher)
connection.commit()
sqlcourse="""create table if not exists course(
cno char(45) ,
cname char(45),
tno char(45),
constraint pk_course primary key (cno,tno)
)engine=innodb"""
cursor.execute(sqlcourse)
connection.commit()
sqlsc="""create table if not exists sc(
sno char(45),
cno char(45),
constraint pk_sc primary key (sno,cno)
)engine=innodb"""
cursor.execute(sqlsc)
connection.commit()
createdatabase()
createtable()
root.mainloop()
来源:https://blog.csdn.net/qq_37961868/article/details/85269573


猜你喜欢
- 如下所示:import serialimport timet = serial.Serial('com6', 115200)
- 数据存储·在javascript中,数据存储的位置会对代码整体性能产生重大的影响。·数据存储共有4种方式:字面量、变量、数组、对象成员。·要
- 1.背景项目需求,要求获得github的repo的api,以便可以提取repo的数据进行分析。研究了一天,终于解决了这个问题,虽然效率还是比
- 本文实例主要是Python中获取当前运行函数的名称,具体如下。python 具有强大的自省能力,在函数运行时,可以在函数内部获取到当前所在的
- bootstrap里面有个激活按钮的时候,按钮变成不可用的;按照官网里面的方法介绍是在button按钮加个 data-loading-tex
- 条件1、能够上网2、必须是你的好友3、必须能二维码登录网页微信发送示例# 使用微信接口给微信好友发送消息,import itchat&nbs
- 在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Inter
- 英国著名学者李约瑟早在100多年前就疑惑:为什么中国的科技在唐宋时代就已领先西方,却在明清时代落后下来。对此,人们一向认为这主要是儒家思想的
- 本文实例讲述了原生JS实现Ajax通过GET方式与PHP进行交互操作。分享给大家供大家参考,具体如下:一、代码conn.php<?ph
- 安装完MySQL以后会自动创建一个root用户和一个匿名用户,对于root大家都非常注意,而这个匿名用户很多人都会忽略,大概是因为匿名用户默
- 本文主要介绍了OpenCV 图像对比度,具有一定的参考价值,感兴趣的可以了解一下实现原理图像对比度指的是一幅图像中明暗区域最亮的白和最暗的黑
- 前言很多中后台业务的系统中,表格是最高频的组件之一,其中一般包括搜索条件、表格展示、表格操作列、分页等。那么我们二次封装的这个表格组件就需要
- 一、中间件的基本使用在web开发中,中间件起着很重要的作用。比如,身份验证、权限认证、日志记录等。以下就是各框架对中间件的基本使用。1.1
- 本文实例为大家分享了python实现人民币转大写人民币的具体代码,供大家参考,具体内容如下直接上代码:# -*- coding: utf-8
- 前段时间由于收集视频数据的需要,自己捣鼓了一个YouKu视频批量下载的程序。东西虽然简单,但还挺实用的,拿出来分享给大家。版本:Python
- SELECT表名=case when a.colorder=1 then d.name else '' end,表说明=ca
- Introduction简介So what is POSH? No, it's not just some new clothing
- 尽管有很多规范URL的标准,例如RFC 3987,但实际应用中却非常混乱。本文主要介绍浏览器发送URL到服务器的一些特性,作为开发和应用的参
- python爬虫--爬取网易云音乐评论方1:使用selenium模块,简单粗暴。但是虽然方便但是缺点也是很明显,运行慢等等等。方
- Keras的模型是用hdf5存储的,如果想要查看模型,keras提供了get_weights的函数可以查看:for layer in mod