小言_互联网的博客

Python 学生信息管理系统

533人阅读  评论(0)

递归实现

  1、有五个学⽣坐在⼀起,问第五个⼈多少岁?答⽐第四个⼤ 2 岁,第四个⼈说它⽐第三个⼈⼤ 2 岁, ,... 第⼀个⼈说他 10 岁。请写⼀个递归函数计算第 5 个学⽣多少岁

   
  1. def age(num):
  2. if num == 1:
  3. return 10
  4. return age(num -1) + 2
  5. print(age( 5)) 结果 18
  2、某班期末考试科⽬为数学和计算机,有最多不超过 30 ⼈参加考试。学⽣的信息包括学号、姓名。
考试后要求:
1 )计算每个学⽣的总分和平均分;
2 )按总分 成绩由⾼到低排出成绩的名次;
3 )打印出名次表,表格内包括学⽣姓名、学 号、各科分数、总分和平均分;
4 )任意输⼊⼀个学号,能够查找出该学⽣在班级中的排名及其考试分数
编写要求:
  (1) 要对⽤户输⼊进⾏验证,如果输⼊的不是 0-4 显示错误,然后继续输⼊
  (2) 要能够连续不断的进⾏选择
  (3) 每⼀项功能都要封装函数完成,函数单独放 到⼀个模块中
  (4) 菜单及其⽤户选择的处理放到主模块中。
  (5) 学⽣数据保存到⽂件
 
主程序文件 index.py

   
  1. student = []
  2. from menu import menu,user_choice,show_over
  3. from Input import inf_input,stu_sort,inf_output,inf_index
  4. def main():
  5. while True:
  6. menu()
  7. choice = user_choice()
  8. if choice == 0:
  9. show_over()
  10. if choice == 1:
  11. inf_input(student, 3)
  12. if choice == 2:
  13. inf_output(student)
  14. if choice == 3:
  15. stu_sort(student)
  16. inf_index(student)
  17. if choice == 4:
  18. stu_sort(student)
  19. inf_output(student)
  20. if __name__ == '__main__':
  21. main()

实现0-4函数功能文件 Input.py


   
  1. def inf_input(student,num):
  2. """
  3. :param student: 存放学生信息的列表
  4. :param num: 学生的个数
  5. :return: 无
  6. """
  7. for i in range(num):
  8. student2 = {}
  9. student1 = input( f"请输⼊第{i+1}个学⽣的信息(按姓名、学号、数学成绩、计算机成绩输⼊,空格隔开):").split( " ")
  10. student2[ '姓名'] = student1[ 0]
  11. student2[ '学号'] = student1[ 1]
  12. student2[ '数学成绩'] = float(student1[ 2])
  13. student2[ '计算机成绩'] = float(student1[ 3])
  14. student2[ '总成绩'] = float(student1[ 2]) + float(student1[ 3])
  15. student2[ '平均成绩'] = (float(student1[ 2]) + float(student1[ 3])) / 2
  16. student.append(student2)
  17. def stu_sort(student):
  18. """
  19. :param student: 学生信息列表
  20. :return: 无
  21. """
  22. student.sort(key= lambda student:student[ '总成绩'],reverse= True)
  23. def inf_output(student):
  24. """
  25. 输出学生信息
  26. :param student:
  27. :return:
  28. """
  29. fm1 = "{:^10}\t{:^10}\t{:<10}\t{:<10}\t{:<10}\t{:<10}"
  30. fm2 = "{:^10}\t{:^10}\t{:^10}\t{:^14}\t{:^12}\t{:^14}"
  31. f2 = fm1.format( "姓名", "学号", "数学成绩", "计算机成绩", "总成绩", "平均成绩")
  32. print(f2)
  33. for i in range(len(student)):
  34. print(fm2.format(student[i][ '姓名'],
  35. student[i][ '学号'],
  36. student[i][ '数学成绩'],
  37. student[i][ '计算机成绩'],
  38. student[i][ '总成绩'],
  39. student[i][ '平均成绩']))
  40. def inf_index(student):
  41. """
  42. 按学号查找学生信息
  43. :param student:
  44. :return:
  45. """
  46. fm1 = "{:^10}{:^10}\t{:^10}\t{:<10}\t{:<10}\t{:<10}\t{:<10}"
  47. fm2 = "{:^10}\t{:^10}\t{:^10}\t{:^10}\t{:^14}\t{:^12}\t{:^14}"
  48. ID = input( "请输入你要查询的学号:")
  49. for i in range(len(student)):
  50. if ID == student[i][ '学号']:
  51. print(fm1.format( "名次", "姓名", "学号", "数学成绩", "计算机成绩", "总成绩", "平均成绩"))
  52. stu = fm2.format(i+ 1, student[i][ '姓名'],
  53. student[i][ '学号'],
  54. student[i][ '数学成绩'],
  55. student[i][ '计算机成绩'],
  56. student[i][ '总成绩'],
  57. student[i][ '平均成绩'])
  58. print( "查询成功,该学生的信息为:")
  59. print(stu)
  60. break
  61. else:
  62. print( "没有该学生的信息")
  63. if __name__ == '__main__': # 只在本模块调用
  64. student = []
  65. inf_input( 3)

用户界面 menu.py


   
  1. def menu():
  2. print( """
  3. =====欢迎使用学生信息管理系统====
  4. [1] 学生信息输入
  5. [2] 学生信息输出
  6. [3] 查找学生信息
  7. [4] 成绩排序
  8. [0] 退出
  9. """)
  10. def user_choice():
  11. while True:
  12. choice = int(input( "请输入你的选择:"))
  13. if choice < 0 or choice > 4:
  14. print( "请输入正确的选项")
  15. else:
  16. return choice
  17. def show_over():
  18. print( "="* 30)
  19. print( "\t\t感谢你的使用")
  20. print( "="* 30)
  21. exit( 0)

执行结果

 

 


转载:https://blog.csdn.net/c727657851/article/details/106479565
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场