zoukankan      html  css  js  c++  java
  • 第三次作业-李纯锐-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函数

    七、代码说明

    运行结果:

    项目关键代码:

    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 + " ");
                    }
                    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();
            }

    八、心路历程与收获

     这次结对编程相对于之前的作业来说要轻松一点,因为是两个人合作完成。通过本次作业我也体会到了合作的重要性,两个人完成一项任务时,需要一定的默契度才能把事情做好。另外本次作业的代码由我负责,写代码的过程中,有几个新功能没有按作业要求来完成,我是直接将新功能写在源代码里面通过函数调用来实现,所以之后还需要好好学习这方面的知识。

  • 相关阅读:
    客车网上订票系统项目--会员管理、前端注册页面
    客车网上订票系统项目--管理员管理、前端用户留言
    客车网上订票系统项目--新闻模块
    后端模块-管理员登录、显示留言列表
    前端模块--首页留言页编辑
    前端模块--登录注册界面编辑
    JVM深入理解(一) -JVM初识
    45:漏洞发现-API接口服务之漏洞探针类型利用修复
    42:漏洞发现-操作系统之漏洞探针类型利用修复
    linux系统安全-2
  • 原文地址:https://www.cnblogs.com/lichunrui/p/10706062.html
Copyright © 2011-2022 走看看