第一次作业

要求0:作业博客链接:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2110

要求1:git仓库地址:https://git.coding.net/ArielX/wf.git

要求2:PSP阶段表格:

功能模块

具体阶段

预计时间(min)

实际时间(min)

功能1

具体设计

具体编码

测试完善

30

120

20

40

300

30

功能2

具体设计

具体编码

测试完善

40

150

20

50

350

40

 

PSP2.1

任务内容

预估耗时(min)

实际耗时(min)

  Planning

计划

40

60

Estimate

估计这个任务需要多少时间,并规划大致工作步骤

40

60

  Development

开发

800

1200

 Analysis

需求分析

60

65

Design Spec

生成设计文档

45

50

Design Review

设计复审 

0

0

 Coding Standard

代码规范 

30

50

Design

具体设计

90

120

Coding

具体编码

300

500

 Code Review

代码复审

10

0

Test

 测试

30

50

  Reporting

报告

210

240

Test Report

测试报告

120

140

Size Measurement

计算工作量

45

45

Postmortem & Process Improvement Plan

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

45

55

 预估耗时和实际耗时的差距的原因:

1.自己有想法但是实际操作能力不足;

2.在查阅资料的过程中有格外去了解该知识点的其他用处,在这里也有耗时。

要求3

      拿到题目之后,第一反应是用C或C++写。涉及到排序,应该会使用到关于数据结构的知识。这是看到题目最直观的反应,不知道想法对不对,尝试一点点写下去。

      介绍代码片段:

 写功能一收获最大的就是map容器了,在输出的时候刚开始格式是乱的,后来查到了在C++的输出当中用到了left左对齐和setw

     

 map<string,int>::iterator it;
    printf("\n\n");
    printf(">wf  -c  input.txt\n");
    cout<<"total"<<"  "<<n-1<<endl<<endl<<endl;
    for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
    {
        if(it->first=="")
        continue;
        cout<<left<<setw(10)<<it->first<<it->second<<endl;//输出格式为左对齐
    }
    cout<<'\n';  
    return 0;

这段代码是在博客中找到的,因为不会C/C++读取文件名,之前只会简单的fopen这种,也算学到了新知识。

using namespace std; 
void GetFileName(string path, vector<string>& files);
int main()
{
      char *path = "E:\\exemple";                         //指定文件目录
      vector<string> filesName;
      ofstream file_out("input.txt");                //打开文本文件
      GetFileName(path, filesName);                   //获取文件名
    
      for(size_t i = 0 ; i<input.size(); i ++)            //将文件名写入到文本中
       {    
       file_out<<input[i].c_str()<<endl;    
        }
      file_out.close();     //关闭文本文件
 
      return 0; 
}
 
void GetFileName(string path, vector<string>& filesName)
{
     
    long   hFile   =   0;                    //文件句柄 
    struct _finddata_t fileinfo;        //定义文件信息结构体
    string p;  
    if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1) //使用函数_findfirst()打开文件并获取第一个文件名
    {  
        do  
        {       
           if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)  //"."表示当前目录,".."表示父目录
               filesName.push_back(fileinfo.name);  
        }while(_findnext(hFile, &fileinfo)  == 0);      //使用函数_findnext()继续获取其他文件名
        _findclose(hFile);              //使用函数_findclose()关闭文件夹
    }
}

 

解决项目的心路历程与收获:

       心路历程就是之前只对C了解,C++印象中只有一节课,自己格外也没有学过这个。自己格外学的对完成这个作业好像一点没用…所以这个作业我做起来真的是不容易,花费了很多时间并且知识也是一知半解,同时也打乱了我从本学期开始以来一直坚持的学习计划。但还是有收获的:收获就是通过菜鸟教程的C++教程中,找到了STL(标准模板库)并了解了容器组件的map,加了#include<map>的头文件,尝试用map写。期间有查阅资料和借鉴博客。用map的好处就是在需要扩展大小的时候,会自动处理它自己的存储需求。在书写过程中也通过菜鸟教程用到了C++向量容器的一个模板,链接:http://www.runoob.com/cplusplus/cpp-stl-tutorial.html  IT行业有很多方向,不知道这个软件工程属于啥方向?反正我绝对不会选这个方向就是了。

 

posted @ 2018-09-21 23:25  霖小落  阅读(306)  评论(5编辑  收藏  举报