这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 学会结对编程,合作编写程序 |
成员:3119005343王宇崇
Github链接
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 20 |
Estimate | 估计这个任务需要多少时间 | 25 | 10 |
Development | 开发 | 300 | 390 |
Analysis | 需求分析 (包括学习新技术) | 400 | 450 |
Design Spec | 生成设计文档 | 30 | 40 |
Design Review | 设计复审 | 20 | 10 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
Design | 具体设计 | 30 | 20 |
Coding | 具体编码 | 500 | 400 |
Code Review | 代码复审 | 30 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 20 | 20 |
Reporting | 报告 | 20 | 30 |
Test Repor | 测试报告 | ||
Size Measurement | 计算工作量 | 10 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 20 |
合计 | 1435 | 1510 |
main:项目入口
AnswerCheckUtil类:检验答案是否正确
ExerciseIntegerUtil类:生成整数型题目
ExerciseFractionUtil类:生成分数型题目
FractionOperationUtil类:将分数转换为带分数
ExerciseInsertUtil类:将题目和答案写入文本文件中
main类
package main; import java.io.File; import java.io.IOException; import java.util.Scanner; import utils.AnswerCheckUtil; import utils.ExerciseFractionUtil; import utils.ExerciseIntegerUtil; public class main { public static void main(String[] args) { //n表示输入题目数量,x表示输入数字的范围 int in,n,x,over; System.out.println("自动生成小学四则运算题目"); while(true) { Scanner scanner=new Scanner(System.in); System.out.println("选择题目类型:1整数类型,2分数类型"); //判断是否输入为数字 if(!scanner.hasNextInt()) continue; in=scanner.nextInt(); if(in==1) { System.out.println("请输入出题的数量和数字的范围"); n=new Scanner(System.in).nextInt(); x=new Scanner(System.in).nextInt(); ExerciseIntegerUtil.getExerise(n, x); File file=new File("write.txt"); try { if(!file.exists()) file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("请在write.txt中作答,答题完毕请输入1"); over=scanner.nextInt(); //判断是否输入正确 while(over!=1) { System.out.println("输入有误,请重新输入"); over=new Scanner(System.in).nextInt(); } AnswerCheckUtil.checkAnswer(); } else if(in==2) { System.out.println("请输入出题的数量和数字的范围"); n=new Scanner(System.in).nextInt(); x=new Scanner(System.in).nextInt(); ExerciseFractionUtil.getExercise(n, x); File file=new File("write.txt"); try { if(!file.exists()) file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("请在write.txt中作答,答题完毕请输入1"); over=scanner.nextInt(); while(over!=1) { System.out.println("输入有误,请重新输入"); over=new Scanner(System.in).nextInt(); } AnswerCheckUtil.checkAnswer(); } else { System.out.println("你输入有误"); } } } }
在这次结对编程中,我没有找到合适的队友,所以打算一个人完成这个项目,先是在网上找了资料学习,但是却没有得到好的思路,还好有和其他已经结了对的同学交流讨论后,我才能确定初步的思路,开始项目。在项目的完成过程中,由于只能由一个人来考虑并完成,所以在碰到许多难题时,便会浪费很长的时间,由此我深刻地体会到这个项目需要结对的重要性。在项目完成之后,对于题目的部分要求也不能很好的满足,例如对于题目的查重功能未能实现,总的来说,这是一次令我印象深刻的编程体验,我觉得对于一个编程项目来说,相比由一个人来完成,还是与人合作,多讨论多交流才能让成果更符合需求,让自己收获更多。