第三次作业-李纯锐-201731084433
Github项目地址 | https://github.com/Lilcherry/WordCount.git |
作业地址 |
https://www.cnblogs.com/201731084433DZC/
|
作业链接 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2879 |
一、PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
0 | 0 |
· Estimate |
· 估计这个任务需要多少时间 |
120 | 100 |
Development |
开发 |
0 | 0 |
· Analysis |
· 需求分析 (包括学习新技术) |
15 | 10 |
· Design Spec |
· 生成设计文档 |
0 | 0 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 | 0 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 | 5 |
· Design |
· 具体设计 |
15 | 10 |
· Coding |
· 具体编码 |
90 | 75 |
· Code Review |
· 代码复审 |
30 | 35 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 | 35 |
Reporting |
报告 |
0 | 0 |
· Test Report |
· 测试报告 |
15 | 15 |
· Size Measurement |
· 计算工作量 |
10 | 15 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
10 | 20 |
合计 |
225 | 220 |
讨论图片:
分工:
李纯锐:主代码的编写,测试。
邓召春:小部分代码的编写,测试,博客的编写。
二、解题思路描述
在那道题目的时候,第一反应就是根据题目要就画一张流程图,直观的反应该程序需要实现的功能,以避免遗漏。大致的功能分布如下:
从中,可以清晰的看出这个程序一共分为两大功能模块,一是基本功能,二是新增功能。了解程序功能需求后,我们就开始分工设计相关函数,并进行编码。
三、设计实现过程
该程序一共 一个类,八个函数。其中,函数之间的联系是先是打开文件,然后分别统计字符数、单词数、有效行数、频数 ,然后是扩展功能,统计文件夹中指定长度的词组的词频,能输出用户指定的前n多的单词与其数量和将统计的单词按照字典序输出到新文件new.txt,关键函数是 main函数。
四、代码规范链接
http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
代码互审的情况:
审查的模块名:
邓召春:代码规范
李纯锐:代码正确性
发现的问题:代码正确性基本没什么问题,但是代码的规范性太差,可读性太差,缺少注释。
五、Github管理源代码和测试用例
六、性能分析
在改进程序性能上所花费的时间:20分钟
改进的思路:减少函数循环次数,增加新功能,建华代码,增加注释以便以提高可读性。
性能分析图:
消耗最大的函数:Main函数
七、代码说明
运行结果:
项目关键代码:
{
Console.Write("请输入文件路径:");
String path = Console.ReadLine();
String r, content = null;
StreamReader reader = new StreamReader(path, Encoding.Default);
try
{
while ((r = reader.ReadLine()) != null)
{
content += (r + "\n");
}
Console.WriteLine("文件内容如下:");
Console.WriteLine(content);
}
catch (IOException e)
{
Console.WriteLine(e.ToString());
}
reader.Close();
Program p = new Program();
p.Lines(content);
p.Character(content);
string[] str = p.Words(content);
IOrderedEnumerable<KeyValuePair<String, int>> dicSort = p.Times(str, path);
p.Times(str, path);
Console.Write("请输入词组长度:");
int m = int.Parse(Console.ReadLine());
p.NewTimes(str, m);
Console.Write("请输入单词数量:");
int n = int.Parse(Console.ReadLine());
p.Newcount(str, dicSort, n);
Console.Write("请输入输出文件位置:");
string o = Console.ReadLine();
p.Output(str, dicSort, o);
Console.Write("写入成功...");
Console.ReadKey();
八、心路历程与收获
这次结对编程相对于之前的作业来说要轻松一点,因为是两个人合作完成。通过本次作业我也体会到了合作的重要性,两个人完成一项任务时,需要一定的默契度才能把事情做好。另外本次作业的代码由我负责,写代码的过程中,有几个新功能没有按作业要求来完成,我是直接将新功能写在源代码里面通过函数调用来实现,所以之后还需要好好学习这方面的知识。
转载于:https://www.cnblogs.com/lichunrui/p/10706062.html
第三次作业-李纯锐-201731084433相关推荐
- 第一次作业-李纯锐201731084433
作业属于课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求位置 https://edu.cnblogs.com/ ...
- 寒假Python第三天作业
寒假Python第三天作业作业 1:计算器: 请输入两个数和一个符号,完成两个数的+ - * / % // ** a=float (input ("请输入第一个数 : ")) b= ...
- OO第三单元作业总结
OO第三次作业总结 一.JML (一)JML语言理论基础 (1)JML表达式: JML表达式包括以下几种: 原子表达式如\result(方法执行后的返回值).\old(表达式在相应方法执行前的取值): ...
- 程序设计第三次作业附加 代码规范
题目:第三次作业附加 myGithub 我的程序设计第三次作业 Calculator.h //==============================// //文件名称:calculator.h ...
- JML规格编程——BUAA OO第三单元作业总结
整体概述 这个单元整体围绕Java Model Language(JML)展开,通过学习JML规格了解契约式编程的过程,课上实验中进行了JML规格的简要编写,课下实验主要通过阅读规格并按照规格的要求正 ...
- 2021年人工神经网络第三次作业-第二题:遗传算法与人工神经网络-参考答案
简 介: 给出了对于BP网络求解异或问题过程中,利用遗传算法完成网络演变的过程.所使用的遗传算法是最基本的遗传算法.利用遗传算法对于网络的系数进行演变,可以对网络系数初始化过程进行优化.对于不同的遗传 ...
- 2021年春季学期-信号与系统-第三次作业参考答案-第十一道题
本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第十一道题 11. 如果已知系统的输入输出关系可以使用二阶常系数 差分方程来描述.如果相应输入为:x[n]=u[n]x\l ...
- 2021年春季学期-信号与系统-第三次作业参考答案-第十道题
本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第十道题 10. 求解差分方程: (1)第一小题 y[n]=−5y[n−1]+ny\left[ n \right] = - ...
- 2021年春季学期-信号与系统-第三次作业参考答案-第九道题
本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第九道题 9. 已知因果线性时不变系统的输入输出之间的微分方程为: ddty(t)+5y(t)=∫−∞∞x(τ)f(t−τ ...
- 2021年春季学期-信号与系统-第三次作业参考答案-第八道题
本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第八道题 8. 某LTI系统,输入信号e(t)=2e−3tu(t)e\left( t \right) = 2e^{ - 3 ...
最新文章
- 姚期智云栖大会首日演讲:为什么我说现在是金融科技的“新”黄金时代
- Kong APIGW — v.s. Apache APISIX
- WindowsTime服务设置
- 定义物料管理的容差范围
- 趣学python3(1)-f前缀格式化字符串文本
- Git的pull clone fetch
- 【Luogu】P3380树套树模板(线段树套Splay)
- VMM系列之添加Hyper-V群集主机到VMM服务器
- 小甲鱼 OllyDbg 教程系列 (二) :从一个简单的实例来了解PE文件
- C#判断回文字符串【C#】
- 谍照曝光!特斯拉正在测试完全自动驾驶
- 进程管理工具 htop
- 昨晚调试一段PHP程序时遇到的三个问题
- Android Studio在创建项目是一直处于building “project name”gradle project info的解决办法...
- resin mysql_nginx+resin+mysql实现session共享
- 数学建模美赛该如何准备?
- 黑马程序员3天带你玩转Python深度学习TensorFlow框架学习笔记
- 广东省数字经济行业发展动态及十四五前景预测分析报告2022-2027年
- docker配置redis
- 超级电容与锂电池的比较
热门文章
- 2018最新版省市区三级联动数据
- 自动驾驶相关功能名词和汽车名词解释
- 微信自动跳转默认浏览器 微信扫一扫直接打开外部浏览器
- AR/VR研究框架——迎接AR元年
- mac mysql 移动硬盘_MAC上安装Fuse for macOS以支持读取NTFS格式的移动硬盘
- 杂七杂八之Ubuntu-16.04安装 vs code
- 在C语言中的实型变量分为两种类型6,在C语言中的实型变量分为两种类型.doc
- 聋校计算机教学案例,聋校汉语拼音b、p的教学案例
- 从 SEC EDGAR 获取股东治理数据 (Shareholder Activism)
- asps英文_汽车术语中英文对照