• 个人作业改


    1、Github项目地址:

    2、估计开发时间:

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     60

    · Estimate

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

    60 

    Development

    开发

    60 

    · Analysis

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

    60 

    · Design Spec

    · 生成设计文档

    60 

    · Design Review

    · 设计复审 (和同事审核设计文档)

    60 

    · Coding Standard

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

    60 

    · Design

    · 具体设计

    60 

    · Coding

    · 具体编码

    60 

    · Code Review

    · 代码复审

    60 

    · Test

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

    60 

    Reporting

    报告

    60 

    · Test Report

    · 测试报告

    60 

    · Size Measurement

    · 计算工作量

    60 

    · Postmortem & Process Improvement Plan

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

    60 

    合计

    900 

    3、解题思路

      由于本人的基础较为薄弱,所以选择用c来写。一开始就明确了要用多个子函数的方式来实现各个功能。

      遇到最大的问题是有很多c语言的函数我之间没有学过,如如何调用文件夹中的文件,后来在百度的方式之下学到了很多新函数的用法

    4.设计实现流程

      先写出主函数,再依据各个功能写出对应子函数

    5.代码说明

      主函数

    int main()
    {char a[2];        //a是用户输出操作量
    FILE *load;    //load指向要测试的文件
    int num;    //num用于记录客户所要的数据
    load=fopen("D:\hello.c","r");
    if(load==NULL)
        {printf("该文件不存在,请检查您的文件存储位置");
        exit(-1);
        }
    
    printf("此程序的功能为
    1、返回文件字符数,按-c执行
    2、返回文件词的数目,按-w执行
    3、返回文件行数,按-l执行
    ");
    scanf("%s",a);
    if(a[0]!='-')
        {printf("输入错误
    ");
        exit(-1);
        }
    if(a[1]=='c')
    {    num=charnum(load);
        printf("文件字符数为%d",num);
        return 0;
    }
    if(a[1]=='w')
    {    num=wordnum(load);
        printf("文件词数为%d",num);
        return 0;
    }
    if(a[1]=='l')
    {    num=linenum(load);
        printf("文件行数为%d",num);
        return 0;
    }
    else printf("输入错误
    ");
    exit(-1);
    }

      三个基础功能函数

    int charnum(FILE *fp)    //统计字符数
    {    int n1=0;
        char ch;
        fgetc(fp);
         while(!feof(fp))
         {
             ch=fgetc(fp);
             n1++;
         }
         fclose(fp);
         return n1;
    }
    
    int wordnum(FILE *fp)//统计单词数
    {
    int n2=0,word=0;
    char ch;
    
         ch=fgetc(fp);
         while(!feof(fp))
         {
             ch=fgetc(fp);
             if(ch<'A'||(ch>'Z'&&ch<'a')||ch>'z')
                word=0;
             else if(word==0)
            {
                 word=1;
                 n2++;
             }
         }
         fclose(fp);
         return n2;
     }
    
    
    int linenum(FILE *fp)//统计行数
    {
        int n3=0;
        char ch,lc=0;
    
        ch=fgetc(fp);
        while((ch=fgetc(fp))!=EOF)
        {
            if(ch=='
    ')
                n3++;
            lc=ch;
        }
        fclose(fp);
        if(lc!='
    ')
            n3++;
        return n3;
    }

    6.测试运行

     

    7、估计开发时间:

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     60

     60

    · Estimate

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

    60 

    60 

    Development

    开发

    480 

    480 

    · Analysis

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

    60 

    60 

    · Design Spec

    · 生成设计文档

    60 

    60 

    · Design Review

    · 设计复审 (和同事审核设计文档)

    60 

    60 

    · Coding Standard

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

    60 

    60 

    · Design

    · 具体设计

    60 

    60 

    · Coding

    · 具体编码

    60 

    60 

    · Code Review

    · 代码复审

    60 

    60 

    · Test

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

    60 

    60 

    Reporting

    报告

    180

    180 

    · Test Report

    · 测试报告

    60 

    60 

    · Size Measurement

    · 计算工作量

    60 

    60 

    · Postmortem & Process Improvement Plan

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

    60 

    60 

    合计

    720 

     720

    8、项目小结

      通过这次项目,最大的收获是了解了几个之前不知道的函数,对软件工程有了初步的了解

  • 相关阅读:
    转:ibatis的N+1问题解决方案
    转:ibatis动态sql
    转:Spring源码分析:IOC容器
    web项目中通过spring获得ApplicationContext
    转:import static和import的区别
    python实现linux命令结果输出
    linux获取当前pts
    docker挂载本地目录
    mysql数据导入导出
    python实现linux远程操控windows执行cmd命令
  • 原文地址:https://www.cnblogs.com/xiaoyangdeboke/p/12521622.html
Copyright © 2020-2023  润新知