●单选题:学生答案和标准答案一致,每题得10分;错选或不选不给分。
●多选题:学生答案和标准答案一致,每题得20分;漏选给10分,错选或不选不给分。比如某题标准答案为ACD,若答ACD可以得20分,答A、C、D、AC、AD或CD可得10分,其余不得分。
da=['A','B','A','D','C','D','ACD','BD'] #da存放标准答案
file="学生答卷.txt"
ts=readfile(file) #读取学生答案内容
a=[ ] #用于存放满分同学的姓名
for i in range(len(ts)):
line=ts[i]
ls=line.strip() #过滤掉换行符 '\n'
ls=ls.split(',') #将ls按“,”分割,以列表存储
s=score(ls,da)
print(ls[0]+"得分:"+str(s))
if s==100:
a.append(ls[0])
i+=1
print("满分同学:",end='')
for i in a:
print(i,end=' ')
该程序段采用的算法是(单选,填字母:A .解析算法 / B .枚举算法)。
def readfile(file):
f=open(file,encoding="utf-8") #打开文件
line= f.readline() #从文件中读取一行
while line:
text.append(line) #添加到列表text
line=f.readline()
f.close()
return text
def dxt(s1,s2):
n1=len(s1);n2=len(s2)
fs=0;c=0;k=0
if s1==s2:
fs=20
else:
while k<n1:
if s1[k] in s2:
c+=1
else:
break
k+=1
if :
fs=10
return fs
def score(st,da):
sum=0
for j in range(1,len(st)):
if j<=6: #单选题
if st[j]==da[j-1]:
sum+=10
else: #多选题
return sum