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

REP1USONE REP1USONE 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

第一次个人编程作业

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
...全文

相关推荐

国央企在推动科技创新时,如何利用技术交易系统实现全流程闭环管理?.docx

国央企在推动科技创新时,如何利用技术交易系统实现全流程闭环管理?

BIZKEEN

高校技术转移办公室人员如何提升技术成果的推介效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

机械三维3D设计图-自动引孔锁螺丝设备.zip

机械三维3D设计图-自动引孔锁螺丝设备.zip

ZL4120505

sogou-wubi-5.5f.zip

五笔输入法

一and一>二

智能体上下文工程:预算控制与结构化压缩的Python实现

【内容概要】 本资源是《智能体演化史》系列第四篇的配套代码,用 108 行 Python 实现一个会"收桌子"的上下文管理器。核心是两件事:一是设一个上下文预算,用 token 估算函数实时盯着;二是超预算时执行结构化压缩——把早期轮次压成一段结论式摘要,保留最近若干轮原文,并且对失败尝试和关键事实单独留档,不让它们被摘要吃掉。配套测算脚本给出三组可复算的数据:关键信息密度从第一轮的 100% 衰减到第 80 轮的 13%(腐烂的本质是稀释,不是撑爆,按当前增量要 213 轮才真的撞上 128K 窗口);跑 80 轮,不压缩累积 199 万 token,滚动摘要降到 37.1 万,直接截断只要 42.6 万但关键信息只留下 8%。这组数字说明:只盯着账单会选错策略。 【适用人群】 智能体已能跑通、但长任务开始"变傻"的开发者;负责长会话产品体验的工程师;需要在成本与准确率之间做取舍的架构师。 【使用场景及目标】 1) 给自己的智能体加一层可配置的上下文预算与压缩; 2) 用测算脚本对比三种策略的成本与保留率,做出有依据的选择; 3) 作为团队内部分享材料,解释"提示词工程"为何被上下文工程取代。 目标:让长任务不再越跑越糊涂,同时把 token 花在真正重要的信息上。 【其他说明】 需 pip install openai 并配置 OPENAI_API_KEY;预算值与保留轮数为常量,可按业务调整。测算脚本离线可跑,假设参数在文件内显式标注,便于改成你的真实口径。压缩会损失细节,涉及合规留痕的场景请关闭自动压缩或单独归档原文。

积流成海
评论
收藏 已收藏
分享
返回顶部