zoukankan      html  css  js  c++  java
  • wc项目(node.js实现)

    一、github地址:https://github.com/Jasminejiamei/homework-wc

    二、PSP

    PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
    Planning 计划  40 30
    · Estimate · 估计这个任务需要多少时间  30  25
    Development 开发  790 710
    · Analysis · 需求分析 20  20
    · Design Spec · 生成设计文档  40  30
    · Design Review · 设计复审   30  30
    · Coding Standard · 代码规范  30  40
    · Design · 具体设计  80  60
    · Coding · 具体编码(学习新技术)  470  370
    · Code Review · 代码复审  60  50
    · Test · 测试(自我测试,修改代码,提交修改)  60  60
    Reporting 报告 120 120
    · Test Report · 测试报告  60  60
    · Size Measurement · 计算工作量  30  30
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  30
      合计  950  860

    三、解题思路

    刚开始看到题目,以为一定要用c语言或者java才可以实现一个.exe的工具,后来认真看才知道是模仿实现它的功能以及扩充即可,不限定语言。我比较熟的编程语言是JavaScript,但是浏览器中的JavaScript是没有文件操作的能力的, 而Node中的JavaScript具有文件处理系统的,对于读取文件这样的操作是很简便的,于是我决定用node.js,开发环境为:Visual Studio Code。

    1. 如何用node去读取文件,如何读取用户在终端输入的命令行,其中统计的逻辑相对比较容易实现,于是通过学习node.js的fs文件系统,以及`process.argv` (获取命令行指令操作)的相关内容,找到了解决的思路。

    2. 在node的包装工具npm的使用中,package.json文件是用于定义整个包的属性的,在测试的时候发现命令行自定义不了,在了解了其相关配置之后,添加了一个新的配置, {"bin":{"homework":"./index.js"}},正是因为缺少了这个配置,导致homework命令词无法被识别。

    3. 对于用户输入-s命令呢,如果输入的信息不规范怎么办?

    如果是对于-s命令输入不规范,则会返回相关能正确输入的信息给用户,例如:

    如果命令是系统本来不是自定义的,则不作处理,返回“没有该指令”;

    4. 处理一个文件的信息统计容易实现,如何递归处理一个文件夹的内容呢,开始想得很复杂,但其实最终解决的方法很简单,做个是否为文件夹的判断之后,如果为文件夹,直接调用fileDisplay()递归即可。

    5. 用node的语法不是十分熟悉,在完成高级功能的时候,不知道通过什么方式去打开一个界面,想到的第一种方案是写一个前端的界面,用node的搭建一个小型的后台,写接口,前端请求数据,后台返回即可,最后也是用这种方案实现的。

    四、设计实现过程

    1.项目基本功能与拓展功能的系统流程图

    2.图形界面

     用node写出了一个简单的http服务器,再写一个html文件请求数据即可,用homeworkWc -x  filename 运行即可自动打开一个html图形界面

    五、测试

    测试的文件内容:

    file.txt 

     test.doc

    测试基础指令:

    1. homeworkWc -l filename

    2. homeworkWc -w filename

    3.homeworkWc -c filename

    拓展要求指令:

    1. homeworkWc -s -l/-w/-c  file

    错误输入时:

     正确输入时:

     2.  homeworkWc -a  filename

     测试高级功能的指令:

     打开页面:

     点击按钮后:

     六、总结

      在做此项目的过程中我熟悉了一门我想深入学习的语言,并且用这门语言完成了这个作业要求的功能,以后还要多尝试。同时从软件开发的角度来看,在这个项目的练习中体验了软件的需求分析,设计,开发和测试等过程,同时也更能体会一个产品可能他要实现的功能并不难,但是在开发的角度却要考虑很多。在实现这个项目的过程中遇到bug的时候有点心浮气躁,希望能够改掉这个不好的习惯,冷静分析问题,用更好的方案解决问题。

  • 相关阅读:
    ocx文件转换成C#程序引用的DLL
    CSS颜色代码 颜色值 颜色名字大全(转载)
    WinForm轻松实现自定义分页 (转载)
    如何:使用PicturBox实现类似淘宝网站图片的局部放大功能
    转载jQuery图片放大插件[twiPicZoom]
    LINQ查询返回DataTable类型
    最喜欢的VS 键盘快捷键摘抄
    Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp
    Educational Codeforces Round 24 A 水 B stl C 暴力 D stl模拟 E 二分
    poj 1185 状态压缩
  • 原文地址:https://www.cnblogs.com/liujiamei/p/11581256.html
Copyright © 2011-2022 走看看