精华内容
下载资源
问答
  • 学生信息管理系统总结
    千次阅读 热门讨论
    2019-02-13 09:56:51

    在“沉重的打击”中度过了我的验收,前两天刚“打击”完今天又来了一遍。这个说是打击,其实是自己在不够重视的情况下的产物。可以坦率的讲,就没有想把学生做的那么面面俱到,师父第一次验的还有自己加上去的问题大大小小有20个,时隔两天又验出10+错误。为什么会导致这么多错误呢?我也反思了一下,眼高手低了。以为不是特别难得东西被验的遍体鳞伤,终于看清了事实。脚踏实地,重新再战!想要做好一个软件并不简单,因此总结了几个方面:

    一、基础

    基础是尤为重要的。譬如窗口大小;输入框根据需要输入的东西而限制文字、数字、字母;以及提示框内容与图标等等。有许多基础性的东西我们经常要用到,所以对于一些基础性的东西要更加了熟于心。所以在师父的建议下查了许多的函数以及代码不懂得地方。发现整串瞬间就变得明朗了许多,大致明白了每一句里的过程都是如何的。当你对整个代码有了一定的认识,细节与逻辑便更加清晰了。

    二、细节

    有非常多的细节没有做到,千里之堤毁于蚁穴。有一些小的地方自己忽略掉了,然而被细心的师父们发现了。这是因为什么,这是懒惰思维带来的硬伤。以为是换位思考的结果。在我的潜意识里还认为只要做出来的东西能用就行。其实不然,你的每一次粗心大意,就会让用户对你的产品一点点的失去兴趣和消磨下次使用它的欲望。当这些点累积到一起的时候,用户将对你的产品彻底失去耐心。没有用户使用,那么设计出来的程序就是废品,还是不可回收的废品。墙上挂着的横幅:如果你设计的软件,猪不能使,你就是猪!这句话也是写的站在用户体验的角度上来评判设计的软件,话糙理不糙。

    三、逻辑

    逻辑思维,设计使用过程是需要逻辑思维的支撑的,显然在这方面我感觉现在是微乎其微的。不过通过师父的讲解让我明白了这其中的一些逻辑,这些就是打开设计逻辑的钥匙。万事开头难,慢慢的就入门了。比如一些登录窗体的逻辑,登录窗口是相对来说较为简单的窗体。但是在登录的时候,检验是否为空和检验是否重复是哪个在前哪个在后呢?这就是个简单的逻辑问题。还有时间逻辑,输入日期不能大于当前日期;入校日期不能小于出生日期等等。这些逻辑问题是我当时所没有考虑到的,用户体验极差。这是着重要注意的地方。

    四、界面

    界面设计的有问题,界面设计是一个软件的门面。都说第一印象很重要,设计的软件也是如此。假如我在第一眼看到这个软件第一个想法是真丑。我感觉除非他有极好用户体验,否则我是不会打开第二遍的。放到用户身上也是一样的,现在要转变一下思维。界面射界,留白,文字字体与大小,控件大小等。这都是需要注意的地方,师父们的讲解让我发现了许多未知的新大陆。突然又想起前一阵时间的分享活动,里面推荐的几个网站,可以多看看,提高一下审美能力。

    感想

    除了学生,师父对之后的计算机和英语学习都给出了不少的建议,我感觉师父们的建议都是十分中肯的,我也会按照师父的建议去做的。感谢师父们和小伙伴们的答疑解惑。在此项目中确实学到了不少东西。

    更多相关内容
  • [Python] 学生信息管理系统 总结

    千次阅读 2021-01-22 14:51:26
    [Python] 学生信息管理系统 总结 需求分析:学生信息管理系统的功能 模块调用: 总体展示 def menu(): # 菜单显示 pass def main(): # 主程序 pass def insert(): # 插入学生信息 pass def save(lst): # ...

    [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 file:
                                    d = dict(eval(item))
                                    if d['Name'] == Name:
                                        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']))
                            choice = input('继续查询请输入y/Y:')
                            if choice in ['y', 'Y']:
                                continue
                            else:
                                break
            else:
                print('您输入的文件不存在请重新输入')
                search()
        
      7. 删除

        def delete():  # 删除
            fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt'
            if os.path.exists(fileName_new):  # 确定文件是否存在
                while True:  # 循环删除操作
                    with open(fileName_new, 'r', encoding='utf-8') as file:
                        file_old = file.readlines()  # 读取旧信息
                    if file_old:  # 如果信息不为空
                        show_student(file_old)  # 先展示下
                        flag = False  # 判断是否删除了
                        student_Id = input('请输入要删除学生的Id:')  # 存学生Id
                        if student_Id:  # 判断学生Id是否合法
                            with open(fileName_new, 'w', encoding='utf-8') as newfile:  # 打开新的同名文件
                                for item in file_old:  # 逐个读取学生信息
                                    d = dict(eval(item))  # 变成字典
                                    if d['Id'] != student_Id:  # 如果不匹配就写入
                                        newfile.write(str(d) + '\n')  # 要把字典变成字符串导入
                                    else:  # 匹配就显示然后跳过
                                        print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'],
                                                                  d['Total']))
                                        flag = True  # 标记为已经删除
                            if flag:
                                print(f'Id为{student_Id}的学生信息已经被删除')
                            else:
                                print(f'没有找到Id为{student_Id}的学生信息')
                            choose = input('是否继续删除y/n:')
                            if choose == 'y':
                                continue
                            else:
                                break
                        else:
                            print('学生Id输入非法,请重新输入')
                            continue
                    else:
                        print('无学生信息')
            else:
                print('输入的文件不存在')
        
      8. 修改

        def modify():  # 修改  和删除差不多,就直接CV了。。。
            fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt'
            if os.path.exists(fileName_new):  # 确定文件是否存在
                with open(fileName_new, 'r', encoding='utf-8') as file:  # 读取旧信息
                    file_old = file.readlines()
                if file_old:
                    while True:  # 循环修改操作
                        show_student(file_old)  # 展示
                        flag = False  # 判断是否修改
                        student_Id = input('请输入要修改学生的Id:')  # 存学生Id
                        if student_Id:  # 判断学生Id是否合法
                            with open(fileName_new, 'w', encoding='utf-8') as newfile:  # 打开新的同名文件
                                for item in file_old:  # 逐个读取学生信息
                                    d = dict(eval(item))  # 变成字典
                                    if d['Id'] != student_Id:  # 如果不符合就写入
                                        newfile.write(str(d) + '\n')
                                    else:  # 符合就显示然后修改
                                        print(f'Id为{student_Id}的学生信息为{item}', end='')
                                        print('请输入修改后的数据')
                                        while True:
                                            Id = input('请输入Id:')
                                            if not Id:
                                                print('Id有误')
                                                break
                                            Name = input('请输入姓名:')
                                            if not Name:
                                                print('姓名有误')
                                            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}
                                            newfile.write(str(student) + '\n')
                                            flag = True  # 标记为已经删除
                                            break
                            if flag:
                                print(f'Id为{student_Id}的学生信息已经修改')
                            else:
                                print(f'没有找到Id为{student_Id}的学生信息')
                            choose = input('是否继续修改y/n:')
                            if choose == 'y':  # 也可以直接调用自身函数进行重复修改
                                continue
                            else:
                                break
                        else:
                            print('学生Id输入非法,请重新输入')
                            continue
                else:
                    print('读取学生信息为空')
            else:
                print('输入的文件不存在')
        
      9. 排序

        def sort():  # 排序
            cho = False # 初始化
            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:
                        student_list = []  # 存储读取到的学生信息
                        for item in file:
                            student_list.append(dict(eval(item)))  # 此时我已经转换成字典了,之后显示时就不用转换了
                while True:
                    choice = input('输入0来升序,输入1来降序:')
                    if choice in ['0', '1']:  # 决定升降序
                        if choice == '0':
                            choice = False
                        else:
                            choice = True
                        while True:
                            choose = input('输入0按照Id排序,输入1按照English排序,输入2按照Python排序,输入3按照Java排序,输入4按照Total排序:')
                            if choose in ['0', '1', '2', '3', '4']:
                                if choose == '0':
                                    student_list.sort(key=lambda x: int(x['Id']), reverse=choice)  # 排序
                                elif choose == '1':
                                    student_list.sort(key=lambda x: int(x['English']), reverse=choice)
                                elif choose == '2':
                                    student_list.sort(key=lambda x: int(x['Python']), reverse=choice)
                                elif choose == '3':
                                    student_list.sort(key=lambda x: int(x['Java']), reverse=choice)
                                else:
                                    student_list.sort(key=lambda x: int(x['Total']), reverse=choice)
                                show_student(student_list)  # 展示排序结果
                                cho = input('继续排序请输入y/Y:')
                                break
                            else:
                                print('您的输入有误,请重新输入')
                                continue
                        if cho in ['y', 'Y']:
                            continue
                        break
                    else:
                        print('你的输入有误,请重新输入')
                        continue
            else:
                print('您输入的文件不存在')
        
      10. 统计学生人数、

        def total():  # 统计人数
            filename_new = input('请输入需要统计的学生信息文件名:') + '.txt'
            if os.path.exists(filename_new):
                with open(filename_new, 'r', encoding='utf-8') as readfile:
                    print('一共有{0}名学生'.format(len(readfile.readlines())))
            else:
                print('该文件不存在,请重新输入')
                total()
        
      11. 展示

        def show():  # 展示信息
            filename_new = input('请输入需要展示的文件名:') + '.txt'
            if os.path.exists(filename_new):
                with open(filename_new, 'r', encoding='utf-8') as readfile:
                    file = readfile.readlines()
                    show_student(file)
            else:
                print('输入的文件不存在')
        
      12. 展示核心

        def show_student(file):  # 展示信息的核心
            if not file:
                print('无学生信息')
            else:
                print(format_title.format('Id', 'Name', 'English', 'Python', 'Java', 'Total'))
                for item in file:
                    if not isinstance(item, dict):
                        d = dict(eval(item))
                    else:
                        d = item
                    print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'], d['Total']))
        
    3. 总代码:

      #!/usr/bin/env Python 
      # -*- coding:utf-8 -*-
      import os
      
      
      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类型,无需输入后缀名')
      
      
      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
      
      
      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
      
      
      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('学生信息录入完毕')
      
      
      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 file:
                                  d = dict(eval(item))
                                  if d['Name'] == Name:
                                      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']))
                          choice = input('继续查询请输入y/Y:')
                          if choice in ['y', 'Y']:
                              continue
                          else:
                              break
          else:
              print('您输入的文件不存在请重新输入')
              search()
      
      
      def delete():  # 删除
          fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt'
          if os.path.exists(fileName_new):  # 确定文件是否存在
              while True:  # 循环删除操作
                  with open(fileName_new, 'r', encoding='utf-8') as file:
                      file_old = file.readlines()  # 读取旧信息
                  if file_old:  # 如果信息不为空
                      show_student(file_old)  # 先展示下
                      flag = False  # 判断是否删除了
                      student_Id = input('请输入要删除学生的Id:')  # 存学生Id
                      if student_Id:  # 判断学生Id是否合法
                          with open(fileName_new, 'w', encoding='utf-8') as newfile:  # 打开新的同名文件
                              for item in file_old:  # 逐个读取学生信息
                                  d = dict(eval(item))  # 变成字典
                                  if d['Id'] != student_Id:  # 如果不匹配就写入
                                      newfile.write(str(d) + '\n')  # 要把字典变成字符串导入
                                  else:  # 匹配就显示然后跳过
                                      print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'],
                                                                d['Total']))
                                      flag = True  # 标记为已经删除
                          if flag:
                              print(f'Id为{student_Id}的学生信息已经被删除')
                          else:
                              print(f'没有找到Id为{student_Id}的学生信息')
                          choose = input('是否继续删除y/n:')
                          if choose == 'y':
                              continue
                          else:
                              break
                      else:
                          print('学生Id输入非法,请重新输入')
                          continue
                  else:
                      print('无学生信息')
          else:
              print('输入的文件不存在')
      
      
      def modify():  # 修改  和删除差不多,就直接CV了。。。
          fileName_new = input('请输入需要打开的学生信息文件名:') + '.txt'
          if os.path.exists(fileName_new):  # 确定文件是否存在
              with open(fileName_new, 'r', encoding='utf-8') as file:  # 读取旧信息
                  file_old = file.readlines()
              if file_old:
                  while True:  # 循环修改操作
                      show_student(file_old)  # 展示
                      flag = False  # 判断是否修改
                      student_Id = input('请输入要修改学生的Id:')  # 存学生Id
                      if student_Id:  # 判断学生Id是否合法
                          with open(fileName_new, 'w', encoding='utf-8') as newfile:  # 打开新的同名文件
                              for item in file_old:  # 逐个读取学生信息
                                  d = dict(eval(item))  # 变成字典
                                  if d['Id'] != student_Id:  # 如果不符合就写入
                                      newfile.write(str(d) + '\n')
                                  else:  # 符合就显示然后修改
                                      print(f'Id为{student_Id}的学生信息为{item}', end='')
                                      print('请输入修改后的数据')
                                      while True:
                                          Id = input('请输入Id:')
                                          if not Id:
                                              print('Id有误')
                                              break
                                          Name = input('请输入姓名:')
                                          if not Name:
                                              print('姓名有误')
                                          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}
                                          newfile.write(str(student) + '\n')
                                          flag = True  # 标记为已经删除
                                          break
                          if flag:
                              print(f'Id为{student_Id}的学生信息已经修改')
                          else:
                              print(f'没有找到Id为{student_Id}的学生信息')
                          choose = input('是否继续修改y/n:')
                          if choose == 'y':  # 也可以直接调用自身函数进行重复修改
                              continue
                          else:
                              break
                      else:
                          print('学生Id输入非法,请重新输入')
                          continue
              else:
                  print('读取学生信息为空')
          else:
              print('输入的文件不存在')
      
      
      def sort():  # 排序
          cho = False # 初始化
          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:
                      student_list = []  # 存储读取到的学生信息
                      for item in file:
                          student_list.append(dict(eval(item)))  # 此时我已经转换成字典了,之后显示时就不用转换了
              while True:
                  choice = input('输入0来升序,输入1来降序:')
                  if choice in ['0', '1']:  # 决定升降序
                      if choice == '0':
                          choice = False
                      else:
                          choice = True
                      while True:
                          choose = input('输入0按照Id排序,输入1按照English排序,输入2按照Python排序,输入3按照Java排序,输入4按照Total排序:')
                          if choose in ['0', '1', '2', '3', '4']:
                              if choose == '0':
                                  student_list.sort(key=lambda x: int(x['Id']), reverse=choice)  # 排序
                              elif choose == '1':
                                  student_list.sort(key=lambda x: int(x['English']), reverse=choice)
                              elif choose == '2':
                                  student_list.sort(key=lambda x: int(x['Python']), reverse=choice)
                              elif choose == '3':
                                  student_list.sort(key=lambda x: int(x['Java']), reverse=choice)
                              else:
                                  student_list.sort(key=lambda x: int(x['Total']), reverse=choice)
                              show_student(student_list)  # 展示排序结果
                              cho = input('继续排序请输入y/Y:')
                              break
                          else:
                              print('您的输入有误,请重新输入')
                              continue
                      if cho in ['y', 'Y']:
                          continue
                      break
                  else:
                      print('你的输入有误,请重新输入')
                      continue
          else:
              print('您输入的文件不存在')
      
      
      def total():  # 统计人数
          filename_new = input('请输入需要统计的学生信息文件名:') + '.txt'
          if os.path.exists(filename_new):
              with open(filename_new, 'r', encoding='utf-8') as readfile:
                  print('一共有{0}名学生'.format(len(readfile.readlines())))
          else:
              print('该文件不存在,请重新输入')
              total()
      
      
      def show():  # 展示信息
          filename_new = input('请输入需要展示的文件名:') + '.txt'
          if os.path.exists(filename_new):
              with open(filename_new, 'r', encoding='utf-8') as readfile:
                  file = readfile.readlines()
                  show_student(file)
          else:
              print('输入的文件不存在')
      
      
      def show_student(file):  # 展示信息的核心
          if not file:
              print('无学生信息')
          else:
              print(format_title.format('Id', 'Name', 'English', 'Python', 'Java', 'Total'))
              for item in file:
                  if not isinstance(item, dict):
                      d = dict(eval(item))
                  else:
                      d = item
                  print(format_title.format(d['Id'], d['Name'], d['English'], d['Python'], d['Java'], d['Total']))
      
      
      format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}'  # 排版
      main()
      
    4. 效果展示:
      发不了视频。。。

    5. 总结:

      这个是我跟着B站上的教程做的,做的过程中也修改了跟多地方,做这个的目的也是为了练练手,学习下python,通过这次的体验,我也对Python的文件IO操作有了更深的认识,对Python的排序也更加了解了,同时我也更加清楚地认识了os.path这个模块地具体用法

    6. 学习连接
      https://www.bilibili.com/video/BV1wD4y1o7AS?p=1
      编程软件:Pycharm

    展开全文
  • 数据库系统概论 课程设计 设计名称 学生信息管理系统数据库设计 指导老师 杨林 蔡亮 班级 学号 姓名 成绩 KT873-2 6 李龙 KT873-2 7 暴晋南 KT873-2 19 李琰 目 录 TOC \o "1-7" \h \z \u 一需求分析 2 1.1功能需求...
  • 大学期间写的一份Python学生信息管理系统,使用的是文件存储的格式,但是没有学习数据库之类的东西,只能这样写了。代码包含:教师端学生端的登录,学生基本信息的增删改查等四项基本功能。教师端功能全,学生端把...
  • 包括总体设计,界面设计,详细设计与实现,系统测试,设计总结等。适合参考模板。
  • 3.6 用户信息管理界面 19 3.7 考勤信息操作界面 22 3.8 学生成绩查询界面 24 3.9 学生考勤信息查询界面 第四章 系统测试 4.1 登陆功能测试 4.2查询功能测试 4.3信息更改功能测试 4.4成绩展示功能测试 第五章 结论与...
  • 主要为大家详细介绍了python学生信息管理系统的完整版本代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 课程设计题目:基于MFC的学生班级信息管理系统设计 课程设计功能要求: (一)实现账号登陆界面; (二)实现添加学生的信息;(添加学生的信息为:学号,姓名,性别,专业,年级,出生日期) (三)实现删除学生的信息; (四)...
  • 题目:学生信息管理系统设计 功能:学生信息管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、年龄。 系统要求实现以下功能: 1、增:录入学生信息(包括学生学号、姓名、性别、年龄等); 2、删...

    一、问题描述

    题目:学生信息管理系统设计

    功能:学生信息管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、年龄。

    系统要求实现以下功能:

    1、增:录入学生信息(包括学生学号、姓名、性别、年龄等);

    2、删:删除指定的学生信息;

    3、改:对指定的学生进行指定的信息修改;

    4、查:显示学生信息列表

    分步实施:

    1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

    2、完成信息的录入与显示(将学生的信息封装到student类中,设计StudentList类,将一个个学生对象储存到studentList数组中)

    3、通过输入学生的姓名或者学号查找学生并将其删除(遍历学生数组,将输入的姓名或学号信息与数组中对象的属性信息进行对照,找到指定的对象,并删除)

    3、统计学生总数(在StudentLIst中添加total属性,将学生的总数统计出来,以便完善系统)

    5、查看所有的学生信息(通过遍历数组的方式,将学生信息一个个输出,并优化显示界面)

    二、解决思路

    1.创建Student类,添加姓名、学号、性别、年龄属性以及get/set方法;

    2.创建StudentList类,添加total,studentList属性。设计增删改查的函数。

    3.创建Welcome类,设计菜单界面,设计用户与系统的交互操作。

    4.利用项目二中的、CMUtility(工具类),完善人机交流。

    5.写出系统主体所需的函数:

           o.绘制菜单

           a.添加学生信息

           c.删除学生信息

           b.通过姓名或学号查找学生

           e.修改学生信息

           f.替换学生

           g.遍历学生数组

    4.逐个完成上述主要函数

    三、核心程序

        // 获取学生总数
        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        // 添加学生
        public boolean addStudent(Student student) {
            if (total > length)
                return false;
            studentList[total++] = student;
            return true;
        }

        // 删除学生
        public boolean delectStudent(int index) {
            if (index < 0 || index >= total) {
                return false;
            }
            for (int i = index; i < total - 1; i++) {
                studentList[i] = studentList[i + 1];
            }
            studentList[total-1] = null;
            total -- ;
            return true;
        }

        // 查找学生
        public Student findStudent(int index) {
            if (index < 0 || index >= total)
                return null;
            return studentList[index];
        }

        // 学号查找学生
        public int findStudent1(int number) {
            int i;
            for (i = 0; i < total; i++) {
                if (studentList[i].getNumber() == number)
                    break;
            }
            if (i == total)
                return -1;
            return i;
        }

        // 姓名查找学生
        public int findStudent2(String name) {
            int i;
            for (i = 0; i < total; i++) {
                if (studentList[i].getName().equals(name))
                    break;
            }
            if (i == total)
                return -1;
            return i;
        }

        // 替换学生
        public boolean replaceStudent(int index, Student student) {
            if (index < 0 || index >= total)
                return false;
            studentList[index] = student;
            return true;
        }

    四、总结

            这是第三次写项目了。

            由于前不久C语言刚考的学生成绩管理系统与本次考核项目相似,所以整体耗费时间较少,相对与学到新的知识,更多的是将旧的知识得到了巩固。

            在写项目的过程中,发现有许多知识都遗忘了。

    比如:Student类中  属性的封装、权限设置、get/set方法快捷生成、构造器的代码编写 :

    public + 类名{};等一些语法上的遗忘。

            除此之外,还遇到了 通过姓名或学号来查找学生。这个时候我想到了“多态”——只用一个函数,兼容接收用户输入的 “学号”或 “姓名” 两种不同的数据类型。但由于自身对多态性的了解不够深入,以及长时间没有复习,所以暂时没有将多态利用到这一步操作中。

           通过这次项目的制作,虽然有许多问题解决思路都比较熟悉,但收获还是挺大的——java语法的巩固,首次尝试将多态性运用到项目中、代码手感······当然,也或多或少也积累了一些项目经验。这次的项目实践,也激发了我向编程更深处探索的欲望。希望今后还有机会进行这样的项目实习。

    展开全文
  • 1 引言 1.1 编写目的 为了总结报告在工作过程中产生的问题 获得的经验 并且总结报告设计和制作者过 程中的逻辑和想法以便在以后的生产和学习过程中得到进一步提高 1.2 背景 说明 a 本项目名称学生信息管理系统 ...
  • 山东德州科技职业学院 信息工程系 SQL Server实训报告书 项目名称 学生信息管理系统 数据库构建与设计 姓 名 X X X 班 级 XX级计算机应用 一班 指导教师 X X 完成时间 200X.X.X-200X.X.X 德州科技职业学院 信息工程...
  • 学生信息管理系统案例小结

    千次阅读 2020-12-24 04:42:25
    charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 学生信息管理系统 学生信息列表 <%-- <%-- --%> 序号 学号 姓名 性别 生日 地址 QQ 邮箱 操作 --%> ${s.count...

    周末拿最近学习的知识 (JDBC, Servlet, JSP) 做一个小案例, 本来周末就应该整理笔记的, 但是打球也不能耽误啊, 所以只好赶着在今天下班的时间, 做下记录.

    技术准备

    Java 基础知识, JavaEE 基础

    tomcat, servlet, jsp(EL + JSTL)

    web前端的基础知识

    html, css, javascript基础 + Jquery 基础

    关系型数据库

    使用 SpringJDBC 操作 mysql

    开发工具

    IDEA, JDK8.0

    需求分析

    使用 mysql 来存储学生信息

    页面上完成学生数据的展示, 可进行学生信息的增删改差, 然后支持上一页, 下一页操作, 以及学生信息查询.

    实现

    一. 表结构设计

    创建数据库: student

    将编码设置为 utf-8, 便于存取中文

    drop database if exists student;

    create database student default charset=utf8;

    创建表: student

    create table student(

    id int unsigned primary key auto_increment not null,

    student_id varchar(20) not null unique COMMENT '学号',

    name varchar(20) not null,

    gender varchar(5),

    birthday date,

    address varchar(50),

    qq varchar(20),

    email varchar(50)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    设置student_id的原因是因为学号可能会改变, 而主键 id 无法修改.

    二. 创建JavaEE项目, 导入 jar 包

    项目结构图如下:

    三. 准备前端页面 (原型设计)

    在项目中就是前端的 html 代码, 这一步也非常的重要.

    首页以列表的形式展示学生信息

    新增 和 修改信息页面, 这两个页面应该长的很像

    如果把新增和修改看成一个页面, 那么一共就两个页面 ~

    学生信息列表

    添加学生页面

    编辑学生页面

    四. src目录层次结构

    代码模块的划分:

    实体类: student (就一张学生表, 所以对应的实体类只有一个)

    数据访问对象: dao (操作学生对象的 StudentDao)

    逻辑处理: Servlet (学生信息列表展示, 新增, 修改, 删除学生信息)

    工具类: JDBCDruidUtils (封装了 SpringJDBC 对数据库的操作)

    单元测试: test

    在 src 目录下创建代码的层次结构:

    五. 具体代码逻辑实现

    student 实体类

    package com.student.entity;

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    public class Student {

    private int id;

    private String studentId;

    private String name;

    private String gender;

    private Date birthday;

    private String address;

    private String qq;

    // setter and getter , 日期类型需要额外转换下

    public String getBirthday() {

    SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");

    return formater.format(this.birthday);

    }

    public void setBirthday(String birthday) {

    SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");

    Date date = null;

    try {

    date = formater.parse(birthday);

    } catch (ParseException e) {

    e.printStackTrace();

    }

    this.birthday = date;

    }

    }

    JDBCDruidUtils 连接池:

    package com.student.utils;

    import com.alibaba.druid.pool.DruidDataSourceFactory;

    import javax.sql.DataSource;

    import java.io.InputStream;

    import java.sql.Connection;

    import java.sql.PreparedStatement;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.util.Properties;

    /**

    * JDBCDruidUtils 工具类

    */

    public class JDBCDruidUtils {

    private static DataSource ds = null;

    static {

    try {

    // 加载配置文件

    Properties pro = new Properties();

    // 获取 src 路径下的文件 --> ClassLoader

    ClassLoader cl = JDBCDruidUtils.class.getClassLoader();

    InputStream is = cl.getResourceAsStream("druid.properties");

    pro.load(is);

    // 通过工厂函数 获取 数据库连接池 (传入配置文件)

    ds = DruidDataSourceFactory.createDataSource(pro);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    // 获取连接池对象

    public static DataSource getDataSource(){

    return ds;

    }

    // 获取连接对象

    public static Connection getConnection() throws SQLException {

    return ds.getConnection();

    }

    }

    druid.properties 配置文件

    driverClassName=com.mysql.jdbc.Driver

    # useUnicode表示允许使用自定义的Unicode

    url=jdbc:mysql://192.168.0.115:3306/JDBC?useUnicode=true&characterEncoding=utf8

    username=username

    password=password

    initialSize=5

    maxActive=10

    maxWait=3000

    studentDao

    DAO (Data Access Object) 数据库访问, 就是对数据库的操作进行封装, 让 servlet 里边看不到 JDBC 的代码

    package com.student.dao;

    import com.student.entity.Student;

    import com.student.utils.JDBCDruidUtils;

    import org.springframework.jdbc.core.BeanPropertyRowMapper;

    import org.springframework.jdbc.core.JdbcTemplate;

    /**

    * student 对象相关的操作方法

    */

    public class StudentDao {

    // 获取 JdbcTemplate 对象

    private static JdbcTemplate template = new JdbcTemplate(JDBCDruidUtils.getDataSource());

    /**

    * 获取 JdbcTemplate 对象, 将学生信息写入到数据库中

    */

    public static int createStudent(Student student){

    String createSql = "insert into student values(?,?,?,?,?,?,?,?);";

    int num = StudentDao.template.update(createSql, student.getId(), student.getStudentId(), student.getName(),

    student.getGender(), student.getBirthday(), student.getAddress(), student.getQq(), student.getEmail());

    return num;

    }

    /**

    * 通过id查询学生

    * @param id

    * @return

    */

    public static Student queryStudentById(String id){

    String querySql = "select * from student where id = ?";

    Student student = StudentDao.template.queryForObject(querySql, new BeanPropertyRowMapper(Student.class), id);

    return student;

    }

    /**

    * 更新 学生信息

    * @param student

    * @return

    */

    public static int updateStudent(Student student){

    String updateSql = "update student set gender = ?, birthday = ?, address = ?," +

    "qq = ?, email = ? where id = ?;";

    int num = StudentDao.template.update(updateSql, student.getGender(), student.getBirthday(), student.getAddress(),

    student.getQq(), student.getEmail(), student.getId());

    return num;

    }

    /**

    * 删除学生信息

    * @param id

    * @return

    */

    public static int deleteStudentById(String id){

    String deleteSql = "delete from student where id = ?";

    int num = StudentDao.template.update(deleteSql, id);

    return num;

    }

    }

    学生列表展示

    package com.student.servlet;

    import com.student.utils.JDBCDruidUtils;

    import org.springframework.jdbc.core.JdbcTemplate;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import javax.sql.DataSource;

    import java.io.IOException;

    import java.util.List;

    import java.util.Map;

    @WebServlet("/list")

    public class ReadList extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 不用获取参数, 所以不用设置流的编码

    // 获取 JdbcTemplate 对象

    DataSource ds = JDBCDruidUtils.getDataSource();

    JdbcTemplate template = new JdbcTemplate(ds);

    // 查询结果, 将结果集封装为 ReadList 集合

    // String querySql = "select * from student limit 0, 3";

    String querySql = "select * from student";

    java.util.List> studentList = template.queryForList(querySql);

    // 将学生对象列表存储到 request 对象域中

    request.setAttribute("studentList", studentList);

    // 转发到 list 页面

    request.getRequestDispatcher("/list.jsp").forward(request, response);

    }

    }

    jsp 页面

    学生信息管理系统

    td, th {

    text-align: center;

    }

    学生信息列表

    --%>

    序号学号姓名性别生日地址QQ邮箱操作

    --%>

    ${s.count}${student.student_id}${student.name}${student.gender}${student.birthday}${student.address}${student.qq}${student.email} 修改 

    删除

    function deleteStudent(id){

    //用户安全提示

    if(confirm("您确定要删除吗?")){

    //访问路径

    location.href="${pageContext.request.contextPath}/delete?id="+id;

    location.submit();

    }

    }

    新增一条学生信息

    先返回新增学生信息的 jsp 页面, 然后用户在键入信息之后, 提交表单到后端处理.

    package com.student.servlet;

    import com.student.dao.StudentDao;

    import com.student.entity.Student;

    import java.io.IOException;

    import java.util.Map;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    @WebServlet("/create")

    public class Create extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 获取参数, 设置流的编码

    request.setCharacterEncoding("utf-8");

    // 将参数封装到 map 集合中 (使用JavaBeanUtils工具)

    Map map = request.getParameterMap();

    Student student = StudentDao.mapToStudent(map);

    // 获取 JdbcTemplate 对象, 将学生信息写入到数据库中

    int num = StudentDao.create(student);

    // 重定向到 list 页面

    response.sendRedirect(request.getContextPath() + "/list");

    }

    }

    jsp 页面

    添加学生信息

    添加学生信息页面

    学号:

    姓名:

    性别:

    生日:

    地址:

    QQ:

    Email:

    //给返回按钮添加单击事件, 返回上一个页面

    document.getElementById("getBack").onclick = function(){

    window.history.back(-1);

    };

    更新学生信息

    get 方法中返回编辑学生信息的 jsp 页面, 填充当前学生的信息

    post 方法对用户提交的 form 表单, 对学生信息进行更新

    package com.student.servlet;

    import java.io.IOException;

    import java.lang.reflect.InvocationTargetException;

    import java.util.Map;

    import com.student.dao.StudentDao;

    import com.student.entity.Student;

    import org.apache.commons.beanutils.BeanUtils;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    @WebServlet("/update")

    public class Update extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 获取参数, 设置流的编码

    request.setCharacterEncoding("utf-8");

    // 将参数封装到 map 集合中 (使用JavaBeanUtils工具)

    Map map = request.getParameterMap();

    Student student = new Student();

    try {

    BeanUtils.populate(student, map);

    } catch (IllegalAccessException e) {

    e.printStackTrace();

    } catch (InvocationTargetException e) {

    e.printStackTrace();

    }

    // 获取 JdbcTemplate 对象, 将学生信息更新到数据库中

    int num = StudentDao.updateStudent(student);

    System.out.println("更新成功, num: " + num);

    // 重定向到 list 页面

    response.sendRedirect(request.getContextPath() + "/list");

    }

    // 返回带有 student 信息的修改页面

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 获取student的 id

    String id = request.getParameter("id");

    Student student = StudentDao.queryStudentById(id);

    // 将需要修改的学生信息放到 request 域对象中

    request.setAttribute("student", student);

    // 请求转发到 update.jsp 页面

    request.getRequestDispatcher("/update.jsp").forward(request, response);

    }

    }

    jsp页面

    修改学生信息

    修改学生信息

    学号:

    姓名:

    性别:

    生日:

    地址:

    QQ:

    Email:

    --%>

    //给返回按钮添加单击事件, 返回上一个页面

    document.getElementById("getBack").onclick = function(){

    window.history.back(-1);

    };

    删除学生信息

    写到这里, 删除的逻辑就非常简单了, 需要注意的是, 删除的时候, 需要给用户弹框确认, 这部分涉及到前端 js 的一个知识点.

    function deleteStudent(id){

    //用户安全提示

    if(confirm("您确定要删除吗?")){ location.href="${pageContext.request.contextPath}/delete?id="+id; location.submit();

    }

    }

    package com.student.servlet;

    import com.student.dao.StudentDao;

    import com.student.entity.Student;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.annotation.WebServlet;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    @WebServlet("/delete")

    public class Delete extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 获取student的 id

    String id = request.getParameter("id");

    int num = StudentDao.deleteStudentById(id);

    System.out.println("删除学生信息, num: " + num);

    // 重定向到 list 页面

    response.sendRedirect(request.getContextPath() + "/list");

    }

    }

    案例总结

    一共花了 6 个小时左右的时间, 后端的逻辑处理不算复杂, 知识点忘记了可以看下前边学习的笔记, 总的来说还算顺利.

    前端的页面布局是资料里边找的模板, 然后改了一些, 能够配合后端的 api 进行数据交互, 然后运用 jsp 中的 EL 表达式和 JSTL 标签进行展示, 没有涉及到一些很难的内容.

    这是一个前后端不分离的案例, 和之前学习的 python flask 项目里边的 jinja2 模板引擎非常的相似, 例如大胡子语法( {{}} ), 控制代码块( if else, for 循环 ), 过滤器, 模板继承等内容, 有之前的项目经验, 理解起来也比较的容易.

    案例改进

    写到这里, 还是一个非常粗糙的案例, 可以优化的点有:

    新增, 修改学生信息时对参数进行校验,

    按学号, 姓名, 性别进行检索,

    分页查询,

    批量删除,

    登录功能,

    权限管理 (分管理员, 普通用户等, 普通用户没有删除功能)

    后边有时间再持续优化 ~ (也许就这么一说, haha)

    ending ~

    展开全文
  • JAVA学生信息管理系统实验报告.doc
  • 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究意义与目标 1.4 全文组织结构 1.5 本章小结 ... 5.4.2 其他信息查询 5.5 管理员功能实现 5.6 本章小结 第六章 总结与展望 6.1 工作总结 6.2 研究展望
  • 学生信息管理系统总结(一)

    千次阅读 热门讨论 2016-06-01 14:19:36
    学生信息管理系统——自己接触到的第一个系统,我们要学着站在巨人的肩膀上学习,所以这个系统基本是照着源码敲下来的,但是源码中也有错误,我很喜欢这样,源码里的核心知识以及错误正式我们要学习的地方,所以感觉...
  • 计算机与通信工程学院 数据库系统课程设计报告 题目:学生学籍信息管理系统 课程代号: 课程名称数据库系统课程设计 学号 姓名 班级 指导教师 完成日期2011 年 12 月 第一章 第二章 2.1 目录 引言4 系统分析与设计4 ...
  • C语言课程设计学生信息管理系统姓 名 洪伟生院 系 计 算 机 学 院日 期 2015 年 7 月 5 日目 录设计要求 ………………………………………………算法分析理论依据…………………………………………………主要实现方法...
  • 学生管理系统总结(c语言)

    千次阅读 2021-05-18 15:59:15
    本周完成了学生管理系统,在完成的过程中遇见了许多问题,今天来总结上周写管理系统一些比较困难的模块。 登陆界面 在写学生管理系统时,我首先写的是登陆界面,学生管理系统有三个身份的id,分别是管理员,老师,与...
  • 包括论文,工作总结,任务书,成绩评价表等等
  • Web项目开发实践课程--学生信息管理系统 课题旨在建立一套信息管理的系统。通过在网络上建立一个管理平台,借助现代互联网实现对学生信息的增删查改,使得学生信息管理系统具有方便、实用、快捷、高效等特点。通过将...
  • java学生信息管理系统实训总结

    千次阅读 2019-06-25 09:26:13
    之后在开发学生信息管理系统的时候遇到的低级问题就是有时候将一些变量名打错,还有就是有时候编辑字母“s”没注意到大小写。在编写LoginFrame登录窗口里面的登录方法时不能保存密码,进行查错后发现问题出在自己...
  • HUNAN UNIVERSITY 程序设计训练 报 告 学生 学生学号 专业班级 指导老师 院长 (系主任) 2013 年 5 月 25 日 目 录 一 系统功能简介.3 二 本人完成的主要工作 .3 三 实训分析 ....学生信息管理系统 1, 进入主界面

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,956
精华内容 21,982
关键字:

学生信息管理系统总结

友情链接: SyncProgressMonitor.rar