软件工程 编程作业1

这个作业属于哪个课程 班级的链接
这个作业要求在哪里 作业要求的链接
这个作业的目标 <使用git上传项目到码云>
学号 20188439
其他参考文献 《构建之法》

目录:
1,psp表格
2,解题思路描述
3,概要设计
4,代码规范
5,计算模块接口的设计与实现过程
6,单元测试和性能分析
7,异常处理说明
8,进行性能分析和改进
9,心路历程与收获

码云地址

1,PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 8
Estimate 估计这个任务需要多少时间 1000 1200
Development 开发 50 50
Analysis 需求分析 (包括学习新技术) 10 10
Design Spec 生成设计文档 5 10
Design Review 设计复审 10 15
Coding Standard 代码规范 (为目前的开发制定合适的规范) 5 5
Design 具体设计 5 50
Coding 具体编码 10 55
Code Review 代码复审 10 20
Test 测试(自我测试,修改代码,提交修改) 50 100
Reporting 报告 200 300
Test Repor 测试报告 20 30
Size Measurement 计算工作量 5 5
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 5 5
合计 2000

2,解题思路描述

实现基本需求:
1,统计文件的字符数(对应输出第一行):

只需要统计Ascii码,汉字不需考虑
空格,水平制表符,换行符,均算字符
2,统计文件的单词总数(对应输出第二行),单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。

3统计文件的有效行数(对应输出第三行):任何包含非空白字符的行,都需要统计。

4,统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个。

3,概要设计

文件的读取
使用BufferedReader类进行文件读取
以前Java课学习过IO读取文件,老师以前也提过BufferedReader这个类读取文件
计算行数、计算字符
使用BufferedReader类中readline()方法进行行数的分割,同时计算行数
使用length()方法计算每行的字符数并进行累加
单词的分割
使用split()方法将单词分割并存入字符串数组,便可计算单词数
单词频率统计
首先想到的是读数组,比较内容统计频率,后来经查找,可以采用map
4代码规范


码云规范链接
5,计算模块接口的设计与实现过程


一个WordCount类:
main()函数
文件的读取:
BufferedReader br = new BufferedReader(new FileReader("src/input.txt")); //读取文件
SortMap()排序函数:
ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(old.entrySet()); Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() { @Override public int compare(Entry<String, Integer> word1, Entry<String, Integer> word2) { return word2.getValue() - word1.getValue(); } }
6, 单元测试和性能分析

单词测试:
String[] wordsArr = readLine.split("[^a-zA-Z]"); //分割单词 lines++; for (int i=0;i<wordsArr.length;i++) //将单词存入List { String word=wordsArr[i]; if(word.length() != 0) { lists.add(word); }

在input.txt文件输入所测试的代码:

结果output.txt输出

7,异常处理说明

此程序对异常没有处理,但可以在文件读取部分进行一场处理
抛出异常并在文件中解决
8,进行性能分析和改进

时间上还未优化,目前没有很好的优化思路。
9,心路历程与收获

在完成了这一次的编程任务,耗时比较多,也比较艰辛。对我以后能力的培养,起了很大的帮助。
所以有很多漏洞还没改,慢慢的通过《构建之法》的学习,实现并完成了这一次作业,🤦‍

posted @ 2021-04-01 16:52  4am_Godv  阅读(54)  评论(0编辑  收藏  举报