结对项目:自动生成小学四则运算题目程序 您所在的位置:网站首页 四则运算100道带答案 结对项目:自动生成小学四则运算题目程序

结对项目:自动生成小学四则运算题目程序

2023-11-25 22:46| 来源: 网络整理| 查看: 265

=================

这个作业属于哪个课程软件工程作业要求作业要求GithubGithub链接小队成员这个作业的目标熟悉结对编程,实现自动生成小学四则运算题目程序,对给定的题目文件和答案文件,判定答案中的对错并进行数量统计 核心功能实现 1. 生成题目 实现思路:

随机生成参数列表和运算符列表

判断算式是否存在括号

​ if 存在不括号:

​ 返回获取到的无括号算式

​ else:

​ 返回获取到的括号算式

算式存在括号

括号数为1时

利用 **random.randint(0, len(op_list) - 1)**来决定左括号的位置 利用 **random.randint(left_bracket_index + 1, len(parameter_list) - 1)**来决定右括号的位置

括号数为2时

随机获取括号类型

if 括号类型为并列:

​   循环获取参数列表和运算符列表获取到算式时,在相应的的位置插入括号,即:( A +B ) + ( C + D )

else 括号类型为嵌套:

​   先确定外层括号的位置,再利用递归,传递外层括号里的子字符串,从而确定内从括号,最终得到嵌套括号的算式

流程图

代码截图

######生成一万道题目生成

2. 计算 实现思路 先处理算式,得到参数和操作符组成的列表,例如:' 1 + 2' 处理成 ['1', '2', '3'] 创建数字栈和操作符栈 进行循环获取算式列表 如果是数字则压入数字栈 如果是操作符 while True 的循环 如果操作符栈为空,或者运算符为 '(' 时 入栈,break 如果当前操作符的优先级比栈顶操作符的优先级高 入栈,break 如果当前操作符为 ')',且栈顶操作符为 '(' '(' 出栈,丢掉 ')',break 如果当前操作符的优先级比栈顶操作符的优先级低 获得数字栈最后两个元素、操作符栈最后一个元素,进行计算 如果除数为零、被除数大于除数、结果为负数 return Error 得到结果入栈 if 循环之后如果数字栈和操作符栈还有内容 while 直到操作符栈不为空: 计算 如果除数为零、被除数大于除数、结果为负数,return Error 得到的结果入栈 数字栈的元素就是计算得出的结果 流程图

代码截图

3. 多线程查询是否存在生成重复问题 部分代码截图

功能运行 命令行参数

python Myapp.py [args|args] [args] ├─ -h --help # 输出帮助信息 ├─ -n # 指定生成表达式数量,默认10 ├─ -r # 指定生成表达式各个数字的取值范围,默认10 ├─ -e # 需和-a参数共同使用进行批改,指定练习文件 ├─ -a # 需和-e参数共同使用进行批改,指定答案文件 └─ -g # 开启GUI

命令行界面 1. -h

2. -r -n (也可以只输入一个参数)

3. -e -a (需要同时输入两个参数)

GUI 界面(-g)

####采用了多线程的界面,任何操作不会阻塞其他操作,例如:可以在生成答案的同时批改作业,支持一万道题目的生成等等

1. 生成题目以及在线做题(有验证答案和查看答案两个功能)

2. 设置题目数量以及范围(默认两个值都为10)

3. 检查题目答案(输入两个文件路径即可开始检查)

单元测试

样例及输出结果

异常处理 命令行输入参数错误

GUI输入错误

性能分析 GUI界面性能

生成题目 采用多线程生成题目,当生成题目过大时更换更为简便的判断生成重复问题函数 检查答案对错

PSP表格 PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)Planning计划10080· Estimate· 估计这个任务需要多少时间10080Development开发16802110· Analysis· 需求分析 (包括学习新技术)4030· Design Spec· 生成设计文档10070· Design Review· 需求分析 (包括学习新技术)80100· Coding Standard· 代码规范 (为目前的开发制定合适的规范)6090· Design· 具体设计100120· Coding· 具体编码8001050· Code Review· 代码复审250300· Test· 测试(自我测试,修改代码,提交修改)250350Reporting报告10090· Test Repor· 测试报告2020· Size Measurement· 计算工作量2020· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划6050· 合计18802280


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有