{ "title": "请定义classify()和admissionSort()两个函数。\n完整的程序逐行从键盘读取应聘者信息,一个应聘者为一行,包含报名号、实践成绩和笔试成绩,数据项之间用空格分开。请将达到最低录取要求的应聘者分类,并按上述规则确定录取先后顺序。\n输出要求:第一行首先给出达到最低录取要求的总人数,随后每行按照输入格式输出一位应聘者的信息,按录取先后顺序输出。\n\n【问题分析】\n\n按函数式编程,对问题自上而下设计如下。\n\n数据读取:使用getdata( )函数读取应聘者信息并返回应聘者信息数据列表。\n分类:使用函数classify( )把满足要求的应聘者分成4类,并返回4个类别的子列表。\n排序:分别对四类应聘者按总分、实践操作分降序,报名号升序排序,并返回排好序的列表。使用admissionSort( )函数完成。\n输出录取人数和录取顺序使用myPrintL( )函数完成。\n编写一个main函数,调用上述函数,实现完整功能。\n函数接口定义:\ndef classify(listT)\ndef admissionSort(a,b,c,d)\n裁判测试程序样例:\ndef getdata( ):\n ""从文件读取应聘者信息""\n s = []\n while True:\n line = input()\n if not line:\n break \n s.append(line.split())\n return s\n\n#在此处定义两个函数\n\ndef myPrintL(listA):\n ""输出录取人数和按录取顺序排列的应聘者名单""\n print("上线人数",len(listA))\n for j in listA:\n print(" ".join(j))\n\ndef main():\n listA = getdata()#获取原始数据\n a, b, c, d = classify(listA)\n admissionList=admissionSort( a, b, c, d)#生成录取顺序名单\n myPrintL(admissionList)\n\nmain()\n输入样例:\n注意输入的末位应包括一个连空格都不包含的空行,以表示输入的结束。\n\n10001 63 91\n10002 90 60\n10011 84 81\n10003 84 81\n10004 81 84\n10005 82 76\n10006 83 75\n10007 90 78\n10008 76 79\n10009 59 90\n10010 88 45\n10012 80 100\n10013 90 99\n10014 65 60\n\n\n输出样例:\n上线人数 12\n10013 90 99\n10012 80 100\n10003 84 81\n10011 84 81\n10004 81 84\n10007 90 78\n10006 83 75\n10005 82 76\n10002 90 60\n10014 65 60\n10008 76 79\n10001 63 91\n【解题提示】\n 按总分、实践分降序,学号升序排序可采用如下的匿名函数写法:\n\nkey=lambda x : (-(int(x[1])+int(x[2])),-int(x[1]),int(x[0]))\n用中文回答\n内容:函数classify()的功能是将满足最低录取要求的应聘者分成4类,并返回4个类别的子列表。具体分为以下4类:\n1. 符合最低录取要求的实践成绩和笔试成绩都大于等于60分的应聘者。\n2. 符合最低录取要求的实践成绩小于60分,但笔试成绩大于等于60分的应聘者。\n3. 符合最低录取要求的实践成绩大于等于60分,但笔试成绩小于60分的应聘者。\n4. 符合最低录取要求的实践成绩和笔试成绩都小于60分的应聘者。\n\n函数admissionSort()的功能是对四类应聘者按总分、实践操作分降序,报名号升序排序,并返回排序后的列表。


原文地址: https://www.cveoy.top/t/topic/pOGi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录