第四周小组作业WCpro

时间:2022-12-20 08:29:07

一、基本任务:代码编写+单元测试

小组github 地址 

https://github.com/iwannastay/WcPro/tree/stage3

PSP表格

PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 20
Estimate 估计任务需要多少时间 120 100
Development 开发 180 240
Analysis 需求分析 20 30
Design Spec 生成设计文档 30 40
Design Review 设计复审 10 10
Coding Standard 代码规范 10 10
Design 具体设计 30 20
Coding 具体编码 60 60
Code Review 代码复审 20 20
Test 测试 20 30
Reporting 报告 60 100
Test Report 测试报告 30 100
Size Measurement 计算工作量 20 60
Postmortem 总结 20 80
  合计 340 540

接口设计

我负责的是文件处理框架和main函数,即对所有其他模块进行整合,将接口结合到一起。

设计思路:其实这个模块并不难。主要是要对整个软件的架构了然于胸,对各部分的函数灵活运用。先调用InputAnalysis对文件名进行审查,然后运行mainProcess函数对文件进行处理。在mainProcess函数中调用文件行处理模块的lineProcess函数,和排序模块的rankProcess。最后调用输出处理函数SaveResult对结果进行输出保存。
实现过程:

1:主函数的流程

int main(int argc, char *argv[])
{
    
    string str;
    InputAnalysis(argc, argv, str);

    WcFile m_File(str.c_str()); //初始化WcFile类
    m_File.MainProcess(); //检测,计数,排序

    m_File.SaveResult(); //输出结果

    return 0;
}

2:程序主要进程实行顺序控制

void WcFile::MainProcess()
{
    while (!File_Stream.eof())
    {
        File_Stream.getline(File_Line, Line_Size);
        int num = File_Stream.gcount();
        if (File_Stream.gcount() == Line_Size&&File_Line[Line_Size - 1] != '\n')
        {
            cout << "Line: " << Line_Num + 1 << " is too long" << endl;
            /*Line_Size *= 2;
            char *New_Space = (char*)malloc(Line_Size * sizeof(char));
            memcpy_s(New_Space,)*/
        }
        Line_Num++;
        LineProcess();
    }

    RankProcess();
}

 


测试设计

测试主要包括能否对文件名进行识别和对文件内容处理。其中分别是对主函数和mainprocess的测试。

 

第四周小组作业WCpro

 


小组贡献分

个人得分0.2。

二、扩展任务:静态测试

1.代码规范

  本次代码规范参考了邹欣老师在讲义“现代软件工程讲义 3 代码规范与代码复审”中提到的规范,对于老师的讲解表示十分受用,并不敢有丝毫触犯雷霆之意。对于其所说的代码规范十分赞同。


 

2.同组分析

  我分析了组员17024的代码,该组员是代码方面的高高手,一直是我崇拜的偶像,其本人浸淫C++多年,对于他的代码,观之者赏心悦目。其内容简洁明了,进退有据,思路明晰,书写规范,实在是挑不出毛病。我会努力向该同学学习,更好的提高自己写代码的能力。


3.静态代码检查工具

  使用Visual Studio 2015 内置检测工具,可在微软官方网站https://www.visualstudio.com/zh-hans/downloads/下载

 


  小结

  该次任务是由小组共同完成,本身任务对我而言是有些困难的,但是在队友的帮助下,我们仍然完成了绝大多数。从中我体会到了团队的力量,在团队的合作共进下才能更好的完成各项任务。