当前位置:   article > 正文

python学生成绩管理系统(附源码)_python学生成绩管理系统代码

python学生成绩管理系统代码

制作思路:

总共四个代码文件如下:

文件操作(file_manger)

学生界面(student)

进行数据加密(tools)

主界面(index)

具体文件请看文末


效果展示:


主要函数:

index中函数:

        register 账号密码规范函数

  1. def register():
  2. global teacher
  3. while True:
  4. teacher_name = input('请输入账号(3-6位):')
  5. if len(teacher_name) > 6 or len(teacher_name) < 3:
  6. print('账号不符合要求,请重新输入')
  7. else:
  8. break
  9. while True:
  10. password = input('请输入密码(6-12位)')
  11. if not 6 <= len(password) <= 12:
  12. print('密码不符合要求,请重新输入')
  13. else:
  14. break
  15. # 用户名密码账号密码都输入正确
  16. password = tools.encrypt_password(password)
  17. teacher[teacher_name] = password
  18. file_manger.write_json('data.json', teacher)

        login学生登陆函数:

  1. def login():
  2. m = file_manger.load_json('data.json')
  3. n = input('请输入需要登入的账号:')
  4. for i in m.keys():
  5. if n == i:
  6. y = input('请输入密码')
  7. y = tools.encrypt_password(y)
  8. if y == m[i]:
  9. print('登陆成功')
  10. while True:
  11. showmenu()
  12. x = input('请选择你需要操作的序号:')
  13. if x == '1':
  14. inserts()
  15. elif x == '2':
  16. removestu()
  17. elif x == '3':
  18. modstu()
  19. elif x == '4':
  20. chaxun()
  21. elif x == '5':
  22. showstu()
  23. elif x == '6':
  24. bao()
  25. elif x == '7':
  26. print('6.退出系统')
  27. print('欢迎下次使用该系统')
  28. break
  29. else:
  30. print('输入序号有误,请重新输入')
  31. continue
  32. input('....回车键继续操作....')
  33. sys.exit(0)
  34. else:
  35. print('密码输入错误')
  36. break
  37. else:
  38. print('账号输入错误')

        

     start主界面函数:

  1. def start():
  2. content = file_manger.read_files('welcome.txt')
  3. while True:
  4. operator = input(content + '\n请选择(1-3):')
  5. if operator == '1':
  6. print('登陆')
  7. login()
  8. elif operator == '2':
  9. print('注册')
  10. register()
  11. elif operator == '3':
  12. print('退出')
  13. # break 退出死循环
  14. # exit(0) 退出整个程序
  15. sys.exit(0)
  16. else:
  17. print('输入有误')
  18. input('请输入任意字符继续')

全代码:

index.py

  1. import file_manger
  2. import tools
  3. from student import *
  4. teacher = {}
  5. def register():
  6. global teacher
  7. while True:
  8. teacher_name = input('请输入账号(3-6位):')
  9. if len(teacher_name) > 6 or len(teacher_name) < 3:
  10. print('账号不符合要求,请重新输入')
  11. else:
  12. break
  13. while True:
  14. password = input('请输入密码(6-12位)')
  15. if not 6 <= len(password) <= 12:
  16. print('密码不符合要求,请重新输入')
  17. else:
  18. break
  19. # 用户名密码账号密码都输入正确
  20. password = tools.encrypt_password(password)
  21. teacher[teacher_name] = password
  22. file_manger.write_json('data.json', teacher)
  23. def login():
  24. m = file_manger.load_json('data.json')
  25. n = input('请输入需要登入的账号:')
  26. for i in m.keys():
  27. if n == i:
  28. y = input('请输入密码')
  29. y = tools.encrypt_password(y)
  30. if y == m[i]:
  31. print('登陆成功')
  32. while True:
  33. showmenu()
  34. x = input('请选择你需要操作的序号:')
  35. if x == '1':
  36. inserts()
  37. elif x == '2':
  38. removestu()
  39. elif x == '3':
  40. modstu()
  41. elif x == '4':
  42. chaxun()
  43. elif x == '5':
  44. showstu()
  45. elif x == '6':
  46. bao()
  47. elif x == '7':
  48. print('6.退出系统')
  49. print('欢迎下次使用该系统')
  50. break
  51. else:
  52. print('输入序号有误,请重新输入')
  53. continue
  54. input('....回车键继续操作....')
  55. sys.exit(0)
  56. else:
  57. print('密码输入错误')
  58. break
  59. else:
  60. print('账号输入错误')
  61. def start():
  62. content = file_manger.read_files('welcome.txt')
  63. while True:
  64. operator = input(content + '\n请选择(1-3):')
  65. if operator == '1':
  66. print('登陆')
  67. login()
  68. elif operator == '2':
  69. print('注册')
  70. register()
  71. elif operator == '3':
  72. print('退出')
  73. # break 退出死循环
  74. # exit(0) 退出整个程序
  75. sys.exit(0)
  76. else:
  77. print('输入有误')
  78. input('请输入任意字符继续')
  79. if __name__ == '__main__':
  80. start()

