20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结

结对对象

20165219王彦博

20165232何彦达

需求分析

实现一个程序,要求:

1 支持整数运算

2 支持多运算符运算

3 支持分数运算,支持真分数运算

扩展需求:

1 处理生成题目并输出到文件

2 完成题目后从文件读入并判题

3 多语言支持:简体中文, 繁體中文, English

4 生成题目去重

设计思路

这是一个需要支持复杂运算的程序,不同于简单的单运算符的四则运算,需要设计多个类来实现运算,比如加减乘除以及平方的运算。

nml图(部分)

第一周

第二周

代码进度

整数计算类

public class IntNumber {private int A;public int getA(){return A;}public IntNumber(int A){this.A = A;}public int add(IntNumber op1){int sum = A + op1.A;System.out.print(A + " + " + op1.A + "=");return sum;}public int subtract(IntNumber op1){int num = A - op1.A;System.out.print(A + " - " + op1.A + "=");return num;}public int multiply(IntNumber op1){int num = A * op1.A;System.out.print(A + " * " + op1.A + "=");return num;}public static IntNumber obj(){Random ran = new Random();return new IntNumber(ran.nextInt(20)-10);}public String divide(Score op1){System.out.print(op1.getNumerator() + " / " + op1.getDenominator() + "=");return op1.toString();}
}

分数类运算

public class Score {private int fenzi;//分子 private int fenmu;//分母 public int getFenzi() {return fenzi;}public void setFenzi(int fenzi) {this.fenzi = fenzi;}public int getFenmu() {return fenmu;}public void setFenmu(int fenmu) {this.fenmu = fenmu;}public FenShu (){}public FenShu (int molecular,int assignment){ fenzi=molecular; fenmu=assignment; } //两个分数相加 public FenShu  add(FenShu  a,FenShu  b){ a.fenzi=a.fenzi*b.fenmu+b.fenzi*a.fenmu; a.fenmu=a.fenmu*b.fenmu; a=simplify(a);return a;} public FenShu  sub(FenShu  a,FenShu  b){a.fenzi=a.fenzi*b.fenmu-b.fenzi*a.fenmu; a.fenmu=a.fenmu*b.fenmu; a=simplify(a);return a;   }public FenShu  mul(FenShu  a,FenShu  b){a.fenzi*=b.fenzi;a.fenmu*=b.fenmu;a=simplify(a);return a;}public FenShu div(FenShu  a,FenShu  b){a.fenzi*=b.fenmu;a.fenmu=a.fenmu*b.fenzi;a=simplify(a);return a;}   //化简public FenShu  simplify(FenShu  a){ int small;//记录相当小的数 int big;//记录相对大的数 if(a.fenzi>a.fenmu){ small=a.fenmu; big=a.fenzi; }else{ small=a.fenzi; big=a.fenmu; } //得到相对小的数的所有约数 List<Integer> list=new ArrayList<Integer>(); int maxCommonFactor = 1;for(int i=2;i<=small/2;i++){ if(small%i==0&&big%i==0){ maxCommonFactor = i; } } a.fenzi /= maxCommonFactor;a.fenmu/=maxCommonFactor;return a; } public FenShu StrToFrc(String str){//分数转为字符FenShu a=new FenShu();int x=Integer.valueOf(str);a.fenmu=1;a.fenzi=x;return a;}public String FrcToStr(FenShu a){//字符转为分数String str="";if(a.fenzi==0) str=0+"";else {int x=a.fenzi;int y=a.fenmu;int flag=0;if(x<0) flag+=1;x=Math.abs(x);if(y<0)  flag+=1;y=Math.abs(y);if(flag==1) str+="-";if(x>=y){int z=x/y;int q=x%y;if(q==0){str+=z+"";}else str+=z+""+"'"+q+""+"/"+y+"";}else  str+=x+""+"/"+y+"";}return str;}}

功能截图

正常情况测试

边界情况测试

异常情况测试

结对感受

经过两个周的结对编程,我认为四则运算在思路上看似简单,但是具体操作起来有许多的不足,首先分数类计算的代码是请教同学后完成,其次单元测试类的代码没有完成,并且不能支持多级运算。相信之后的结对学习中可以慢慢完善。

结对互评

王彦博同学在结对编程中给了我很大的帮助,有一些代码的问题我不是很清楚,王彦博同学都耐心为我解答。

结对照片

转载于:https://www.cnblogs.com/heyanda/p/8910500.html

20165232 结对编程第二周总结相关推荐

