寒假作业2

寒假作业2

这个作业属于哪个课程 2020春W班
这个作业要求在哪里 作业要求
这个作业的目标 熟悉github使用及PSP流程
作业正文 本文
其他参考文献 CSDN、菜鸟教程


PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 40
Estimate 估计这个任务需要多长时间 10 10
Development 开发 25 30
Analysis 需求分析(包括学习新技术) 80 80
Design Spec 生成设计文档 25 30
Design Review 设计复审 15 20
Design Standard 代码规范(为目前开发制定合适的规范) 25 25
Design 设计 30 45
Coding 编码 760 860
Code Review 代码复审 60 90
Test 测试 60 80
Reporting 报告 30 40
Test Report 测试报告 10 15
Size Measurement 计算工作量 15 20
Postmortem & Improvement Plan 事后总结,提出改进计划 20 20
合计 1195 1505

思路描述

看到题目后我就想到程序将会进行许多字符串模式判断,然后根据不同的字符串格式做相应的处理,最后输出到文件的时候处理一下几个参数,比较自然想到了正则表达式。

程序设计及主要函数流程图

这是程序代码简单设计图,看了助教大佬的建议我学着用了两个设计模式,希望使整个程序的扩展性和维护性更好.

整体的设计

pattern

CommandManager的参数处理函数setArguments()流程图

setArguments

list命令的执行函数execute()流程图

list.execute

具体模式的日志行处理函数doCount()流程图

doCount

代码说明

CommandManager类的setArguments()方法接收从命令行输入得来的字符串数组,将以"-"开头的参数及其后的选项放入为各自新建的队列中,最后再把这些队列放入Arguments队列中,得到参数队列
setarguments
在list的execute方法中,首先遍历CommandManager提供的参数列表提取出list命令的参数,如果不含必要的log和out参数则报错。
log,out
通过遍历文件夹的时候遍历日志文件,提取日志行交给LogHandle类的LogHandlerList()方法执行,该方法根据日志行匹配的模式选择相应的类执行
files
从命令行读取字符串数组后可以从数组头直接得到执行的主命令,接着判断该读取的命令是否是已经实现的命令。这里是采用了命令模式,可以动态的调整命令的种类,只要实现了的命令就可以添加到CommandInvoker的支持命令列表里
commandinvoker
新增记录,判断感染表中是否存在该省份的记录,不存在则创建,否则取出该记录加上新增数目再放入(减少类似)
新增
新增死亡记录,将死亡者所在省份的感染患者减少相应数目,并且对死亡表做出相应修改
死亡
相应省份的疑似表的记录做出值减少修改
排除
流出省份的相应记录表做值减少修改,流入省份判断是否有相应的类型存在,存在则修改值,否则创建记录
流入

单元测试

将9种类型的日志行分别测试,得到输出结果和预期相符

测试CommandManager的字符串处理,得到的参数结果符合预期

更改参数,并进行覆盖率测试,三组类型的测试可以基本代表所有情况,并且三组测试完主要代码覆盖率100%,(调用类代码很简单就没必要单独测了)

> ## > ##[github仓库](https://github.com/superma187/InfectStatistic-main) [代码规范](https://github.com/superma187/InfectStatistic-main/blob/master/221701229/codestyle.md) > ##心路历程 > > ##github相关仓库 > [前端技术清单](https://github.com/alienzhou/frontend-tech-list) > 该仓库包含了前端的基础到进阶知识清单,并进行了结构化整理 > [面试题库](https://github.com/CyC2018/CS-Notes) > 该仓库里不仅前端的面试题库,还有其他的面试资料 > [30-seconds-of-code](https://link.zhihu.com/?target=https%3A//github.com/30-seconds/30-seconds-of-code) > 该仓库是JavaScript的练习题库,题目都是只要短时间就可以理解的例子,可以更好地快速理解巩固js知识 > [Daily-Interview-Question](https://link.zhihu.com/?target=https%3A//github.com/Advanced-Frontend/Daily-Interview-Question) > 每天做一道大厂的题,虽然菜但是要有梦想![](https://img2018.cnblogs.com/blog/1926159/202002/1926159-20200218164247175-577202778.png)

vue.js源码解析
vue源码解析。。。

posted on 2020-02-18 16:44  jinitaimei996  阅读(205)  评论(3)    收藏  举报