代码改变世界

作业

2021-04-02 17:02  小小乌龟君  阅读(52)  评论(0编辑  收藏  举报

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/homework/11880
这个作业的目标 完成项目的需求

二.

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 2h 2h
• Estimate • 估计这个任务需要多少时间 3h 2h
Development 开发 10h 15h
• Analysis • 需求分析 (包括学习新技术) 3h 4h
• Design Spec • 生成设计文档 1h 1h
• Design Review • 设计复审 05h 0.5h
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 1h 1h
• Design • 具体设计 2h 1h
• Coding • 具体编码 2h 2h
• Code Review • 代码复审 1h 1h
• Test • 测试(自我测试,修改代码,提交修改) 2h 2h
Reporting 报告 1h 1.5h
• Test Repor • 测试报告 1h 0.5h
• Size Measurement • 计算工作量 0.5h 0.5h
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 0.5h 0.5h
合计 29.5h 34.5

三.解题思路
指针指向文件

保存每次读取一行数据

遍历保存的内容

考虑空格的情况

设置代码忽略换行

统计总字符数、总单词数、总行数

置零,重新统计下一行。

四.代码规范
https://gitee.com/liaoTao123/project-c/pulls/7
五.核心代码
第一部分

int main(){
    char filename[30];
    int totalNum[3] = {0, 0, 0};
    printf("Input file name: ");
    scanf("%s", filename);
    if(getCharNum(filename, totalNum)){
        printf("Total: %d lines, %d words, %d chars\n", totalNum[0], totalNum[2], totalNum[1]);
    }else{
        printf("Error!\n");
    }
    return 0;
}

第二部分

while(fgets(buffer, 1003, fp) != NULL){
        bufferLen = strlen(buffer);
        for(i=0; i<bufferLen; i++){
            c = buffer[i];
            if( c==' ' || c=='\t'){
                !isLastBlank && wordNum++;
                isLastBlank = 1;
            }else if(c!='\n'&&c!='\r'){
                charNum++;
                isLastBlank = 0;
            }
        }
        !isLastBlank && wordNum++;
        isLastBlank = 1; 

        totalNum[0]++;
        totalNum[1] += charNum;
        totalNum[2] += wordNum;
        printf("%-7d%-7d%d\n", totalNum[0], wordNum, charNum);
        charNum = 0;
        wordNum = 0;
    }

六.异常处理
找不到文件和字符显示错误。

七.心得
思路僵化,知识储备不足。要加强学习,巩固知识。