一、github地址

https://github.com/hhw-15521301615/hello-world

二、PSP表格

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

785

三、解题思路

看到题目的要求,发现这个项目的要求是对程序设计语言源文件的一些操作。在Java课程设计中已经做过类似的设计,但是应题目的要求先进行了对《构建之法》

的阅读,了解了个人软件开发流程,开始了自己的设计

1.对于此题目中的文件类,联想到了Java中的I/O流来读取文件,复习学习过的I/O流来设计读取文件

2.取文件之后,理所应当根据用户的需求进行操作,因此先需写一个函数来调取用户的输入命令,即操作函数

3.根据所需要统计的内容,设计所需要的函数,包括文件导入函数、字符数统计函数,词数统计函数,行数统计函数以及特殊行统计函数

4.功能函数设计好之后,设计主函数来为用户输入与输出使用,为用户提供必要的操作帮助并请求用户输入命令

四、设计实现过程

1.各函数设计:

(1)文件导入函数:对于文件读取,用流来读取会简单很多,之后调用操作函数执行指令的相应函数

(2)字符统计函数:用readLine函数来读取文件每一行的内容,循环遍历,统计字符数

(3)  词数统计函数:   对于文件的每一行内容,根据单词的特性,以空格为分割,再统计单词数

(4)行数统计函数:循环读取文件的行数

(5)特殊行统计函数:循环读取文件的每一行内容,判断是否为特殊行,并做统计

(6)  主函数:为用户输入与输出使用,为用户提供必要的操作帮助并请求用户输入命令

2.组织代码:
在此项目中设计一个类,一个主函数和所需的其他函数,主函数来为用户输入输出,提交用户的命令,调用其他函数

3. 各函数之间的关系:

五、测试

1.测试文件

wc1为随笔文件,wc2为标准c语言源程序代码,wc3为空文档。

2.进行测试

六、总结

这次项目中感受了个人软件开发流程(PSP),复习了大二时学习的Java程序设计。但由于自己大二学习时不认真,所制作的软件也

不是特别的完善,只完成了最基本的功能,充分认识到自己程序设计能力的不足。这使我学到很多东西,体会到了应该在今后的日子里

加紧时间学习。在这次项目中自己分析,设计,编码,开发,测试等流程中让我明白软件设计并不是一件简单的事。此外,这次作业的

提交还让我提升了自己书写博客和利用GitHub的能力,提升了自己的实践能力。

软工个人项目———WC.exe(Java实现)的更多相关文章

  1. 软工个人项目 ——wc.exe

    1.GitHub项目地址 https://github.com/k8kiw/WordCount 2.PSP预计时间 PSP2.1 Personal Software Process Stages 预估 ...

  2. 个人项目-WC.exe (Java实现)

    一.Github项目地址:https://github.com/blanche789/wordCount/tree/master/src/main/java/com/blanche 二.PSP表格 P ...

  3. 2020BUAA软工结伴项目作业

    2020BUAA软工结伴项目作业 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结伴项目作业 我在这个课程的目标是 学 ...

  4. [2017BUAA软工]个人项目

    软工个人项目 一.Github项目地址 https://github.com/Lydia-yang/2017BUAA-SoftwareEngineering 二.解题思路 在刚开始拿到题目的时候,关于 ...

  5. [2017BUAA软工]结对项目

    软工结对项目 一. Github项目地址 https://github.com/crvz6182/sudoku_partner 二. PSP表格 Psp personal software progr ...

  6. 软工团队项目之团队展示&选题(OnTime——S.L.N)

    软工团队项目之团队展示&选题(OnTime——S.L.N) 一.团队展示 队名:『S.L.N』即Seigelion——乃“攻城狮”之意. 队员学号: 团队项目描述:(项目名称:OnTime) ...

  7. 2020BUAA软工个人项目作业

    2020BUAA软工个人项目作业 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人项目作业 我在这个课程的目标是 学 ...

  8. 软工作业No.1。Java实现WC.exe

    网址:https://github.com/a249970271/WC WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有w ...

  9. 软工个人项目(Java实现)

    一. Github地址: https://github.com/RuiBingo/PersonalWork 二.个人PSP表格: PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Plan ...

随机推荐

  1. 添加QDialog的Layout布局属性操作

    转载:https://blog.csdn.net/u013015629/article/details/73874773 QDialog在创建完之后,在设计器QtDesigner中的布局默认是锁定的. ...

  2. java中ExecutorService使用多线程处理业务

    ExecutorService executorService = Executors.newFixedThreadPool(5); List<CancelApprovalCallable> ...

  3. 闭包(python)

    1.闭包的理解 我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,且称之为外函数和内函数,外函数返回值是内函数的引用,此时就构成了闭包. 2. 闭包的格式 下面用伪代码进行闭包格式的描 ...

  4. PHPUnit 单元测试教程

    一.官网下载对应 PHP 版本的代码库 https://phpunit.de/getting-started-with-phpunit.html 二.安装 PHPUnit 官网提供了两种方法安装 1. ...

  5. golang几种常用配置文件使用方法总结(yaml、toml、json、xml、ini)

    原文连接: https://blog.csdn.net/wade3015/article/details/83351776 yaml配置文件的使用方法总结 首先介绍使用yaml配置文件,这里使用的是g ...

  6. C++ unordered_set运用实例

    C++ unordered_set运用实例 #include <unordered_set> #include <numeric> #include "print.h ...

  7. MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)

    MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”.操作系统错误 5:“5(拒绝访问.)”. (Microsoft SQL Server,错误: 5120) ***** 解决方法 ...

  8. 审阅模式中word保存不了

    word保存不了 觉得有用的话,欢迎一起讨论相互学习~Follow Me 昨天写论文出现一个怪事,发现自己word内容按ctrl+S 进行保存时可以的,但是当按X进行关闭时,出现 关闭不了,问我是否需 ...

  9. 配置Pods和containers--为Containers和Pods分配内存资源

    指定内存请求和内存限制 要为容器指定内存请求,在容器的资源清单中使用resources:requests字段.要指定内存限制,使用resources:limits. memory-request-li ...

  10. Python - Django - form 组件动态从数据库取 choices 数据

    app01/models.py: from django.db import models class UserInfo(models.Model): username = models.CharFi ...