2021秋软工实践第一次个人编程作业
第一次个人编程作业
Deadline: 2021-09-21 00:00am
实现一个程序功能,它可以对读入的C或C++代码文件进行不同等级的关键字提取。
题目要求
-
基础要求:输出关键字统计信息
-
进阶要求:输出有几组switch case结构,同时输出每组对应的case个数
-
拔高要求:输出有几组if else结构
-
终极要求:输出有几组if,else if,else结构
在完成更高要求的情况前,需完成前置的要求。
编码要求
-
使用 C++、Java、Python 中任一种完成任务。
-
制定合适的代码规范,进行测试。
-
使用 Git 进行版本控制。
前置要求
GitHub 初使用
为了保证你的代码能够帮助更多的人,并且能得到有效的管理和开源共享,请先学习 GitHub 使用:
-
下载 Git。
-
学习基础 Git 命令。
-
在GitHub上创建仓库并上传本次作业,完成基本需求,并至少进行10次以上的 commit。
代码规范制定
为了其他同仁可以轻松的阅读你的代码,请制定属于你的代码规范,要求不能偏离主流代码规范:请参照 《码出高效_阿里巴巴Java开发手册》/《谷歌C++开源项目风格指南》/《Python PEP8》,从以下几个角度制定你的编程规范,并撰写成 Markdown 文件,请牢记你制定的编码规范,并在此次作业中严格执行。
-
缩进
-
变量命名
-
每行最多字符数
-
函数最大行数
-
函数、类命名
-
常量
-
空行规则
-
注释规则
-
操作符前后空格
-
其他规则
作业步骤
-
创建作业的GitHub仓库。
-
编写程序,积极 commit。
-
迭代更新,优化代码。
-
编写博客,完成作业。
博客要求
-
给出此次作业的 PSP 表格。
-
解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的过程。
-
设计实现过程。设计包括代码如何组织,关键函数的流程图。
-
代码说明。展示出项目关键代码,并解释思路。
-
单元测试截图和描述。
-
单元测试覆盖率优化和性能测试,性能优化截图和描述。
-
总结本次作业。
评分标准(150)
-
Git 部分(15)
-
commit 信息规范(5)
-
文件规范(5)
-
其他(5)
-
-
代码部分(20)
-
代码风格(5)
-
代码规范(5)
-
单元测试(10)
-
-
博客部分(65)
-
任务分解(10)
-
PSP 表格(5)
-
迭代过程描述(10)
-
困难描述及解决办法寻找(15)
-
其他(10)
-
-
程序评测(45)
-
正确性(20)
-
运行速度(25)
-
-
提交时间(5)
附录
C语言文件样例:
#include <stdio.h>
int main(){
int i=1;
double j=0;
long f;
switch(i){
case 0:
break;
case 1:
break;
case 2:
break;
default:
break;
}
switch(i){
case 0:
break;
case 1:
break;
default:
break;
}
if(i<0){
if(i<-1){}
else{}
}
else if(i>0){
if (i>2){}
else if (i==2) {}
else if (i>1) {}
else {}
}
else{
if(j!=0){}
else{}
}
return 0;
}
格式要求
-
输出格式:上面的代码作为样例
total num: 35 switch num: 2 case num: 3 2 if-else num: 2 if-elseif-else num: 2
关键字共定义为32个:
auto | break | case | char | const | continue | default | do |
---|---|---|---|---|---|---|---|
double | else | enum | extern | float | for | goto | if |
int | long | register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | void | volatile | while |