编程作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/homework/11880
这个作业的目标 1.完成项目 2.学习使用GitHub
其他参考文献 《软件工程》《构建之法》

1.项目链接

https://gitee.com/ll_dl/project-c

2.PSP

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

3.解题思路

字符统计:
遍历文档字符,通过排除非显示字符,统计显示字符数量;
单词统计:
遍历文档字符,利用变量记录字符是否为英文字母状态,统计进入该状态次数即为单词词数
行数统计:
遍历文档以行为单位的字符串,遍历次数即为行数
特殊行数统计:
历文档以行为单位的字符串,再利用指针遍历字符串;首先判断是否为代码行(优先级最高),其次判断是否为注释行,由于三种行互斥,顾空行数为总行数减去前两者。通过变量记录状态以判断代码行和注释行。

4.代码规范

https://gitee.com/ll_dl/project-c/blob/master/ codestyle.md/ codestyle.md

5.部分关键代码

  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++;
  	totalNum[0]++;
  	totalNum[1] += charNum;
  	totalNum[2] += wordNum;

6.测试


7.性能改进

暂时还没有想到什么好的改进方法

8.心路历程

这次感觉很难,主要是很多以前学过的知识都完了,所以现在很多东西在用的时候都不熟悉,C语言也是,所以这次又去回顾了一下相关知识。

posted @ 2021-04-02 17:46  青成雪  阅读(49)  评论(0编辑  收藏  举报