[Python] 学生信息管理系统 总结

[Python] 学生信息管理系统 总结

  1. 需求分析:学生信息管理系统的功能
    在这里插入图片描述

  2. 模块调用:

    1. 总体展示

      def menu():  # 菜单显示
          pass
      def main():  # 主程序
          pass
      def insert():  # 插入学生信息
          pass
      def save(lst):  # 保存学生信息
          pass
      def search():  # 查找学生信息:支持id和姓名查找
          pass
      def delete():  # 删除学生信息
          pass
      def modify():  # 修改学生细信息
          pass
      def sort():  # 可选择不同学科对信息进行排序
          pass
      def total():  # 统计学生总人数
          pass
      def show():  # 展示学生信息
          pass
      def show_student(file):  # 展示学生信息核心部件
          pass
      
    2. 菜单

      def menu():  # 菜单
          print('=============================学生信息管理系统=============================')
          print('---------------------------------功能菜单--------------------------------')
          print('\t\t\t   1.录入学生信息')
          print('\t\t\t   2.查找学生信息')
          print('\t\t\t   3.删除学生信息')
          print('\t\t\t   4.修改学生信息')
          print('\t\t\t   5.排序')
          print('\t\t\t   6.统计学生总人数')
          print('\t\t\t   7.显示所有学生信息')
          print('\t\t\t   0.退出系统')
          print('\t\t\t   提示:本程序默认文件保存为.txt类型,无需输入后缀名')
      
    3. 主程序

      def main():  # 主程序
          while True:
              menu()
              choice = int(input('请输入你的选择(0-7):'))
              if choice in [0, 1, 2, 3, 4, 5, 6, 7]:
                  if choice == 0:
                      choose = input('输入q退出:')
                      if choose == 'q':
                          print('感谢使用!')
                          break
                      else:
                          continue
                  else:
                      if choice == 1:
                          insert()
                      elif choice == 2:
                          search()
                      elif choice == 3:
                          delete()
                      elif choice == 4:
                          modify()
                      elif choice == 5:
                          sort()
                      elif choice == 6:
                          total()
                      else:
                          show()
              else:
                  print('您的输入有误,请再次输入您的信息')
                  continue
      
    4. 插入

      def insert():  # 插入信息
          students_list = []
          while True:  # 循环输入
              Id = input('请输入Id:')
              if not Id:  # 防止手滑
                  print('Id有误')
                  break
              Name = input('请输入名字:')
              if not Name:
                  print('姓名有误')
                  break
      
              try:
                  English = int(input('请输入英语成绩:'))
                  Python = int(input('请输入Python成绩:'))
                  Java = int(input('请输入Java成绩:'))
              except:
                  print('输入有误,不是有效整数,请重新输入')
                  continue
              # 将录入的成绩存储到字典中
              student = {
             'Id': Id, 'Name': Name, 'English': English, 'Python': Python, 'Java': Java,
                         'Total': English + Python + Java}
              # 将录入的成绩保存到列表中
              students_list.append(student)  # 将字典保存到列表中
              answer = input('继续录入请输入Y/y:')
              if answer in ['Y', 'y']:
                  continue
              else:
                  save(students_list)
                  break
      
    5. 保存

      def save(lst):  # 保存
          fileName = input('请输入保存的文件名:') + '.txt'  # 文件名
          file = open(fileName, 'a', encoding='utf-8')  # 打开文件
          while not file:
              fileName = input('创建文件名失败,请重新输入:') + '.txt'
              file = open(fileName, 'a', encoding='utf-8')
          for item in lst:
              file.write(str(item) + '\n')  # 将内容写入文件中
          file.close()  # 关闭文件
          print('学生信息录入完毕')
      
    6. 搜索

      def search():  # 搜索
          fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt'  # 文件名
          if os.path.exists(fileName_new):  # 如果可以打开文件
              with open(fileName_new, 'r', encoding='utf-8') as readfile:  # 上下文管理器
                  file = readfile.readlines()  # 读取信息
                  if not file:  # 如果为空
                      print('无学生信息')
                      return
                  else:  # 不为空
                      while True:  # 重复查找
                          show_student(file)  # 先展示下所有信息
                          Id = ''  # 默认化
                          Name = ''
                          mode = input('Id查找请输入1 姓名查找请输入2:')  # 通过选项影响先前默认化的变量
                          if mode == '1':
                              Id = input('请输入要查找学生的Id:')
                              if not Id:
                                  print('您输入的Id有误请重新输入')
                                  continue
                          elif mode == '2':
                              Name = input('请输入要查找学生的姓名:')
                              if not Name:
                                  print('您输入的姓名有误请重新输入')
                                  continue
                          else:
                              print('您的输入有误,请重新输入')
                              continue
                          if Id != '':
                              for item in file:
                                  d = dict(eval(item))
                                  if d['Id'] == Id:
                                      print(format_title.format('Id', 'Name', 'English', 'Python', 'Java', 'Total'))
                                      print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'],
                                                                d['Total']))
                          elif Name != '':
                              for item in 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值