文章目录

  • 学生个人信息
  • 作业基本信息
  • 一、Gitcode作业链接
  • 二、PSP表格
  • 三、效能分析
    • 代码覆盖率
    • 性能测试
  • 四、设计实现过程
    • 函数作用
    • 函数调用关系
  • 五、代码说明
    • 1. generate(num1,num2)
    • 2. Answer()
    • 3. compare()
  • 六、测试运行
  • 七、项目小结

学生个人信息

姓名 学号
涂舒 3121005052
刘伟林 3121005046

作业基本信息

这个作业属于哪个课程 课程链接
这个作业要求在哪里 作业要求链接
这个作业的目标 实现一个自动生成小学四则运算题目的命令行程序
其他参考文献

一、Gitcode作业链接

仓库地址

二、PSP表格

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

三、效能分析

代码覆盖率

性能测试


程序中消耗最大的函数

四、设计实现过程

函数作用

函数 作用
def convert(number) 转换成带分数
def generate(num1, num2) 计算;num1和num2分别为生成的题目数量和允许出现的最大数
def check_existence(formula) 检测是否生成重复题目
def Answer() 计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件
def compare() 对比正确答案和输入的答案
def main() 设置想要生成的题目数和允许出现的最大数

函数调用关系

五、代码说明

1. generate(num1,num2)


解释:
   这段代码实现了一个随机生成算术题目并将题目和答案写入文件的功能。下面是部分代码的具体解释:
generate(num1, num2):
sign = [“+”, “-”, “*”, “/”]:定义了四种运算符号,分别为加、减、乘、除,存储在一个列表sign中。
formulas = set():集合formulas用于存储已经生成的算术表达式,避免重复生成。
e.write(s1 + “\n”):将题目的序号和算术表达式写入文件。
a = open(“Answers.txt”, “a”, encoding=“utf-8”):打开一个名为Answers.txt的文件,用于存储计算结果。

   总的来说,这段代码实现了一个生成随机算术题目的程序,并将题目和答案写入文件中。生成的算术表达式包括加、减、乘、除四种运算,运算数的范围由参数num2决定,每个算术表达式的运算符个数在1~3之间随机生成。同时,为了保证生成的算术表达式不重复,程序使用了一个集合formulas来存储已经生成的算术表达式,避免重复生成。

2. Answer()


解释:
   打开文件输入答案,并存入Answers.txt文件。

3. compare()


解释:
   按行依次读取txt文档数据,将读取数据存入列表,接着按行比较正确答案和输入答案,并将正确和错误的题号存入相应列表。

六、测试运行




七、项目小结

   结对项目总结成败得失,分享经验,总结教训。两个人共同撰写一个博客,包含上述内容的描述,同时包含结对感受,以及两个人对彼此结对中的闪光点或建议的分享
总结:
   这次2人合作编程让我收获颇丰,这里是我认为两人合作的优势及对结对的感受首先,两人合作编程完成这项任务让双方都有紧迫感,为了不拖累队友,我们彼此会更加用心,对待任务也特别积极,提高了完成任务的效率。其次,两人合作分工明确,让每个人都能在自己擅长的地方发挥优势,彼此配合互帮互助,提高了项目的完成质量。
   接下来是分享经验,总结教训,我认为我们彼此仍有许多不足之处,我们在代码的质量和性能方面需要下功夫更多一些,这需要我们提高个人的技术硬实力,在对项目需求的分析上我们也要更加仔细和认真,确保完成每一项需求,以做出最优秀的程序,提高用户体验感。
   这里是对彼此结对中的闪光点或建议的分享:
刘伟林:我认为涂舒拥有较好的编辑能力,在博客设计的格式以及排版上有着较强能力,同时也有比较优秀的需求分析能力,对项目的所有要求都熟记于心。但需要提高代码编写能力,加强自身技术学习,巩固基础,提高技术硬实力。
涂舒:我认为刘伟林同学有较强的专业知识能力,对python语言的运用掌握的很好,对代码的注释习惯也非常优秀且注释清楚明了简单,对gitcode使用较熟悉,在项目进展中贡献了许多且保持着高效和质量。但需要提高对项目的需求分析能力和对博文的规范书写。

