• 编程作业


    这个作业属于哪个课程
    软件工程
    这个作业要求在哪里
    作业要求
    这个作业的目标 学习git的使用,编写代码
    学号
    20188459

    Github项目地址:地址

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 50 70
    • Estimate • 估计这个任务需要多少时间 50 60
    Development 开发 150 300
    • Analysis • 需求分析 (包括学习新技术) 50 100
    • Design Spec • 生成设计文档 10 20
    • Design Review • 设计复审 15 30
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 30
    • Design • 具体设计 40 40
    • Coding • 具体编码 150 150
    • Code Review • 代码复审 60 70
    • Test • 测试(自我测试,修改代码,提交修改) 60 80
    Reporting 报告 45 50
    • Test Repor • 测试报告 30 40
    • Size Measurement • 计算工作量 50 50
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 40 40
    合计 830 1130
    解题思路描述

    1.编程要求,假设有一个软件每隔一小段时间会记录一次用户的搜索记录,记录为英文。

    输入文件和输出文件以命令行参数传入。例如我们在命令行窗口(cmd)中输入:

    //C语言类
    WordCount.exe input.txt output.txt
    
    //Java语言
    java WordCount input.txt output.txt
    

    则会统计input.txt中的以下几个指标

    统计文件的字符数(对应输出第一行):

    只需要统计Ascii码,汉字不需考虑
    空格,水平制表符,换行符,均算字符
    统计文件的单词总数(对应输出第二行),单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。

    英文字母: A-Z,a-z
    字母数字符号:A-Z, a-z,0-9
    分割符:空格,非字母数字符号
    例:file123是一个单词, 123file不是一个单词。file,File和FILE是同一个单词
    统计文件的有效行数(对应输出第三行):任何包含非空白字符的行,都需要统计。

    统计文件中各单词的出现次数(对应输出接下来10行),最终只输出频率最高的10个。

    频率相同的单词,优先输出字典序靠前的单词。

    例如,windows95,windows98和windows2000同时出现时,则先输出windows2000

    输出的单词统一为小写格式

    然后将统计结果输出到output.txt,输出的格式如下;其中word1和word2 对应具体的单词,number为统计出的个数;换行使用' ',编码统一使用UTF-8。

    characters: number
    words: number
    lines: number
    word1: number
    word2: number
    ...
    

    代码规范链接
    部分代码:

    int *getCharNum(char *filename, int *totalNum){
        FILE *fp;  // 指向文件的指针
        char buffer[1003];  //缓冲区,存储读取到的每行的内容
        int bufferLen;  // 缓冲区中实际存储的内容的长度
        int i;  // 当前读到缓冲区的第i个字符
        char c;  // 读取到的字符
        int isLastBlank = 0;  // 上个字符是否是空格
        int charNum = 0;  // 当前行的字符数
        int wordNum = 0; // 当前行的单词数
        if( (fp=fopen(filename, "rb")) == NULL ){
            perror(filename);
            return NULL;
        }
        printf("line   words  chars
    ");
        // 每次读取一行数据,保存到buffer,每行最多只能有1000个字符
    

    心路历程:
    问题还未解决还有很多东西没有弄懂,要花更多的时间去学习.

  • 相关阅读:
    ListIterator
    List与set
    iterator取集合元素
    我眼中的AI
    集合的共性方法
    集合转数组
    打开与关闭eclipse的自动补全功能
    Mr_matcher的细节1
    nodelet的应用
    nodelet的理解
  • 原文地址:https://www.cnblogs.com/zh2250881784/p/14612130.html
Copyright © 2020-2023  润新知