• 个人作业


    1.

     

    PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
    Planning 计划   500    500
    · Estimate · 估计这个任务需要多少时间  480         470
    Development 开发    
    · Analysis · 需求分析 (包括学习新技术)  35 35
    · Design Spec · 生成设计文档  10  10
    · Design Review · 设计复审 (和同事审核设计文档)  10  10
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范)  10  10
    · Design · 具体设计  20  10
    · Coding · 具体编码  170 200
    · Code Review · 代码复审 20 20
    · Test · 测试(自我测试,修改代码,提交修改)  60  50
    Reporting 报告  40  40
    · Test Report · 测试报告  30  40
    · Size Measurement · 计算工作量  20  20
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  20
      合计 430  470

    3.解题思路:分析需求,预估完成时间,分步实现功能。

    4.设计实现过程:将代码分为一个主函数和三个子函数,三个子函数对应三种功能。

    5.代码说明:

    复制代码
    int main()
    {
       FILE *f;
        char function;  //控制功能 
        char File[100]; //对存储的文件名设置
        int a; 
        do
      { a=0; printf("输入需被执行操作的文件地址: "); scanf("%s",File); if((f=fopen(File,"r"))==NULL) //若找不到文件 {printf("找不到此文件,请重新输入 "); a=1;}}while(a==1); while(1) {printf("c: 统计字符数 w:统计单词数 l:统计行数 b:退出") ; printf(" 输入所选择的操作 :"); scanf(" %c",&function); if(function=='b'){break;} switch(function){ case 'c': countcharacter(File);break; case 'w': countword(File);break; case 'l': countline(File);break; case 'b': break; default : printf("输入错误,请重新输入 "); } } }
    复制代码

    统计字符函数

    复制代码
    void countcharacter(char*File)//  统计字符数函数 
    {char ch;//空
    int count=0;//从0开始计数
    
    FILE *f=fopen(File,"r");
    while((ch=fgetc(f))!=EOF)
    {if(ch!=' '&&ch!='
    '&&ch!='	')//如果不为空格、换行符、tab
        count++;}
    fclose(f);
    printf("字符数为%d
    
    ",count);
    
    }
    复制代码

    统计单词数函数

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void countword(char*File)//单词数函数
    {int tag=0;
    int count=0;
    char ch;
    FILE *f=fopen(File,"r");
    while((ch=fgetc(f))!=EOF)
    {
    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) tag=1;
            else if(tag==1){  //ch不是字母且标志为1时则说明刚检测完一个单词
                count++;
                tag=0;
    }
    }
     
    fclose(f);
    printf("单词数为%d ",count);
    }

     统计行数函数

    复制代码
    void countline(char*File)  //行数函数
    {
    int count=0;
    char ch;
    FILE *f=fopen(File,"r");
     while((ch=fgetc(f))!=EOF){
           if(ch=='
    ') count++;
        }
    count++; //文件结束时当前行加一
    fclose(f);
    if(f!=NULL) printf("行数为%d
    
    ",count);
    }
    复制代码

    6.测试运行:

    7.项目小结:现学现用,利用结合之前c语言技术进行思考

  • 相关阅读:
    salt+jenkins+gitlab+ecs构建公司部署平台
    解决openstack实例主机名后缀问题
    测试CentOS-7-x86_64-Minimal-1708.iso这种光盘安装效果
    dbca建库--linux上使用vnc图形化安装oracle10g版本
    使用mediainfo工具统计每个视频文件(媒体文件)播放时长
    rsync命令简单用法介绍
    winscp工具和xshell连接linux机器时切换到root账户
    zabbix和iptables的nat表结合使用
    adb和机顶盒一些常识
    VirtualBox虚拟机禁止时间同步
  • 原文地址:https://www.cnblogs.com/xiaoyangdeboke/p/12501496.html
Copyright © 2020-2023  润新知