wordcount
22:34:09
【管理员】哈哈 2018/10/21 22:34:09
1、合作者
201631062318,201631062218
2、代码地址
https://gitee.com/yzyindex/wordcount2.0
3、本次作业地址
https://edu.cnblogs.com/campus/xnsy/2018Systemanalysisanddesign/homework/2188
4、正文
(1)psp表格
psp2.1 | psp阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 70 | 50 |
Estimate | 估计这个任务需要多少时间 | 100 | 75 |
Development | 开发 | 600 | 700 |
Analysis | 需求分析 (包括学习新技术) | 200 | 300 |
Design Spec | 生成设计文档 | 40 | 40 |
Design Review | 设计复审 (和同事审核设计文档) | 30 | 30 |
Coding | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Code Review | 具体设计 | 70 | 90 |
Test | 具体编码 | 100 | 200 |
Reporting | 代码复审 | 30 | 60 |
Test Report | 报告 | 30 | 70 |
Size Measurement | 测试报告 | 30 | 10 |
Postmortem & Process | 计算工作量 | 20 | 25 |
Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 1350 | 1685 |
(2)代码互审情况
向新宇审查杨泽宇:
1、目录处理存在bug,返回空文件列表,没做相应处理。
2、若在输入模块中file对象带有空格,在命令行界面无法处理,只是抛出一个异常。
3、在图形界面,应该让用户选择文件,而不是输入文件名,那样太容易输入错,且更方便处理代码。
杨泽宇审查向新宇:
1、判断输入的一串指令是否符合要求的模块,存在重复输入同意指令报错的情况。
2、在命令行输入模块中,若文件名带有空格,会被分割成两个参数进入字符串数组,导致检查指令是否合法不通过,不能正常运行。
(3)项目流程图:
(4)项目展示
启动界面:
在命令行界面执行全部指令:
执行结果
对于命令行界面至今存在一个bug,就是无法检查文件名出现空格的文件,这里程序只做了一个抛出提示信息的处理。
图形界面
启动图形界面是在命令行中输入-x
界面展示:
选择指令:
选择文件:
全部指令选择后的执行结果:
执行后会根据不同的结果来出现提示窗口,于命令行不同图形界面可以处理名字中含有空格的文件,这得益于图形界面的执行指令可以拼接非常好操作。
(5)关键代码说明
'''java
//检验输入指令是否合法的代码主要是通过拆分输入的指令到一个字符串数组中,在对其进行进一步检验,如代码中的注释
while(flag)//输入不正确 循环输入知道正确为止。
{
str= p.split(getString(infor));//将输入信息切分成数组
//输出输入内容
for(String val:str)
{
System.out.println(val);
}
if(str[0].equals("-x"))
{
return str;
}
//命令的参数长度必定大于2
else if(str.length>=2)
{
//倒数第二位不-o,不指定输出文件
if(str[str.length-2].indexOf("-o")==-1)
{
int count=0;
//此循环用于遍历命令数组,统计含-的命令数
for(int i=0;i<str.length-1;i++)
{
ma= p1.matcher(str[i]);
if(str[i].startsWith("-")&&str[i].length()==2)
{
if(str[i].contains("-s"))//若带—s参数必带一个匹配的字符,此时需要加1
{
count++;
}
if(str[i].contains("-e"))//若带-e参数必定带一个 停用表 ,此时需加1
{
count++;
}
if(ma.find())
{
count++;
}
}
}
if(count==(str.length-1))
{
flag=false;
//oper.setFile1(new File(str[str.length-1]));
}
else
System.out.println("存在错误指令,请按要求输入");
}
else //指定输出文件
{
int count=0;
for(int i=0;i<str.length-1;i++)
{
ma= p1.matcher(str[i]);
if(str[i].startsWith("-")&&str[i].length()==2)
{
if(str[i].contains("-s"))
{
count++;
}
if(str[i].contains("-e"))
{
count++;
}
if(ma.find())
{
count++;
}
}
}
if(count==(str.length-2))
{
flag=false;
//oper.setFile1(new File(str[str.length-3]));
}
else
System.out.println("存在错误指令,请按要求输入");
}
}
else
{
System.out.println(err);
}
}
'''
(5)总结
虽然这次的项目看起简单,但写下来的过程还是很曲折,特别是到最后还出现了一些难以解决的问题(命令行输入文件名中带有空格的文件无法正常执行,只能提示重新输入),还好向兄提出这个bug的时候还比较早,于是我在图形界面处理了这个问题,但命令行中还是未能够实现。除此之外,这次的项目还提高了我对java图形界面的一些认知,我以前基本没有学java的图形界面,觉得以后工作中不会用这么难使用的东西,现在倒觉得拿这个写一些小的东西还是需要的,特别是当你有这个需求的时候,在这个项目中很多代码都可以重用,但是初期没有考虑到高级功能,所有没有做好计划,项目还有许多需要完善的地方。
对于1+1?>2这个问题,我认为1+1可能大于2也可能小于1,这取决于两者之间的交流是否准确,有效,这次的项目经历中我和我的伙伴在合并代码的时候有交流上的失误,最后我俩个字合并出的版本不同,还出现了不同的bug,而且这些bug还有些难处理,最后我俩拿着各自的电脑一起交流处理了bug,才完成了这个项目,不是很曲折但也不算顺利!