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函数

七、代码说明

运行结果:

项目关键代码:

static void Main(string[] args)
        {
            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相关推荐

  1. 第一次作业-李纯锐201731084433

    作业属于课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求位置 https://edu.cnblogs.com/ ...

  2. 寒假Python第三天作业

    寒假Python第三天作业作业 1:计算器: 请输入两个数和一个符号,完成两个数的+ - * / % // ** a=float (input ("请输入第一个数 : ")) b= ...

  3. OO第三单元作业总结

    OO第三次作业总结 一.JML (一)JML语言理论基础 (1)JML表达式: JML表达式包括以下几种: 原子表达式如\result(方法执行后的返回值).\old(表达式在相应方法执行前的取值): ...

  4. 程序设计第三次作业附加 代码规范

    题目:第三次作业附加 myGithub 我的程序设计第三次作业 Calculator.h //==============================// //文件名称:calculator.h ...

  5. JML规格编程——BUAA OO第三单元作业总结

    整体概述 这个单元整体围绕Java Model Language(JML)展开,通过学习JML规格了解契约式编程的过程,课上实验中进行了JML规格的简要编写,课下实验主要通过阅读规格并按照规格的要求正 ...

  6. 2021年人工神经网络第三次作业-第二题:遗传算法与人工神经网络-参考答案

    简 介: 给出了对于BP网络求解异或问题过程中,利用遗传算法完成网络演变的过程.所使用的遗传算法是最基本的遗传算法.利用遗传算法对于网络的系数进行演变,可以对网络系数初始化过程进行优化.对于不同的遗传 ...

  7. 2021年春季学期-信号与系统-第三次作业参考答案-第十一道题

    本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第十一道题 11. 如果已知系统的输入输出关系可以使用二阶常系数 差分方程来描述.如果相应输入为:x[n]=u[n]x\l ...

  8. 2021年春季学期-信号与系统-第三次作业参考答案-第十道题

    本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第十道题 10. 求解差分方程: (1)第一小题 y[n]=−5y[n−1]+ny\left[ n \right] = - ...

  9. 2021年春季学期-信号与系统-第三次作业参考答案-第九道题

    本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第九道题 9. 已知因果线性时不变系统的输入输出之间的微分方程为: ddty(t)+5y(t)=∫−∞∞x(τ)f(t−τ ...

  10. 2021年春季学期-信号与系统-第三次作业参考答案-第八道题

    本文是 2021年春季学期-信号与系统-第三次作业参考答案 中的参考答案. ▌第八道题 8. 某LTI系统,输入信号e(t)=2e−3tu(t)e\left( t \right) = 2e^{ - 3 ...

最新文章

  1. 姚期智云栖大会首日演讲:为什么我说现在是金融科技的“新”黄金时代
  2. Kong APIGW — v.s. Apache APISIX
  3. WindowsTime服务设置
  4. 定义物料管理的容差范围
  5. 趣学python3(1)-f前缀格式化字符串文本
  6. Git的pull clone fetch
  7. 【Luogu】P3380树套树模板(线段树套Splay)
  8. VMM系列之添加Hyper-V群集主机到VMM服务器
  9. 小甲鱼 OllyDbg 教程系列 (二) :从一个简单的实例来了解PE文件
  10. C#判断回文字符串【C#】
  11. 谍照曝光!特斯拉正在测试完全自动驾驶
  12. 进程管理工具   htop
  13. 昨晚调试一段PHP程序时遇到的三个问题
  14. Android Studio在创建项目是一直处于building “project name”gradle project info的解决办法...
  15. resin mysql_nginx+resin+mysql实现session共享
  16. 数学建模美赛该如何准备?
  17. 黑马程序员3天带你玩转Python深度学习TensorFlow框架学习笔记
  18. 广东省数字经济行业发展动态及十四五前景预测分析报告2022-2027年
  19. docker配置redis
  20. 超级电容与锂电池的比较

热门文章

  1. 2018最新版省市区三级联动数据
  2. 自动驾驶相关功能名词和汽车名词解释
  3. 微信自动跳转默认浏览器 微信扫一扫直接打开外部浏览器
  4. AR/VR研究框架——迎接AR元年
  5. mac mysql 移动硬盘_MAC上安装Fuse for macOS以支持读取NTFS格式的移动硬盘
  6. 杂七杂八之Ubuntu-16.04安装 vs code
  7. 在C语言中的实型变量分为两种类型6,在C语言中的实型变量分为两种类型.doc
  8. 聋校计算机教学案例,聋校汉语拼音b、p的教学案例
  9. 从 SEC EDGAR 获取股东治理数据 (Shareholder Activism)
  10. asps英文_汽车术语中英文对照