You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

389 lines
16 KiB

import pymysql
# 连接数据库
db = pymysql.connect(host="localhost", port=3306, user="root", password="xieyuxin1810", database="studentinfo")
cursor = db.cursor()
# 录入学生信息包括学号、姓名、英语成绩、python成绩、数学成绩、总成绩
def input_info():
stu_id = input("请输入学生学号如202001")
sql = "select * from stu_info where stu_id= %s "
cursor.execute(sql, stu_id)
rs = cursor.fetchall()
if len(rs) > 0:
print("学号已存在,请重新输入")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
input_info()
else:
return
stu_name = input("请输入学生姓名:")
stu_score_eng = int(input("请输入学生英语成绩:"))
stu_score_py = int(input("请输入学生python成绩"))
stu_score_math = int(input("请输入学生数学成绩:"))
if len(rs) == 0:
sql = " insert into stu_info (stu_id,stu_name,stu_score_eng,stu_score_py,stu_score_math,stu_sum_score) values (%s,%s,%s,%s,%s,%s) "
cursor.execute(sql, (stu_id, stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_score_eng+stu_score_py+stu_score_math))
db.commit()
print("信息录入完毕!!")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
input_info()
else:
return
# 查询学生信息:查询时分为按学号和按姓名查找两种
def find_info():
find = int(input("按学号查找请输入1按姓名查找请输入2"))
if find == 1:
stu_id = input("请输入学号:")
sql = "select * from stu_info where stu_id= %s "
cursor.execute(sql, stu_id)
rs = cursor.fetchall()
if len(rs) == 0:
print("学号不存在,请重新输入")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
find_info()
else:
return
else:
sql = " select stu_id,stu_name,stu_score_eng,stu_score_py,stu_score_math,stu_sum_score from stu_info where stu_id=%s"
cursor.execute(sql, stu_id)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0]))
print("姓名:%s" % (info[1]))
print("英语成绩:%s" % (info[2]))
print("python成绩:%s" % (info[3]))
print("数学成绩:%s" % (info[4]))
print("总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
find_info()
else:
return
elif find == 2:
stu_name = input("请输入姓名:")
sql = "select * from stu_info where stu_name= %s "
cursor.execute(sql, stu_name)
rs = cursor.fetchall()
if len(rs) == 0:
print("姓名不存在,请重新输入")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
find_info()
else:
return
else:
sql = " select stu_id,stu_name,stu_score_eng,stu_score_py,stu_score_math ,stu_sum_score from stu_info where stu_name=%s"
cursor.execute(sql, stu_name)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0]))
print("姓名:%s" % (info[1]))
print("英语成绩:%s" % (info[2]))
print("python成绩:%s" % (info[3]))
print("数学成绩:%s" % (info[4]))
print("总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
find_info()
else:
return
db.commit()
# 删除学生信息:输入学号进行查找,查找到学生信息之后,对学生信息进行删除
def del_info():
stu_id = input("请输入要删除的学生的学号:")
sql = "select * from stu_info where stu_id= %s "
cursor.execute(sql, stu_id)
rs = cursor.fetchall()
if len(rs) > 0:
sql = "delete from stu_info where stu_id= %s "
cursor.execute(sql, stu_id)
print("学号为%s的学生信息已被删除!!" % stu_id)
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
del_info()
else:
return
else:
print("无此学生信息,请核对后再操作!!")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
del_info()
else:
return
db.commit()
# 修改学生信息:输入学号后,查询到学生信息之后,对学生信息进行修改
def mod_info():
stu_id = input("请输入要修改的学生学号:")
sql = "select * from stu_info where stu_id= %s "
cursor.execute(sql, stu_id)
rs = cursor.fetchall()
if len(rs) > 0:
print("已找到学生,请修改信息!")
stu_name = input("请输入姓名:")
stu_score_eng = int(input("请输入英语成绩:"))
stu_score_py = int(input("请输入python成绩"))
stu_score_math = int(input("请输入数学成绩:"))
sql = "update stu_info set stu_name = %s, stu_score_eng = %s, stu_score_py = %s, stu_score_math = %s,stu_sum_score=%s where stu_id = %s "
cursor.execute(sql, (stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_score_eng+stu_score_py+stu_score_math, stu_id))
db.commit()
print("学号为%s的学生信息已修改!!" % stu_id)
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
mod_info()
else:
return
else:
print("无此学生信息,请核对后再操作!!")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
mod_info()
else:
return
# 排序学生信息排序的方式可选择升序和降序可选择按英语、python、数学成绩以及总成绩进行排序
def sort_info():
sub = int(input("1.按英语成绩排序\n"
"2.按python成绩排序\n"
"3.按数学成绩排序\n"
"4.按学生总成绩排序\n"
"请选择学科:"))
if sub == 1:
order = int(input("1.升序\n"
"2.降序\n"
"请输入排序方式:"))
if order == 1:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info order by stu_score_eng asc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif order == 2:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info order by stu_score_eng desc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif sub == 2:
order = int(input("1.升序\n"
"2.降序\n"
"请输入排序方式:"))
if order == 1:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info order by stu_score_py asc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif order == 2:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info order by stu_score_py desc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif sub == 3:
order = int(input("1.升序\n"
"2.降序\n"
"请输入排序方式:"))
if order == 1:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math ,stu_sum_score from stu_info order by stu_score_math asc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif order == 2:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info order by stu_score_math desc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif sub == 4:
order = int(input("1.升序\n"
"2.降序\n"
"请输入排序方式:"))
if order == 1:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math," \
"stu_sum_score " \
"from stu_info order by sumSore asc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
elif order == 2:
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math," \
"stu_sum_score " \
"from stu_info order by sumSore asc "
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
else:
print("请输入以上选项")
go = input("是否进行继续输入,输入Y继续")
if go == "Y":
sort_info()
else:
return
# 统计学生总数
# 输出信息管理系统中有几个学生的信息
def sum_info():
sql = "select * from stu_info"
cursor.execute(sql)
rs = cursor.fetchall()
print("一共有%s名学生。" % len(rs))
# 显示学生信息
def show_info():
sql = "select stu_id,stu_name, stu_score_eng, stu_score_py, stu_score_math,stu_sum_score from stu_info"
cursor.execute(sql)
rs = cursor.fetchall()
for info in rs:
print("学号:%s" % (info[0])
+ "-" + "姓名:%s" % (info[1])
+ "-" + "英语成绩:%s" % (info[2])
+ "-" + "python成绩:%s" % (info[3])
+ "-" + "数学成绩:%s" % (info[4])
+ "-" + "总成绩:%s" % (info[5]))
def show_choose():
print("==========================学生信息管理系统==========================")
print()
print("-----------------------------功能菜单-----------------------------")
print()
print(" 1.录入学生信息")
print(" 2.查找学生信息")
print(" 3.删除学生信息")
print(" 4.修改学生信息")
print(" 5.排序学生信息")
print(" 6.统计学生总数")
print(" 7.显示学生信息")
print(" 0.退出信息管理系统")
print()
print("----------------------------------------------------------------")
def main():
while True:
show_choose()
choose_menu = input("请选择功能菜单:")
if choose_menu == '0':
break
elif choose_menu == '1':
input_info()
elif choose_menu == '2':
find_info()
elif choose_menu == '3':
del_info()
elif choose_menu == '4':
mod_info()
elif choose_menu == '5':
sort_info()
elif choose_menu == '6':
sum_info()
elif choose_menu == '7':
show_info()
else:
break
print("欢迎您再次使用!!")
db.close()
if __name__ == '__main__':
main()