202103226-1 编程作业
这个作业属于哪个课程 | 软工-2018级计算机2班 |
---|---|
这个作业要求在哪里 | |
这个作业的目标 | 阅读构建之法提出问题 |
学号 |
1.Gitee仓库地址
https://gitee.com/Lizhiyang01/project-c/tree/20188443
2.代码规则
1.统计字符数,统计单词数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 1024
int main(void){
char buf[MAX_NUM]; //字符缓冲区
FILE *fp;
int len,total=0; //每行字符个数和总字数
if((fp = fopen("input.txt","r")) == NULL){
perror("the file fail to read");
getchar(); //暂停显示
exit (1) ;
}
while(!feof(fp) && !ferror(fp)){ //文件读取结束或出错则退出
fgets(buf,MAX_NUM,fp);//每次读取一行或者MAX_NUM个字符
len = strlen(buf);
if(buf[len-1] == '
'){
buf[len-1] = ' '; //去掉换行符在输出
len--;
}
if(len == 0) continue; //消除空白行
printf("%s %d
",buf,len);
total+=len;
}
printf(" %d
",total);
fclose(fp); //关闭文件
getchar();
return 0;
}
解题思路描述:首先用FILE的方法将字符提取出来,用len判断每一行的长度,total表示输出的总字数,每个要求定义了一个函数来满足相应要求。
截图
2.统计文本文件中出现次数最多的前10的单词
关键代码
统计次数前十的单词
for (i = 0; i < k&&i < 10; i++)
{
t = 0;
while (w[t].n == 0) t++;
for (j = 1; j<k; j++)
{
if (w[j].n>w[t].n) t = j;//选 大的
else
if (w[j].n == w[t].n)
{
if (strcmp(w[j].c, w[t].c) < 0)
t = j;
}
}
printf("%s %d
", w[t].c, w[t].n);
w[t].n = 0;//t 已输出,令n=0;
}
}
运行截图
4.psp表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 60 |
• Estimate | • 估计这个任务需要多少时间 | 1000 | 600 |
Development | 开发 | 1000 | 1200 |
• Analysis | • 需求分析 (包括学习新技术) | 300 | 300 |
• Design Spec | • 生成设计文档 | 100 | 200 |
• Design Review | • 设计复审 | 50 | 20 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
• Design | • 具体设计 | 20 | 30 |
• Coding | • 具体编码 | 30 | 30 |
• Code Review | • 代码复审 | 20 | |
• Test | • 测试(自我测试,修改代码,提交修改) | 20 | 30 |
Reporting | 报告 | 20 | 20 |
• Test Repor | • 测试报告 | 20 | 20 |
• Size Measurement | • 计算工作量 | 20 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 2690 | 2590 |
5.学习心得
首先一看到这次作业要求就感到有点懵,一大段的文字要求让我一开始就产生了畏难心理,有点不太想去做,直到后几天才开始认真去做。开始碰到的问题是gitte的,最先接触这个是在大一的c语言,后面就没用过了,基本上学过的都忘了,对于fork操作也不知道有什么作用后来阅读材料才知道这是项目开发多人合作的重要操作,可以让多人对代码进行修改,然后我想用ecplics连接仓库,但是试了很久都失败了,网上也没有找到办法,于是便使用C语言,想以后在本地建一个仓库。于是我就想先写代码,但是前面浪费的时间太多了,没有时间去把代码写好。对于这次作业,任务我只完成了一小部分,主要是错误的估计了这次作业的任务量,没有及时去写,二是对gitte的不了解导致浪费了大量的时间,以后有时间要对代码改进,并传上仓库。