有没有鱼干吃

导航

 

作业班级:https://edu.cnblogs.com/campus/nue/SE202010

作业要求:https://edu.cnblogs.com/campus/nue/SE202010/homework/11481

作业目的:1.为该软件设计建立专属码云仓库,并建立readme文件,用于描述软件功能;

                  2.学会利用PSP表格来规划统筹整个设计过程;

                  3.实现一个能够对文本文件中的单词的词频进行统计的控制台程序;

                  4.了解接口封装,复习单元测试。

学        号:2000401

一、码云地址

https://gitee.com/do-you-have-dried-fish/wordcount2

二、PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

30

30

· Estimate

· 估计这个任务需要多少时间

20

20

Development

开发

30

30 

· Analysis

· 需求分析 (包括学习新技术)

100

100

· Design Spec

· 生成设计文档

 0

· Design Review

· 设计复审

 0

0

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

30

30

· Design

· 具体设计

25

30

· Coding

· 具体编码

240

360

· Code Review

· 代码复审

30

30 

· Test

· 测试(自我测试,修改代码,提交修改)

100

160

Reporting

报告

20

30 

· Test Repor

· 测试报告

20

30

· Size Measurement

· 计算工作量

15

20 

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

30

 30

 

合计

690

900

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、学习日志

四、解题思路

(一)、根据需求,将功能划分成各模块

    1.统计文件的字符数

    2.统计文件的单词总数

    3.统计文件的有效行数

    4.统计文件中各单词的出现次数,最终只输出频率最高的10个

(二)、将各模块分别对应在各个函数中实现

(三)、在主函数中根据需要调用不同函数

五、设计实现过程

1.fopen_s函数

   打开一个文件 如:errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );

2.fgetc函数

   从文件指针指向的文件中读取一个字符 如:fgetc(FILE *stream);

3.fclose函数

   关闭一个流 如: fclose( FILE *fp );

4.fgets函数

   从指定的流中读取数据,每次读取一行 如:fgets(char *str, int n, FILE *stream);

5.代码说明

   统计每行词数,最终得到文本总词数

6.程序执行

7.输出为TXT格式

六、性能分析

1.摘要

2.函数使用情况

七、改进及完善

(一)未完成事

    1.未完成自动化单元测试

    2.未完成接口封装

(二)待改进事

    1.文本较大时,程序执行较慢或易崩溃

    2.未能按字典序输出

    3.代码还可进一步精简

八、反思总结

  本次作业对我来说是一个比较大的考验,前期花费了大量的时间在代码编写和功能实现上然而结果却并不理想,导致后期没有时间完成单元测试。由于部分代码是根据自己想法编写的,且自身能力水平有限,因此在实现功能时会有一些不够完善。总的来说,虽然对整个开发过程还较为生疏,但相较于之前也算是有了长足的进步,为后期两人合作开发打下了基础。

 

posted on 2020-11-18 21:12  有没有鱼干吃  阅读(78)  评论(0编辑  收藏  举报