python tkinter实现学生信息管理系统
本文实例为大家分享了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()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
上一篇:Go语言线程安全之互斥锁与读写锁
下一篇:Go语言单元测试超详细解析
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?

