结对项目第二阶段可选扩展功能(岳智彬,D23182407;周凡喻,M23385403)

项目地址:

https://gitee.com/hezhiyong_edu/four-operations-paired-items.git

增加了错题本的功能,建立一个名为错题本的txt文件,每当答题错误时会将题目写入错题本。想要回顾错题时,打开错题本即可。

import random
import time
import datetime

random.seed(time.perf_counter())


def calculator(n, maximum):
    """随机产生n道正整数四则运算的题目,用户输入计算结果,
    判断输入正确与否,并统计正确率。题目保证减法不出现负数."""
    correct = 0
    count = 0
    max_final = 0
    for i in range(n):  # 循环n次,每次产生一个新问题
        b = random.randint(0, maximum)  # 随机产生一个maximum以内整数
        a = random.randint(0, maximum)  # 随机产生一个maximum以内整数
        c = random.randint(0, maximum)  # 随机产生一个随机数,使其具有两个运算符
        max1 = max(a,b,c)
        if max1 > max_final:
            max_final = max1
        #################Begin##############################
        print(f'{a}{ope1}{b}{ope2}{c}=', end='')
        result = float(input())
        count = count + 1
        if result == eval(f"{a}{ope1}{b}{ope2}{c}"):
            correct = correct + 1
            print("恭喜你,回答正确")
        else:
            with open("cuotiben.txt", "a") as fp:
                fp.write(str(a))
                fp.write(str(ope1))
                fp.write(str(b))
                fp.write(str(ope2))
                fp.write(str(c))
                fp.write(" =")
                fp.write("\n")

            #################End##############################
    print("答对{}题,正确率为{}%,总分为{}".format(correct, correct / n * 100, correct * point))
    with open("date.txt", "a") as fp:
        now = datetime.datetime.now()
        fp.write(str(now))
        fp.write("   ")
        fp.write('题目数')
        fp.write("   ")
        fp.write(str(n))
        fp.write("   ")
        fp.write('正确题目数')
        fp.write("   ")
        fp.write(str(correct))
        fp.write("   ")
        fp.write('正确率')
        fp.write("   ")
        fp.write(str(correct / n * 100))
        fp.write("   ")
        fp.write('分数')
        fp.write("   ")
        fp.write(str(correct * point))
        fp.write("\n")
    return count

if __name__ == '__main__':
    num = int(input('请输入出题数量:'))
    point = 100/num
    m = int(input('请输入参与计算的最大数字:'))
    ope1 = str(input('请输入第一个运算符号:'))
    ope2 = str(input('请输入第二个运算符号:'))
    calculator(num, m)

运行结果:

错题本:

代码简单,可维护性和可拓展性较好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值