成绩检索统计程序开发

成绩检索统计程序开发

由于你的成绩优秀,你被选为课代表。你看到老师每天忙于统计各科成绩,在学习了半个学期的Python后你决定开发一个小程序帮助老师进行日常成绩的检索和查询工作。经过和老师的沟通,你了解到:
(1) 老师希望能通过学生学号和课程名称查询学生的成绩信息。比如,输入一个学号,查询这名学生各科成绩信息;输入课程名称,则查询这门课程所有学生的成绩信息;输入一个学号和一个课程名称,则查询该学生这门课程的成绩信息。
(2) 老师希望能统计一门课程的成绩分布情况。比如,输入一门课程名称,将该课程‘优、良、中、及格、不及格’的人数统计出来(90-100为优,80-89为良,70-79为中,60-69为及格,0-59为不及格)。

需实现步骤如图:
在这里插入图片描述

需要查找的数据列表(数据过多,省略部分)


SCORE_LIST = (['大数据开发语言', '2019060017', '牛文胜', '66'],
                 ['大数据开发语言', '2019057013', '霍晓凯', '45'],
                 ['大数据开发语言', '2019059008', '刁宁凤', '79'],
                 ['大数据开发语言', '2019010002', '粱金梁', '67'],
                 ['大数据开发语言', '2019010011', '堵霄', '68'],
                 ['结构化数据存储与处理', '2019012025', '牛伯', '86'],
                 ['结构化数据存储与处理', '2019027015', '杨琛厚', '68'],
                 ['大数据开发语言', '2019043007', '巩欢', '76'],
                 ['结构化数据存储与处理', '2019043005', '刘好学', '79'],
                 ['结构化数据存储与处理', '2019060020', '童莲娅', '73'],
                 ['大数据开发语言', '2019042001', '路娟云', '77'],
                 ['大数据开发语言', '2019074007', '秦松顺', '67'],
                 ['结构化数据存储与处理', '2019026014', '乔浩媛', '93'],
                 ['大数据开发语言', '2019027015', '杨琛厚', '78'],
                 ['结构化数据存储与处理', '2019025018', '易祥礼', '75'],
                 ['结构化数据存储与处理', '2019058019', '季国子', '73'],
                 ['大数据开发语言', '2019009007', '项鹏子', '75'],
                 ['结构化数据存储与处理', '2019028013', '邵杰笑', '66'],
                 ['结构化数据存储与处理', '2019058016', '芮筠羽', '99'],
                 ['结构化数据存储与处理', '2019009015', '申达', '80'],
                 ['大数据开发语言', '2019074024', '房舒', '88'])

进入成绩管理系统

choice = None
while choice != '0':
    print('''
    ############################
    成绩录入系统

    0 - 退出程序
    1 - 成绩检索
    2 - 成绩统计
    ############################
    ''')

0 - 退出程序

if choice == '0':
	print('退出系统')
    exit(0)
    

1 - 成绩检索

   elif choice == '1':
        # 通过学号和课程查找一系列信息
        # 输入信息 学号 课程名称
        stu_Num = input('请输入学生学号:')
        stu_Course = input('请输入课程名称:')
        found = False
        for line in SCORE_LIST:
            # 课程名和学号均合法情况
            #学号等于十位数 课程大于一 使用in可以实现模糊查找
            if len(stu_Num) == 10 and len(stu_Course) > 0 and stu_Num == line[1] and stu_Course in line[0]:
                print(line)
                
            # 学号合法,课名不合法 -> 使用学号检索
            elif len(stu_Num) == 10 and len(stu_Course) == 0 and stu_Num == line[1]:
                print(line)
                
            # 学号不合法,课名合法 -> 使用课名(子串)检索
            elif len(stu_Num) != 10 and len(stu_Course) > 0 and stu_Course in line[0]:
                print(line)
            else:
                continue

2 - 成绩统计

    elif choice == '2':
    #另每个分数段的人数为0
        interval_1 = 0
        interval_2 = 0
        interval_3 = 0
        interval_4 = 0
        interval_5 = 0
        stu_Course = input("请输入你要统计的课程名称:")
        for line in SCORE_LIST:
        #当课程在列表中时
            if line[0] == stu_Course:
            #成绩大于等于0,小于60
                if int(line[3]) >= 0 and int(line[3]) < 60:
            #成绩大于等于60,小于70
                    interval_1 += 1
            #成绩大于等于70,小于80
                elif int(line[3]) >= 60 and int(line[3]) < 70:
                    interval_2 += 1
            #成绩大于等于80,小于90
                elif int(line[3]) >= 70 and int(line[3]) < 80:
                    interval_3 += 1
             #成绩大于等于90,小于等于100
                elif int(line[3]) >= 80 and int(line[3]) < 90:
                    interval_4 += 1
                elif int(line[3]) >= 90 and int(line[3]) <= 100:
                    interval_5 += 1
            else:
                continue
#输出各分数段人数
        print("""
                统计课程:%s
                优:%s人
                良:%s人
                中:%s人
                及格:%s人
                不及格:%s人
            """ % (stu_Course, interval_5, interval_4, interval_3, interval_2, interval_1))
   

如查找到不合法的菜单项

    else:
        print("不合法!")
        exit(0)

也可以把每个菜单封装成单独的函数
主程序为:

if __name__ == '__main__':
    func_choice = input("请选择操作类型(1-成绩检索 2-成绩统计): ")
    
    if func_Search == '1':
    #菜单1封装成一个函数
        score_Sta()
    elif func_choice == '2':
    #菜单2封装成一个函数
        score_stat()
    else:
        exit()

接下来我们一起来看一下运行的结果:

学号合法,课程名不合法输出

学号合法,课程不合法输出
学号不合法,课程名称合法输出
模糊查找(子串查找)
在这里插入图片描述
学号合法,课程名合法输出:
在这里插入图片描述
菜单2,成绩统计:
在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值