软件设计师(萌新版) 2025-03-03 09:39 采纳率: 0%
浏览 41

用finereport制作一张模拟试卷如何设计?

字段说明:xh-序号,lx-题目类型(1-单选,2-多选,3-判断),tm-题目内容, daA-daD为答案选项,da-正确答案。
要求:现要求生成一张模拟考试试卷(顺序按题目序号即可),用户可以进行答题,题与题之间有一条虚线分隔,题分数情况:单选与判断题每题正确1分,错误0分,多选题正确2分,少选1分,错误0分, 答题完成后点击统计,可以统计出总分数,正确数,错误数,部分正确数,未做题数,效果如下图所示 数据来源:考试数据库nj0on8表。

img

img

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-03 09:39
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    ```python import pandas as pd import random

    模拟考试试卷生成

    exam_paper = pd.read_csv('nj0on8.csv') # 从考试数据库中读取试题 exam_paper = exam_paper.sort_values(by='xh') # 按题目序号排序 for index, row in exam_paper.iterrows(): print('{}. {}'.format(row['xh'], row['tm'])) if row['lx'] == 1 or row['lx'] == 3: print('A. {}\nB. {}\nC. {}\nD. {}'.format(row['daA'], row['daB'], row['daC'], row['daD'])) else: print('A. {}\nB. {}\nC. {}\nD. {}'.format(row['daA'], row['daB'], row['daC'], row['daD'])) print('-------------------------------')

    用户进行答题

    user_answers = {} for index, row in exam_paper.iterrows(): answer = input('请输入您对题目{}的答案:'.format(row['xh'])) user_answers[row['xh']] = answer

    统计答题结果

    total_score = 0 correct_count = 0 incorrect_count = 0 partial_correct_count = 0 unanswered_count = 0 for index, row in exam_paper.iterrows(): correct_answer = row['da']

    if user_answers[row['xh']] == '':
        unanswered_count += 1
    elif user_answers[row['xh']] == correct_answer:
        if row['lx'] == 1 or row['lx'] == 3:
            total_score += 1
        else:
            total_score += 2
        correct_count += 1
    else:
        if row['lx'] == 2:
            if set(user_answers[row['xh']]) == set(correct_answer):
                total_score += 1
                partial_correct_count += 1
            incorrect_count += 1
        else:
            incorrect_count += 1
    

    print('总分数:{}'.format(total_score)) print('正确数:{}'.format(correct_count)) print('错误数:{}'.format(incorrect_count)) print('部分正确数:{}'.format(partial_correct_count)) print('未做题数:{}'.format(unanswered_count))

    评论

报告相同问题?

问题事件

  • 创建了问题 3月3日