首页 > 其他分享 >结对项目

结对项目

时间:2023-09-28 23:55:05浏览次数:27  
标签:10 结对 20 项目 真分数 生成 题目 表达式

结队项目

软件工程 班级链接
作业要求 作业要求链接
作业目标 PSP+四则运算实现+团队合作体验+GitHub过程记录
作者 艾里扎提,努尔艾力

PSP表格

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

项目要求

使用 -n 参数控制生成题目的个数,例如

Myapp.exe -n 10

将生成10个题目。

使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围,例如

Myapp.exe -r 10

将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。该参数必须给定,否则程序报错并给出帮助信息。

生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1− e2的子表达式,那么e1≥ e2。
生成的题目中如果存在形如e1÷ e2的子表达式,那么其结果应是真分数。
每道题目中出现的运算符个数不超过3个。
程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。
生成的题目存入执行程序的当前目录下的Exercises.txt文件,格式如下:

四则运算题目1
四则运算题目2
……

其中真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8。

在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件,格式如下:

答案1
答案2

特别的,真分数的运算如下例所示:1/6 + 1/8 = 7/24。

程序应能支持一万道题目的生成。
程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计,输入参数如下:

Myapp.exe -e .txt -a .txt

统计结果输出到文件Grade.txt,格式如下:

Correct: 5 (1, 3, 5, 7, 9)

Wrong: 5 (2, 4, 6, 8, 10)

其中“:”后面的数字5表示对/错的题目的数量,括号内的是对/错题目的编号。为简单起见,假设输入的题目都是按照顺序编号的符合规范的题目。

项目实现

  • 项目文件结构

main.py main函数
stack.py
Calculate.py 计算
infixTosuffix.py 转换后缀表达
generator.py 生成表达式
  • 分析

实现四则运算的方法不少,在这里使用了逆波兰表达式+栈的方法实现

表达式生成需要注意以下几点

1.计算过程中不能产生负数
2.数字数量可以随机
3.0不能为除数
4.利用列表先随机生成1~3个运算符存入一个列表,通过列表长度生成对应个数的操作数,如果除号后的操作数等于0则重新生成一个。
5.操作数的类型统一为分数类型(Fraction类),整数的分母为1,但由于整数,带分数,真分数的显示格式不同,所以定义了一个str_num()的方法将分数转换为符合标准的字符串。

  • 括号
    插空法在运算符数组中随机成对插入括号,通过检测前后的运算符优先级判断是否需要插入括号。

  • 计算
    转化为波兰表达式后通过栈操作实现计算

实现

1.主函数

2.栈

3.生成表达式

  1. 逆波兰表达

  2. 计算

测试


1w题:

性能分析:

代码覆盖率:

项目小结:

艾里扎提:团队合作编程中交流异常重要,如果在提前没有定好一系列参数及各种章程的话,遇到问题时所消耗的时间一定会比你提前讨论清楚所消耗的时间大的多的多
努尔艾力:有声的交流重要,无声的交流(指注释)也是同样的,不偷懒改写的得写好才能提高效率

标签:10,结对,20,项目,真分数,生成,题目,表达式
From: https://www.cnblogs.com/Neeeeee/p/17736682.html

相关文章

  • 软件工程--结对项目
    这个作业属于哪个课程软件工程这个作业的要求在哪里结对项目参与人马楚泽(3121005225),谢剑滔(3121005232)github链接PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划3030Estimate·估计这个任务需要多少......
  • 结对项目:用C++实现四则运算
    软工作业3:自动生成小学四则运算题目的命令行程序这个作业属于哪个课程计科21级12班这个作业要求在哪里结对项目这个作业的目标熟悉合作开发流程项目Github点击这里团队成员姓名学号石云欣3221004809沈纪康3121004750PSP表PSP2.......
  • git clone项目报错fatal: fetch-pack: invalid index-pack output问题解决
    gitclone项目报错fatal:fetch-pack:invalidindex-packoutput问题解决原因出现该问题的原因是gitclone的项目过大导致项目拉去失败解决方法首先拉去项目最后一次提交gitclone--depth=1项目地址;拉取全部项目内容gitfetch--unshallow,一般不大的项目都可以......
  • 结对项目:python开发四则运算的程序
    项目链接软件工程软件工程链接作业要求作业要求的链接作业目标两人用python实现一个自动生成小学四则运算题目的命令行程序github项目链接github项目链接团队成员姓名学号李金强3121004868赵继业31210048901.PSP表格PSP表格通常用......
  • 结对项目:自动生成小学四则运算题目
    用Python实现一个自动生成小学四则运算题目的命令行程序 软件工程计科21级12班(广东工业大学-计算机学院)作业要求结对项目作业目标熟悉结对编程 成员姓名班级学号黄翼山计算机科学与技术2021级2班3119004783扎恩哈尔·吾兰计算机科学......
  • 结对项目:用Python实现自动生成小学四则运算题目的程序
    Python实现四则运算程序软件工程计科21级1.2班作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业目标完成结对项目:四则运算;熟悉团队协作的方法和模式github链接:https://github.com/howdnb/howdnb项目成员信息姓名学号......
  • 结对项目:实现一个自动生成小学四则运算题目的命令行程序
    1作业摘要与结对伙伴介绍1.1作业摘要这个作业属于哪个课程所属课程链接这个作业要求在哪里作业要求链接这个作业的目标<熟悉软件工程流程,把握PSP流程框架,精进测试代码和性能改进的能力>Github链接1.2结对伙伴信息姓名学号彭学智3121004878......
  • 结对项目:Java实现自动生成小学四则运算题目
    结队项目软件工程所在班级队伍成员谢昊天(3121004672)林育鑫(3121004660)作业要求[要求](([个人项目-作业-计科21级12班-班级博客-博客园(cnblogs.com)](结对项目-作业-计科21级12班-班级博客-博客园(cnblogs.com))))作业目标实现一个自动生成......
  • 结对项目
    一,成员信息表作业链接https://edu.cnblogs.com/campus/gdgy/CSGrade21-34/homework/13025拜尔克吐拉·吾买尔江3121005247阿布都瓦力·努尔买合买提3121005072Github链接https://github.com/bayer12/3121005247-bayer二,PSP表格PSP2.1PersonalSoftware......
  • 结对项目——贾基东&迪力木热提·开依散尔
    这个作业属于哪个课程计科21级12班这个作业要求在哪里结对项目这个作业的目标实现一个自动生成小学四则运算题目的命令行程序团队成员信息姓名学号贾基东3121004864迪力木热提·开依散尔3121004859gitee:https://gitee.com/jiajidong/3121004......