首页 > 其他分享 >结对项目——小学四则运算题目自动生成器

结对项目——小学四则运算题目自动生成器

时间:2024-09-28 13:49:45浏览次数:7  
标签:结对 random max 四则运算 生成器 生成 60 30 表达式

这个作业属于哪个课程 <计科22级34班>
这个作业要求在哪里 <结对项目>
这个作业的目标 <实现一个自动生成小学四则运算题目的命令行程序(也可以用图像界面,具有相似功能)>
团队成员 <杨富国(3122004587)、李思柔(3222004638)>
Github项目地址 https://github.com/wWchao-111/Myapp

一、PSP表

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 90 90
· Estimate · 估计这个任务需要多少时间 45 60
Development 开发 120 150
· Analysis · 需求分析 (包括学习新技术) 60 60
· Design Spec · 生成设计文档 60 60
· Design Review · 设计复审 60 60
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 60
· Design · 具体设计 60 60
· Coding · 具体编码 30 30
· Code Review · 代码复审 30 30
· Test · 测试(自我测试,修改代码,提交修改) 180 150
Reporting 报告 60 60
· Test Repor · 测试报告 60 60
· Size Measurement · 计算工作量 10 10
· Postmorte· 合计m & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 30
· 合计 955 970

二、设计实现过程

共7个模块:

main():用于命令行输入输出的对接,包含整体运行逻辑、表达式的写入写出和答案比对。
random_fraction():随机生成一个数,可能是分数也可能是整数。
random_expression():生成全部表达式。
is_valid():判断生成的表达式是否合理。
genetate_expressions():生成最终的总表达式。
evaluate():计算表达式的值。
grade():比对题目和答案是否正确。

流程图:

image

三、代码说明:

1.核心代码:

image

2.分析:

生成随机数random_fraction():

定义一个函数random_fraction(max_denominator),用于生成一个随机数。
此函数接收一个最大分母值 max_denominator,生成一个随机分数。分子的范围从 0 到 max_denominator - 1,而分母则从 1 到 max_denominator(避免分母为零)。
函数内部使用random.randint()生成两个随机整数作为分子和分母,然后使用fractions.Fraction()创建一个分数对象并返回。

生成表达式random_expression():

定义一个函数random_expression(max_denominator, max_operators),用于生成一个随机的数学表达式。
此函数接收两个参数:max_denominator表示分母的最大值,max_operators表示操作符的最大数量。
函数首先生成一个随机分数作为表达式的第一个元素,然后在循环中随机选择操作符(加、减或乘)并生成另一个随机分数,将它们添加到表达式中,最后返回生成的表达式字符串。(操作符的数量在 1 到 max_operators之间随机决定)

检查表达式合法性is_valid():

定义一个函数is_valid(expression),用于检查表达式是否合法。
这个函数接受一个表达式字符串作为参数,将其分割成各个部分,然后检查每个操作符前后的分数是否符合四则运算的规则。例如,如果操作符是-,那么应确保被减数不小于减数;如果操作符是/,那么应确保除数不为零。如果所有操作符都符合规则,则返回True,否则返回False。

四、测试运行

测试模块代码:

image

五、运行结果

image

image
Exercises.txt(题目数量:10,范围:10)是题目。
Answers.txt是答案。
Grade.txt是结果。

用生成的题目文件和答案文件做比对测试:

交换第3题和第4题的答案后,grade输出第3、4题错误,其余正确:
image

六、效能分析

image

由此可以看出:生成随机数random_fraction是最耗时的。

七、项目小结

杨富国:

经过这次项目,我深刻了解到一个设计文档的重要性,当对项目进行分析设计模块的大体框架后,代码实现的进度就快了许多,剩下的更多是模块功能的微调与测试。
第一次的结对项目更让我感受到了团队合作中分工与沟通的重要性,明确的分工让我们可以节省很多时间,也让我们感受到了团队合作中交流的重要性

李思柔:

这是我第一次与人合作完成一个项目,刚开始又有点不适应,但在一次次磨合中我们还是完成了这次结对项目,我意识到在团队工作中共同协作和沟通的重要性,也发现两个人想问题和做决策比一个人的效率要快得多。感谢我的搭档!是他帮助了我很多才完成这次结对项目,本人在此郑重鸣谢!

标签:结对,random,max,四则运算,生成器,生成,60,30,表达式
From: https://www.cnblogs.com/lsr0930/p/18436885

相关文章

  • 结对项目
    结对项目这个作业属于哪个课程计科22级12班软件工程这个作业要求在哪里作业要求这个作业的目标尝试结对编程,深入熟悉开发过程,并设计一个能自动生成小学四则运算题,还能批改题目计算分数的程序队伍成员林楦(3222004851)徐嘉炜(3122004838)Github链接:https://g......
  • 结对项目
    基本信息这个作业属于哪个课程软件工程这个作业要求在哪里作业要求成员李炫杰(3122004953)郭梓佳(3122004945)Github地址https://github.com/gzjgit-hub/pairing_project.git这个作业的目标实现一个自动生成小学四则运算题目的命令行程序PSP表格......
  • 四则运算
    packagechuti;importjava.util.Scanner;publicclassDemo{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);for(inti=1;i<=30;i++){inta=(int)Math.round(Math.random()*100);intb=(int)Math.round(Math.rando......
  • 代码生成器实践总结
    最近,又用我的脚本管理,写了一个代码生成器。用在一个.netcoreWeb MVC项目中,想要把原来的一些Area,拷贝替换表名。业务上来说是:把推广模块,单独复制出一个推广-外部渠道的模块。专门给公司外部的推广人员用,但是不影响原来的功能。本质结构代码生成器= 模板+ 替换结论先......
  • 结对项目--四则运算
    结对项目--四则运算这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标四则运算成员3122004564方伟城psp表格PSP2.1Personal......
  • 实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标实现一个自动生成小学四则运算题目的命令行程序项目成员本结对项目由--31220045......
  • 枚举,精度,四则运算,加合集
    一.枚举类型仔细阅读示例:EnumTest.java,运行它,分析运行结果?代码如下:`publicclassEnumTest{publicstaticvoidmain(String[]args){ Sizes=Size.SMALL; Sizet=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); //是原始数据类型吗? System.out.pri......
  • 出四则运算题
    一家软件公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道四则运算题目给小学生做。代码如下:importjava.util.;//导入java.util中的所有包publicclassMathtitle{publicstaticvoidmain(String[]args){//输出30道题目for(inti=0;i<30;i++){System.out.pr......
  • 结对项目
    结对项目这个作业属于哪个课程班级链接这个作业要求在哪里结对项目-作业-计科22级12班-班级博客-博客园(cnblogs.com)这个作业的目标实现一个自动生成小学四则运算题目的命令行程序姓名学号韩其锟3122004348GitHubhttps://github.com/......
  • 结对项目:四则运算自动生成程序
    [github地址]https://github.com/kkrInblU/3222004510.githttps://github.com/115any/3222004512.git这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230......