结对编程:小学四则运算相关推荐

  1. 20165330 结对编程项目-四则运算 第一周

    需求分析 实现一个命令行程序,要求:自动生成小学四则运算题目(加.减.乘.除) 可实现多个运算符一起运算 可以真分数形式输出结果 测试结果的正确性 统计题目完成数并计算正确率 设计思路 实验首先是完成 ...

  2. 结对编程项目-四则运算阶段性总结

    结对编程项目-四则运算阶段性总结 在这段时间的结对编程过程中,我和我的组员一同编程,初步完成了项目的要求,现在我将阶段性的成果做一个总结 一.需求分析 实现一个命令行程序,要求: 1.自动生成小学四则 ...

  3. 结对编程项目-四则运算整体总结

    结对编程项目-四则运算整体总结 在这一周中,我和我的搭档完成项目并实现了拓展需求,现在我将本项目的成果做一个总结 一.需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除 ...

  4. 20172307 结对编程项目-四则运算 第二周 阶段总结

    20172307 结对编程项目-四则运算 第二周 阶段总结 (结队项目码云地址) 相关过程截图(关键代码处加了注释) 编写出实现中缀转后缀的类Transform /*Transform.java 作者 ...

  5. 20165318 结对编程项目-四则运算 阶段总结

    20165318 结对编程项目-四则运算 阶段总结 目录 一.需求分析 二.设计思路 三.实现过程中的关键代码解释 四.测试方法 五.运行过程截图 六.代码托管 七.遇到的困难及解决方法 八.对结对小 ...

  6. java安装 1723_2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段...

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

  7. 结对编程项目-四则运算(第一周阶段性总结)

    结对编程项目-四则运算(阶段性总结) 需求分析 题目生成 多运算符(可设计层级) 包含括号(可单独使用) 无重复题目(可单独使用) 生成有意义的题目(例如:5x(5x5)等等) 等级划分 Level ...

  8. 结对编程作业——四则运算

    Github项目地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 · Estimat ...

  9. 结对编程实现四则运算

    结对编程技术是指两位程序员坐在同一工作台前开发软件.与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码. 按照结对编程的原则,我和小组另一个成员进行了两人进行了结对编程,我们开发的结对项目的 ...

  10. 【结对编程】四则运算生成器

    结对项目报告 源码及接口说明地址:https://github.com/hzphzp/ArithmeticCore/tree/master/ArithmeticCore 一.功能实现 按照用户设置的要 ...

最新文章

  1. 你知道什么是数据科学?如何把数据变成产品么?
  2. 史上最强神经网络绘制神器来啦!一系列暗黑操作!
  3. JVM常用启动参数大全(附带解释)
  4. 超全!Python获取某一日期是“星期几”的6种方法!
  5. DotLucene 系列文章
  6. ZT pthread_detach
  7. 蓝桥杯 ADV-140 算法提高 开灯游戏
  8. 初学Golang:Go 的数据类型及常见特性
  9. poj 1655 Balancing Act(求树的重心)
  10. 用WinZip Pro创建Zip文件
  11. 1299: Problem 1
  12. 网页视频图片链接批量提取
  13. iPhone蓝牙技术学习
  14. Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作【转】...
  15. 【Go】用 Go 访问 Redis
  16. mysql 修改年龄_MYSQL——数据修改
  17. 并行算法的设计与分析
  18. 大型文件远距离传输如何做到 ?
  19. 10_Flink Streaming jobSubmit
  20. amd插帧技术如何开启_英特尔i3-10100F性能首发测试:低温高能,性价比完胜AMD!...

热门文章

  1. 将游戏成绩传到排名页面html,小组用HTML5做了一个坦克大战,求助到最后怎么用javascript将游戏成绩传到排名页面...
  2. 武汉流星汇聚:亚马逊无人机配送来临,无人机送货将成为趋势
  3. Android R 、Android 11 API 30差异报告解读
  4. 漫谈socket-io的基本原理
  5. Unity3D Update() 和 FixedUpdate()区别--unity3Dday02
  6. Linux学习笔记22——sigsuspend 让指定的信号无法唤醒进程
  7. 东营市西城区小吃大全
  8. 清华数据结构PA7——无线广播(Broadcast)
  9. 修改系统环境变量path
  10. 查询天气预报系统之---API网关的意义(十二-1)