• 作业


    这个作业属于哪个课程 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
    ", totalNum[0], totalNum[2], totalNum[1]);
        }else{
            printf("Error!
    ");
        }
        return 0;
    }
    

    第二部分

    while(fgets(buffer, 1003, fp) != NULL){
            bufferLen = strlen(buffer);
            for(i=0; i<bufferLen; i++){
                c = buffer[i];
                if( c==' ' || c=='	'){
                    !isLastBlank && wordNum++;
                    isLastBlank = 1;
                }else if(c!='
    '&&c!='
    '){
                    charNum++;
                    isLastBlank = 0;
                }
            }
            !isLastBlank && wordNum++;
            isLastBlank = 1; 
    
            totalNum[0]++;
            totalNum[1] += charNum;
            totalNum[2] += wordNum;
            printf("%-7d%-7d%d
    ", totalNum[0], wordNum, charNum);
            charNum = 0;
            wordNum = 0;
        }
    

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

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

  • 相关阅读:
    C#面向对象编程
    WPF Storyboard的启动
    WPF中的窗体Show()和ShowDialog()区别。
    四元数
    小学生四则运算
    小学生四则运算
    javascript ===与==的区别
    a标签的href与onclick中使用js的区别
    10步让你成为更优秀的程序员
    检查SQL Server被哪个进程占用,且杀进程。
  • 原文地址:https://www.cnblogs.com/wuguijunniubi/p/14611550.html
Copyright © 2020-2023  润新知