file_manger.py

  1. import json
  2. def read_files(file_name):
  3. try:
  4. with open(file_name, 'r', encoding='utf-8') as f:
  5. content = f.read()
  6. return content
  7. except FileExistsError:
  8. print('文件未找到')
  9. def write_json(file_name, data):
  10. with open(file_name, 'w', encoding='utf-8') as f:
  11. json.dump(data, f)
  12. def load_json(file_name):
  13. with open(file_name, 'r', encoding='utf-8') as f:
  14. return json.load(f)

tools.py

  1. import hashlib
  2. # 进行加密
  3. def encrypt_password(x):
  4. sha256 = hashlib.sha256(x.encode('utf-8'))
  5. x = sha256.hexdigest()
  6. return x

student.py

  1. import json
  2. import sys
  3. stulist = []
  4. def showmenu():
  5. print('♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥')
  6. print('---------------学生成绩管理系统--------------')
  7. print('---------------1.添加学生--------------------')
  8. print('---------------2.删除学生--------------------')
  9. print('---------------3.修改单个学生信息------------')
  10. print('---------------4.查询单个学生信息------------')
  11. print('---------------5.查询所有的学生信息----------')
  12. print('---------------6.保存所有的学生信息----------')
  13. print('---------------7.退出系统--------------------')
  14. print('♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥')
  15. def inserts(): # 添加学生信息
  16. name = input('请输入学生姓名:')
  17. for stu in stulist:
  18. if stu['name'] == name:
  19. print('学生信息存在')
  20. return
  21. age = input('请输入学生年龄:')
  22. sex = input('请输入学生性别:')
  23. stu = {'name': name, 'age': int(age), 'sex': sex}
  24. stulist.append(stu)
  25. print('学生信息添加完成')
  26. def showstu(): # 查询所有学生信息
  27. if len(stulist):
  28. for stu in stulist:
  29. print(f"性别:{stu['name']} 年龄:{stu['age']} 性别:{stu['sex']}")
  30. else:
  31. print('目前无学生信息')
  32. def removestu(): # 删除学生信息
  33. name = input('请输入学生姓名:')
  34. for stu in stulist:
  35. if stu['name'] == name:
  36. stulist.remove(stu)
  37. break
  38. else:
  39. print('学生信息不存在,无法删除')
  40. def modstu(): # 更改学生年龄
  41. name = input('请输入学生姓名:')
  42. for stu in stulist:
  43. if stu['name'] == name:
  44. stu['age'] = int(input('请输入新的年龄:'))
  45. break
  46. else:
  47. print('学生信息不存在,无法修改')
  48. def chaxun(): # 查看个人学生信息
  49. name = input('请输入需要查询的名字')
  50. for stu in stulist:
  51. if stu['name'] == name:
  52. print(f"性别:{stu['name']} 年龄:{stu['age']} 性别:{stu['sex']}")
  53. break
  54. else:
  55. print('目前无学生信息')
  56. def bao():
  57. with open(r'studentxinxi.json', 'w') as f:
  58. json.dump(stulist, f)
  59. if __name__ == '__main__':
  60. while True:
  61. showmenu()
  62. x = input('请选择你需要操作的序号:')
  63. if x == '1':
  64. inserts()
  65. elif x == '2':
  66. removestu()
  67. elif x == '3':
  68. modstu()
  69. elif x == '4':
  70. chaxun()
  71. elif x == '5':
  72. showstu()
  73. elif x == '6':
  74. bao()
  75. elif x == '7':
  76. print('7.退出系统')
  77. print('欢迎下次使用该系统')
  78. sys.exit(0)
  79. else:
  80. print('输入序号有误,请重新输入')
  81. continue
  82. input('....回车键继续操作....')

总文件夹格式:


总结:

结合了json文件保存学生信息以及教师的账号密码,以及两种端口,教师以及学生两个登入端口,打破了传统的初始化直接进入系统,同时也带注册功能,方便多人的登入以及管理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/204113
推荐阅读
相关标签
  

闽ICP备14008679号