个人项目作业
1.Github项目地址
https://github.com/smart6666/hong-SE/tree/master/hong-SE
2.PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
20 |
30 |
· Estimate |
· 估计这个任务需要多少时间 |
20 |
30 |
Development |
开发 |
100 |
175 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
40 |
· Design Spec |
· 生成设计文档 |
0 |
0 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
· Design |
· 具体设计 |
20 |
60 |
· Coding |
· 具体编码 |
20 |
15 |
· Code Review |
· 代码复审 |
10 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
30 |
Reporting |
报告 |
35 |
40 |
· Test Report |
· 测试报告 |
15 |
15 |
· Size Measurement |
· 计算工作量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
10 |
15 |
合计 |
155 |
245 |
3.解题思路
- 看到这个题目首先确定使用自己比较擅长的语言java。
- 由于以前没有涉及过项目,所以先上网查找资料学习做需求分析(https://www.cnblogs.com/ningjing-zhiyuan/p/8563562.html)
- 根据需求设计类,需要有一个读取文件的工具类,一个可以调用工具类然后输出结果的类及测试类。
4.设计实现过程
5.代码说明
public static String read(String fileName) { StringBuilder sb = new StringBuilder(); try { BufferedReader in= new BufferedReader(new FileReader( new File(fileName).getAbsoluteFile())); try { String s; while((s = in.readLine()) != null) { sb.append(s); sb.append(" "); } } finally { in.close(); } } catch(IOException e) { throw new RuntimeException(e); } return sb.toString(); }
private static String getFilePathFromFileChooser() { JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("请选择文本文件"); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //只支持选取文件 fileChooser.setMultiSelectionEnabled(false); //只支持选取单文件 fileChooser.showDialog(new JLabel(), "选择"); File selectedFile = fileChooser.getSelectedFile(); if (selectedFile == null) { return null; } System.out.println(selectedFile.getAbsolutePath()); return selectedFile.getAbsolutePath(); }
WordCounter wordCounter = new WordCounter(fileName); for (String arg : parameters) { //用户选项为“-c” if (arg.equals("-c")) { int charNum = wordCounter.charNumCounter(); if (charNum >= 0) System.out.println("文件字符数为:" + charNum); else System.out.println("字符数计算出错"); } //用户选项为“-w” if (arg.equals("-w")) { int wordNum = wordCounter.wordNumCounter(); if (wordNum >= 0) System.out.println("文件单词数为:" + wordNum); else System.out.println("单词计算出错"); } //用户选项为“-l” if (arg.equals("-l")) { int lineNum = wordCounter.lineNumCounter(); if (lineNum >= 0) System.out.println("文件行数为:" + lineNum); else System.out.println("行数计算错误"); } }
6.测试运行
7.项目小结
这是一个看起来不难,实际操作却很繁杂的人,我很久没打码了,老师突然要求做项目真的很措手不及,而且我还等到快交作业的时候才做,时间实在仓促,只做了基本功能,和一个选择文件视图。感觉很多时间都在犹豫做什么,思路不清晰,有点混乱。