2021秋软工实践第一次个人编程作业
第一次个人编程作业
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个:
| 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 |
相关推荐
国央企在推动科技创新时,如何利用技术交易系统实现全流程闭环管理?.docx
国央企在推动科技创新时,如何利用技术交易系统实现全流程闭环管理?
高校技术转移办公室人员如何提升技术成果的推介效率?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
机械三维3D设计图-自动引孔锁螺丝设备.zip
机械三维3D设计图-自动引孔锁螺丝设备.zip
sogou-wubi-5.5f.zip
五笔输入法
智能体上下文工程:预算控制与结构化压缩的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;预算值与保留轮数为常量,可按业务调整。测算脚本离线可跑,假设参数在文件内显式标注,便于改成你的真实口径。压缩会损失细节,涉及合规留痕的场景请关闭自动压缩或单独归档原文。


