寒假作业(2/2)

寒假作业(2/2)

这个作业属于哪个课程 2020软件工程w班
这个作业要求在哪里 作业要求
这个作业的目标 熟悉使用Github,提交疫情统计程序
作业正文 ....
其他参考文献 csdn,github,《码出高效_阿里巴巴Java开发手册》,《W3CSchool Junit使用教程》

一.我的github地址

二.psp表格

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

三.解题思路

刚开始接触题目需求还是挺懵的,以前学习java大都是在eclipse里能运行出结果就行了,命令行传入还没有实践过。文本的匹配一开始也是没有头绪。这些困难都在后面自己百度看博客论坛解决了。搞懂了这两个对我来说的难点后,我就开始考虑数据结构的问题,本来想用hashmap的,但经验几乎没有,怕出bug驾驭不了,最后还是决定用整形二维数组存储各个省份和全国的相关人数情况。思考完这些就开始写代码,我是把这个程序分成4个类:
InfectStatistic//主类,作业功能的实现
state//状态类,主要是对文本行的类型 文本行体现的各省相关人数状态进行操作
fileoperate//文件操作类 读取文件 写入文件
commandline//命令行类 对命令行参数进行解析 判断 保存
首先先实现了fileoperate类,然后对需求进行分析,进一步实现了state类,最后看了几个论坛和博客,模仿写了commandline类

四.设计实现过程

  • state类:
    1.创建字符串数组provinces[]保存全国和各个省份名。
    2.创建pattern字符串用于各个文本行类型的判断。
    3.judgetxtline(Stringtextstr)方法传入readline读取的str,通过textstr与pattern的比较,返回一个整形的文本类型,用于conditions方法的switch分支。
    4.conditions(String textstr,int conditions[][])方法,首先用split()方法,对readline读入的文本行切割,并用choice接受judgetextline()返回的文本行格式类型。switch分支,对各种类型的文本行进行各省的相关人数操作。
  • fileoperate类
    1.findFile(File dir,int conditions[][])方法,创建一个文件数组dirfiles[],将路径dir下的文件赋值给dirfiles[],然后便利dirfiles数组,对符合条件的文件,用字符流的方式每行读取文本,并调用state类中的conditions方法
    2.writetoFile(File file,int conditions[][])方法,传入存储了所有数据的conditions[][],并以一定的格式输出到文本
  • commandline类
    1.analysisCommand(String args[])方法,分析并存储命令行传入的参数
  • InfectStatistic类 实例化上述类,并实现程序功能

五.代码风格

六.心路历程与收获

这次项目还是收获很多的。首先思路里提到的两个主要的困难能够自主通过博客论坛百度解决,其实还好,主要是磨练了耐心和看代码学习的态度。刚开始觉得的困难,也许只是不懂某一个具体的方法或者某种类。
在具体的编程中,复习了java的基本语法和结构,也对面向对象的编程更加有经验与认识。在方法论上的收获的话,认识到了一开始不要着急写代码的必要,首先对需求进行细致的分析和了解,再对这个程序的大致结构进行勾画,预演编程中可能会遇到的困难。准备工作做好这些,在真正动手编程的时候,即便遇到困难也不会慌甚至放弃了。

七.作业一相关的github仓库

  • 1.Keras
    https://github.com/keras-team/keras
    Keras是一个高级神经网络API,用Python编写,能够在TensorFlow,CNTK或Theano之上运行。旨在完成深度学习的快速开发
  • 2.Zulip
    https://github.com/zulip/zulip
    Zulip是一款功能强大的开源群聊应用程序,它结合了实时聊天的即时性和线程对话的生产力优势。Zulip作为一个开源项目,被许多世界500强企业,大型组织以及其他需要实时聊天系统的用户选择使用,该系统允许用户每天轻松处理数百或数千条消息。
  • 3.Face Recognition
    https://github.com/ageitgey/face_recognition
    Face Recognition 是一个基于 Python 的人脸识别库,使用十分简便。这还提供了一个简单的face_recognition命令行工具,可以让您从命令行对图像文件夹进行人脸识别.
  • 4.Magenta
    https://github.com/tensorflow/magenta
    Magenta是一个探索机器学习在创造艺术和音乐过程中的作用的研究项目。这主要涉及开发新的深度学习和强化学习算法,用于生成歌曲,图像,绘图等。但它也是构建智能工具和界面的探索,它允许艺术家和音乐家使用这些模型。
  • 5.Ansible
    https://github.com/ansible/ansible
    Ansible是一个极其简单的IT自动化系统。它可用于配置管理,应用程序部署,云配置,支持远程任务执行和多节点发布 - 包括通过负载平衡器轻松实现零停机滚动更新等操作.

八.不知道为啥作业部落里图片链接显示不了了,所以博客代码解释和测试部分没办法完成

原文地址:https://www.cnblogs.com/puzb/p/12329232.html