计算与软件工程第四次作业

作业要求 | https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10534
--|:--😐--
我在这个课程的目标是| 学会合作,统计中文文本词频
此作业在哪个具体方面帮我实现目标|测试代码,运行代码可以让我更加了解这门课的内容
参考文献|https://www.cnblogs.com/guoming0000/archive/2012/06/13/2548350.html https://blog.csdn.net/qq_44174481/article/details/95921514?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2 https://blog.csdn.net/sand8o8time/article/details/81412661?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6
码云链接 |https://gitee.com/yuan_jia_hao/learngit.git

作业1

每个人针对之前两次作业所写的代码,针对要求,并按照代码规范(风格规范、设计规范)要求评判其他学生的程序,同时进行代码复审(按照代码复审核表 https://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html),要求评价数目不少于8人次,
评价内容直接放在你被评价的作业后面评论中
同时另建立一个博客,将你作的评论的截图或者链接,放在博客中,并在你的博客中谈谈自己的总体看法

总结

代码规范就是规定代码必须遵守一定条件。当有了规范后,代码会显得美观且易懂,代码复审还有交流和传播的作用。

作业二

两人自由组队进行结对编程

参考结对编程的方法、过程(https://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html)开展两人合作完成本项目
实现一个简单而完整的软件工具(中文文本文件人物统计程序):针对小说《红楼梦》要求能分析得出各个人物在每一个章回中各自出现的次数,将这些统计结果能写入到一个csv格式的文件。
进行单元测试、回归测试、效能测试,在实现上述程序的过程中使用相关的工具。
进行个人软件过程(PSP)的实践,逐步记录自己在每个软件工程环节花费的时间。
使用源代码管理系统 (GitHub, Gitee, Coding.net, 等);
针对上述形成的软件程序,对于新的文本小说《水浒传》分析各个章节人物出现次数,来考察代码。
将上述程序开发结对编程过程记录到新的博客中,尤其是需要通过各种形式展现结对编程过程,并将程序获得的《红楼梦》与《水浒传》各个章节人物出现次数与全本人物出现总次数,通过柱状图、饼图、表格等形式展现。
《红楼梦》与《水浒传》的文本小说将会发到群里。
注意,要求能够分章节自动获得人物出现次数

  clc;
  close all;
  dirs = dir('D:\homebook\honglou.txt');%*号是通配符,读取当前路径下的所有的txt文件
  writein = fopen('result.txt','a');%这里是新开一个文本文件供写入结果
  %dircell=struct2cell(dirs)';%结构体转换成元胞数组,并将结果转置一下,让第一列全为文件名
  %filenames = dircell(:,1);%(:,1)代表所有行的第一列
  for j = 1:120                %这里之所以设为120,是因为红楼梦一共120章啊,哈哈
    %fid = dlmread(['D:\homebook\honglou.txt',dirs(j).name],''0,1)
    fid = fopen(dirs(j).name,'r');
    if fid == -1
        disp('Can not open the file');
        return 
    end
     dict = char('贾宝玉','宝玉','通灵宝玉','林黛玉','黛玉','薛宝钗','宝钗','王熙凤','凤丫头','凤姐','史湘云','湘云','秦可卿','秦氏','妙玉','贾迎   春','迎春','贾巧姐','巧姐','贾惜春','惜春','贾元春','元春','贾探春','探春','李纨','李氏'); %字典,你要查找的关键字
    freq = zeros(size(dict,1),1);%频率
    while(~feof(fid))
        aLine = fgetl(fid);
        disp(aLine)
        for i = 1:size(dict,1)%deblank使用原因:词语长度不一,dict生成时,会在短的词语后面加空格,查找的时候必须去掉,否则搜索不到
            re = strfind(aLine,deblank(dict(i,:)));%strfind函数可以返回查找对象的位置
            freq(i) = freq(i) + length(re);
        end
    end
    for i = 1:size(dict,1)
        disp([dict(i,:),'出现次数:',num2str(freq(i))])
        fprintf(writein,'%s ',num2str(freq(i)));
    end
    fprintf(writein,'\n');
    fclose(fid);
  end
PSP Personal Software Process Stages 预估耗时 实际耗时
Planning 计划 6h 12h
Estimate 估计这个任务需要多少时间 一周 两周
Development 开发 一周 一周
Analysis 需求分析 48h 72h
Coding Standard 代码规范 1小时 4小时
Design 具体设计 24h 48h
Coding 具体编码 48h 120h
Code Review 代码复审 2h 3h
Test 测试 1h 2h
Reporting 报告 1h 1.5h
总共用时 --- 两周 两周
posted @ 2020-04-05 14:45  袁嘉豪,  阅读(149)  评论(0编辑  收藏  举报