2023软件工程第二次作业(结对编程)

目录

一,团队简介及代码仓库项目地址

二,解题思路

三,设计实现过程

1.设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,

2.关键函数流程图

3.单元测试是怎么设计的,分析单元测试的合理性与充分性

四,项目代码及注释说明

五,程序改进及性能分析

六,PSP表格

七,每日软件工程学习日志

八,项目里程碑内容展示

九,解决项目的心路历程与收获

十,进阶结对项目


一,团队简介及代码仓库项目地址

本次作业小团队成员如下:吴烨凯M23181003,毛贻欢M23183901。

代码仓库项目地址为:海军工程大学-何智勇/Fundamental-Operations - 码云 - 开源中国 (gitee.com)

分工情况可于里程碑中任务分工里查看。

整个过程中团队的部分工作状态如下(可在对应社区动态中查看):

二,解题思路

整个题目的解题思路如下:

        首先思考的是如何进行四则运算程序的编写,即如何进行功能函数和主函数的编写,这也是最重要的地方,在这个步骤中,要思考各种客户需求、边界条件、约束条件,是整个项目中最主要的部分;

        还需要注意的点是答案检查和反馈: 用户提交答案后,程序会自动检查答案的正确性,并提供明确的反馈,显示哪些题目回答正确,哪些回答错误。这种实时反馈有助于用户了解他们的表现

        以及结果保存和导出: 该程序允许用户将生成的题目和正确答案保存到文件中,以供以后查看或导出。这对于教育或记录进度非常有用。

        当程序编写完毕后,还要设计相应的单元测试模块和性能测试模块,并通过单元测试和性能测试的结果来修改,升级代码,以及考虑整个过程中的模块化设计和编写,以便于后续的检查和更新。

三,设计实现过程

1.设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,

2.关键函数流程图

流程图如下所示。

关键函数代码将在第四大点中附出。

3.单元测试是怎么设计的,分析单元测试的合理性与充分性

单元测试代码如下

import unittest
from unittest import TestCase
from unittest.mock import patch
from function import *
class TestGenerateQuestions(TestCase):
    def test_generate_questions(self):
        # 测试generate_questions函数

        num_questions = 10
        questions = generate_questions(num_questions)

        # 测试题目数量与要求的数量是否相等
        self.assertEqual(len(questions), num_questions)

        for question in questions:
            expression, answer = question
            # 断言answer是一个浮点数并且大于等于0小于等于100
            self.assertIsInstance(answer, float)
            self.assertGreaterEqual(answer, 0)
            self.assertLessEqual(answer, 100)


class TestValidateAnswer(TestCase):
    def test_validate_answer_correct(self):
        # 测试validate_answer函数在用户回答正确时的行为

        question = ('2 + 3 + 4', 9)
        user_answer = '9'

        with patch('builtins.print') as mock_print:
            # 调用validate_answer函数
            validate_answer(question, user_answer)

        # 断言print函数被调用一次,并且输出的内容为"回答正确!"
        mock_print.assert_called_once_with("回答正确!")


    def test_validate_answer_zero_correct(self):
        # 测试validate_answer函数在用户回答0,且回答正确时的行为

        question = ('2*2-4', 0)
        user_answer = '0'

        with patch('builtins.print') as mock_print:
            # 调用validate_answer函数
            validate_answer(question, user_answer)

        # 断言print函数被调用一次,并且输出的内容为"回答正确!"
        mock_print.assert_called_once_with("回答正确!")

    def test_validate_answer_negative_answer(self):
            # 测试validate_answer函数在用户回答负数时的行为

            question = ('2 + 3 + 4', 9)
            user_answer = '-1'

            with patch('builtins.print') as mock_print:
                # 调用validate_answer函数
                validate_answer(question, user_answer)

            # 断言print函数被调用一次,并且输出的内容为"回答错误!正确答案是: 9"
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值