一、Github地址:https://github.com/nullcjm/mypage

项目搭档:3117004662梁子豪 3117004648陈俊铭

二、PSP表格:

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

30

30

· Estimate

· 估计这个任务需要多少时间

30

30

Development

开发

800

840

· Analysis

· 需求分析 (包括学习新技术)

120

100

· Design Spec

· 生成设计文档

30

30

· Design Review

· 设计复审 (和同事审核设计文档)

30

30

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

20

20

· Design

· 具体设计

60

60

· Coding

· 具体编码

480

520

· Code Review

· 代码复审

30

40

· Test

· 测试(自我测试,修改代码,提交修改)

30

40

Reporting

报告

90

90

· Test Report

· 测试报告

40

40

· Size Measurement

· 计算工作量

20

30

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

30

20

合计

940

960

 

三、设计实现过程:

四、代码说明:

在遇到把假分数转换成带分数的时候遇到了令我们哭笑不得的情况,或许是当时2个人已经不清醒了,连Fraction最本来的用法都忘了。在生成表达式的分数时用了比较笨的办法,分别生成分子和分母,通过向下取整的‘//’运算获得带分数的整数部分,通过求余运算获得分子部分,本来打算用同样的方法在判对错功能时,突然懵住了,本来想用正则表达式把提交答案的分子分母分离出来再转换成带分数,再与生成的正确答案比较(因为前面把生成的答案变为带分数了),觉得很麻烦。后来经提醒Fraction的最基本用法就有把分数分子分母分离的功能(我们2个真的是憨憨),知道这后转换其实很简单(精神抖擞.jpg)。

def change_fraction(s):
"""
把分数转换为带分数
:param s:原分数
:return :带分数
"""
fra = Fraction(s)
if fra.numerator % fra.denominator == 0:
fra = int(fra.numerator / fra.denominator)
return str(fra)
elif fra.numerator > fra.denominator:
integer = fra.numerator // fra.denominator
fra = fra - integer
return "'".join([str(integer), str(fra)])
else:
return s

五、测试运行:

1.生成一万道题

2.生成答案

3.检查对错

4.输入指令

六、项目小结:

这次结对编程收获匪浅,两个人的通力协作带来了1+1>2的力量。两人协作的效率比个人要好得多,比起自己百度,还是两人讨论更省事。

真假分数的转化想了很久,网上也只搜到了数学的解决方法,后来去问了别人,得知了Fraction才解决了问题。项目这种事果然是人越多,问题越容易解决。

最新文章

  1. MYSQL性能优化的最佳20+条经验
  2. 127.0.0.1\SQLEXPRESS连接异常
  3. 为 Xamarin.Forms 做个跑马灯控件
  4. phpcms v9无法连接数据库服务器,请检查配置
  5. 【C++】动态内存与智能指针
  6. oc-32-@property示例
  7. ios7 webapp touch bug
  8. Temporary Post Used For Theme Detection (19f70e1d-5d8d-4c19-aef1-5b5a71ae0c47 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  9. 把一个数组向右循环移动k位要求时间复杂度为O(n)
  10. c++ 类名和enum时重复时要在类名前加class::
  11. Filter技术+职责链模式
  12. Boost中timer的简易用法
  13. 二、js的控制语句
  14. Vuex非常适合新手的教程,保教不会!
  15. webpack4 学习 --- 处理静态资源
  16. 解决 DBMS_AW_EXP: BIN$*****==$0 not AW$
  17. shell基础及变量
  18. call、apply的作用和区别是什么?
  19. Django 中bootstrap的引用
  20. 【Android】解析Android的路径

热门文章

  1. 201871020225-牟星源《面向对象程序设计(java)》第十五周学习总结
  2. 代码审计-strcmp比较字符串
  3. jQuery的DataTables中的TableTools的基本使用
  4. nginx 配置使用index.php作为目录的默认加载文件
  5. Leetcode61.旋转链表
  6. 【redis】安装redis
  7. ASP.NET CoreMVC 中的控制器
  8. B1043 输出PATest (20 分)
  9. Linux系统运维笔记,CentOS 7.4防火墙配置
  10. 开源基于Canal的开源增量数据订阅&消费中间件