2022年 C++(即oopre)作业自测


前言 & 注意事项

  1. 所有数据均为官方输入+我的 AC 输出。

  2. 由于第一单元输出的浮点数采用误差比较,所以您的答案和我不同也可能是正确的。

    您可以考虑自行写一个评测机进行误差比较。

  3. 数据可能不全。通过所有测试点也并不代表您的程序没有问题。

  4. 本网站没有设置任何自动化评测。

  5. 推荐大家同时熟悉 Git 的使用。

  6. 请养成良好的代码风格。这是有分的!

作业框架 & 题面导航

作业分为四个单元,第零单元,第一单元,第二单元,第三单元,其中第一和第二单元均有三次练习,为迭代开发。

第零单元 作业 0 hw0
第一单元 作业 1 hw1
作业 2 hw2
作业 3 hw3
第二单元 作业 4 hw4
作业 5 hw5
作业 6 hw6
第三单元 作业 7 hw7

Tips

  1. IDEA 打不开,提示 Internet Error,试试管理员模式运行这个:

    net stop winnat
    net start winnat
  2. 关于课程资料:下载链接

  3. 这里有一个简单的 Python 评测机供参考:

    def check(src1: list[str], src2: list[str]):
        '''
        function check - this function is to check whether src2 is the same as src1 within acceptable error.
        
        param src1 - standard answer split by '\\n'
        param src2 - your answer split by '\\n'
        '''
        while src1[-1] == '':
            src1 = src1[:-1]
        while src2[-1] == '':
            src2 = src2[:-1]
        if len(src1) != len(src2):
            return 'Your answer is too long/short.'
        for i, (l1, l2) in enumerate(zip(src1, src2)):
            l1 = l1.split()
            l2 = l2.split()
            if len(l1) != len(l2):
                return f'Your answer is too long/short on line {i+1}.'
            for e1, e2 in zip(l1, l2):
                if e1[-1] == ',' or e1[-1] == '.':
                    if e1[-1] != e2[-1]:
                        return f'Your answer differs from the standard answer on line {i+1}.'
                    e1 = e1[:-1]
                    e2 = e2[:-1]
                if e1 == e2: continue
                try:
                    n1 = float(e1)
                    n2 = float(e2)
                    if abs(n1 - n2) / max(1, n1) <= 1e-5:
                        continue
                except ValueError:
                    pass
                return f'Your answer differs from the standard answer on line {i+1}.'
        return 'Your answer is correct!'

–e4302d7fb77329bed14802a36ce3b008–


评论
  目录