2021秋软工实践第一次个人编程作业

REP1USONE 线下助教 2021-09-14 00:41:47
加精

第一次个人编程作业

Deadline: 2021-09-21 00:00am

作业提交在这里https://bbs.csdn.net/topics/600840299

实现一个程序功能,它可以对读入的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;
}

格式要求

  • 输入格式:执行时,需向程序传入两个参数,第一个参数是代码文件的路径,第二个参数是完成等级(从低到高为1,2,3,4)

    如 python keyCount.py data/key.c 4

  • 输出格式:上面的代码作为样例

    total num: 35
    switch num: 2
    case num: 3 2
    if-else num: 2
    if-elseif-else num: 2

    关键字共定义为32个:

autobreakcasecharconstcontinuedefaultdo
doubleelseenumexternfloatforgotoif
intlongregisterreturnshortsignedsizeofstatic
structswitchtypedefunionunsignedvoidvolatilewhile
...全文
3190 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

189

社区成员

发帖
与我相关
我的任务
社区描述
福州大学软件工程教学,推行邹欣老师“构建之法”。
软件工程 高校
社区管理员
  • Dawnfox
  • REP1USONE
  • 纪华裕
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