  1. 软件工程(2019)结对编程第二次作业

    结对编程第二次作业 利用普普通通的游戏引擎实现普普通通的电梯调度算法 这是我的结对伙伴张斯豪同学的排版异常诡异的博客(狗头). 单元测试 对关键Elevator类中的WhetherAccept进行单元 ...

  2. 软件工程——结对编程第二次作业

    目录 1. 题目及要求 2. 功能的设计 3. GUI(图形用户界面)的设计 4. 容错机制的设计 4.1 选择运算符的容错处理 4.2 最大值和题目数输入的容错处理 4.3 打开文件容错处理 4.4 ...

  3. 第六次作业--结对编程第二次作业

    结队成员: 自己: 学号 姓名 性别 616 语恳 男 队友: 学号 姓名 性别 队友博客 618 炜坤 男 队友博客 github链接 项目要求 1.输入的数据,另外写生成程序随机实现. 2.为输入 ...

  4. 现代软件工程系列 结对编程 两周写好3D 陆战棋

    from: http://cid-ba6a52af193f301f.spaces.live.com/blog/cns!BA6A52AF193F301F!122.entry Oh,my pair pro ...

  5. 第六次作业--结对编程第二次

    本次作业deadline: 2017-10-10 21:00 根据上一次结对作业的背景,实现一个分配算法,根据输入信息,输出: 部门和学生间的匹配信息(一个学生可以确认多个他所申请的部门,一个部门可以 ...

  6. 2017-2018-2 1723《程序设计与数据结构》第八周作业 实验二 第一周结对编程 总结...

    作业地址 第八周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1847 (作业界面已评分,可随时查看,如果对自己的评分有意 ...

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

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

  8. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  9. 20165101刘天野 2017-2018-2 《Java程序设计》 结对编程练习_四则运算(第二周)

    20165101刘天野 2017-2018-2 <Java程序设计> 结对编程练习_四则运算(第二周) 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持分数运算 支持多运算符 ...

  10. java周志第二周_20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算

    20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 1.Git提交日志已经实现一个功能/一个bug修复的注释说明,如图所示: 2.测试代 ...

最新文章

  1. Realtek 8192cu 支持 Android Hotspot
  2. linux tr命令书上的一个很好的例子
  3. java字符编码方式总结
  4. python---(4) win10 环境下访问MYSQL 数据库
  5. 相近字符串的匹配--编辑距离问题
  6. php mysql_fetch_array 函数大全,深入探讨PHP mysql_fetch_array()函数
  7. oracle mysql us7acsii_有关oracle数据库us7ascii字符集转换策略的探讨
  8. zufeoj_1257: 神风堂人数 VIJOS-P1041
  9. FIT2CLOUD飞致云旗下开源项目DataEase成功进入GitHub趋势榜主榜
  10. 北航计算机专业报录比,北京航空航天大学考研报录比数据查询
  11. 诛仙服务器技能修改,2021年5月21日正式服技能修改公告
  12. 不同币种间的清账 应付账款是USD记账 预付账款账款是人民币记账 如何清账
  13. 美食杰 login的实现效果
  14. 领导最不赏识这5类下属
  15. 软件获取imei和imsi_android平台获取手机IMSI、IMEI 、序列号和手机号的方法
  16. 自动化测试到底怎么做(单元测试自动化,接口自动化,UI自动化)
  17. FPGA开发技巧备忘录——目录
  18. NVIDIA中文车牌识别系列-3:使用TLT训练车牌号识别LPR模型
  19. win7出现无法连接到代理服务器的错误,不能上网的问题的解决
  20. 关于K8S外部域名解析和hostNetwork内部域名解析问题笔记

热门文章

  1. Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
  2. 2021福州金桥学校高考成绩查询,2021年福建高考成绩排名及成绩公布时间什么时候出来...
  3. 初探Java设计模式4:JDK中的设计模式
  4. html相册滑动手风琴效果实现,JS实现图片手风琴效果
  5. 震惊!旷视首席科学家、知名AI学者孙剑博士去世
  6. 应该用BPM管理业务规则吗?
  7. LR2021下载LR2021最新10.1.0下载安装Lightroom最新下载1分钟看完就能自己操作
  8. 安卓市场的“安全评估报告”攻略
  9. 集成学习之随机森林案例专题【Python机器学习系列(十七)】
  10. PS制作火焰效果文字的方法步骤教程