| 这个作业属于哪个课程 | |
|---|---|
| 这个作业要求在哪里 | |
| 这个作业的目标 | 学习git的使用,编写代码 | 
| 学号 | 
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为统计出的个数;换行使用'\n',编码统一使用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\n");
    // 每次读取一行数据,保存到buffer,每行最多只能有1000个字符
心路历程:
问题还未解决还有很多东西没有弄懂,要花更多的时间去学习.
                    
                
 posted on 
                
            
        
浙公网安备 33010602011771号