zoukankan      html  css  js  c++  java
  • 软件工程第一次作业

        要求0

        链接 :https://edu.cnblogs.com/campus/nenu/2016CS/homework/2110

        要求1

        Git链接: https://git.coding.net/Aaronlynxxx/wf.git

        要求2

        1.PSP表格阶段

    PSP2.1 内容 计划完成时间(min) 实际完成时间(min)
    Planning 计划 50 60
      Estimate     明确需求和其他相关因素,指明时间成本以及依赖关系 50 60
    Development 开发 900 1000
      Analysis   分析需求 150 200
      Design Spec   生成设计文档 30 40
      Design Review   设计复审 20 10
      Coding Standard   代码规范 30 50
      Design   具体设计 200 250
      Coding   集体编码 200 250
      Code Review   代码复审 60 50
      Test   自测,修改,提交 210 150
    Reporting 报告 120 150
      Test Report   测试报告 20 30
      Size Measurement   计算工作量 20 40
      Postmortem And Process Improvement Plan   事后总结并提出过程改进计划 80 80

             具体功能板块实现

    功能板块 具体阶段 预计时间 实际时间
    功能一 具体设计 50 80
      具体编码 90 90
      测试完善 70 70
    功能二 具体设计 70 70
      具体编码 110 80
      测试完善 60 70
    功能三 具体设计 80 100
      具体编码 90 80
      测试完善 80 60

        2.预估耗时与实际耗时的差距原因

        1)对于时间的利用没有一个准确的规划和目标。进入大三学年本来应该是集中精力向自己向往的方向努力的一年,也许是自己不必要的琐事比较多,造成没有集中连片的时间进行自己的学习生活。以后我会对自己每天的时间进行规划和总结,争取最好的学习和工作状态这不仅仅只是对于现在的日常学习,也为自己未来的工作养成良好的习惯,提高自己的工作和学习效率。

        2)对于所谓“隐藏条件”不够敏感。第一次完成时没有发现所谓的“隐藏条件”,对于这个问题,会在后面有所赘述。

        3)对于代码不够熟练。对于某些代码不能一次性搞懂并写好写完整,需要查博客,查书和资料。对于这一点,我会积极学习,查缺补漏,争取能够学到更多。

        要求3

        1. 解题思路描述

        1)对于题目进行分析和计划,确定将要使用的语言及个个部分功能及代码的难易程度,并根据其难易程度进行分配其编写的先后顺序。

        2)根据自己自身的情况,更改学习方式,积极向同学询问相关的优秀资料,灵活编写。

        2.相关代码介绍

        难题:如何读入文件

        对于此项功能我个人能力有限,不会就学,相关的学习代码如下:

       

    int main()
    {
          char *path = "E:\exemple";                         //指定文件目录
          vector<string> filesName;
          ofstream file_out("filename.txt");                //打开文本文件
          GetFileName(path, filesName);                   //获取文件名
        
          for(size_t i = 0 ; i<filesName.size(); i ++)            //将文件名写入到文本中
           {    
           file_out<<filesName[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()关闭文件夹
        }
    }
    
    ---------------------
    
    本文来自 小路孩 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lsq2902101015/article/details/46551311?utm_source=copy

        上述代码中GetFileName()函数的功能是获取指定文件夹中所有文件的名字,不管文件是什么类型。

        如果想要获取某种文件类型的所有文件名,比如.txt,可将GetFileName()函数做如下修改:

    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)  
        if((hFile = _findfirst(p.assign(path).append("\*.txt").c_str(), &fileinfo)) !=  -1)    //添加文件格式后缀
        {  
            do  
            {       
               if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)  
                   filesName.push_back(fileinfo.name);  
            }while(_findnext(hFile, &fileinfo)  == 0);  
            _findclose(hFile);  
        }
    }
    本文来自 小路孩 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lsq2902101015/article/details/46551311?utm_source=copy

        如要获取指定文件夹中所有文件名,包括子文件中的所有文件名,修改GetFileName()函数如下:

    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)  
        {          
            do  
            {       
               if((fileinfo.attrib&_A_SUBDIR))   //判断文件属性是否是子目录
                  {
                    if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0) 
               GetFileName(p.assign(path).append("\").append(fileinfo.name), filesName);
            }
           else
                  filesName.push_back(fileinfo.name);            
            }while(_findnext(hFile, &fileinfo)  == 0);  
            _findclose(hFile);  
        }
    }
    本文来自 小路孩 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lsq2902101015/article/details/46551311?utm_source=copy

        

        3.总结

        我不认为在题目中设置所谓的隐藏条件是一种明智的练习方式,正如邹欣老师所说,老师出题就好像甲方对于一个产品的使用说明书,一定要全面准确地了解描述需求。如果甲方自己都不能够把自己的要求完整清晰地表达出来,又何谈项目的完整准确以及工作的高效呢? 对于这一点,张利彪老师也有所提及,当甲方对于工程项目一窍不通时,我们应该试着学用平常朴实地语言进行讲解,并且应该学会用语言引导他们将自己的需求说出来,所谓“见人说人话,见鬼说鬼话”,对于合适的场合和对象发表合适的言论,这不光对于项目,对于我们日常的人际交往也能起到作用。但是也是因人而异,求同存异。

        其次,这次也让我认识到了学习要讲求方式方法以及时间安排的合理性,养成良好的学习工作习惯对于自己未来的工作也有大益处。

        对于博客的编写方面,我觉得自己还没有完全适应这种学习方式,尽管这是一种十分主流的方法。我会努力尽量适应的。    

        

  • 相关阅读:
    【长安十二时辰】 刺客信条风格剪辑
    【Oracle 触发器】(6)触发器应用场景--数据的备份和同步
    【Oracle 触发器】(5)触发器应用场景--数据库的审计
    银行窗口取号系统,共享数据的线程安全性
    模板方法
    创建线程时如果既传入了runnable对象,又继承thread重写了run方法,会执行哪里的代码
    启动线程用start方法而不是run方法
    java的回调
    java中的闭包
    静态内部类
  • 原文地址:https://www.cnblogs.com/lvpengaaron/p/9688890.html
Copyright © 2011-2022 走看看