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

Aiiiiizw 2021-09-21 12:00:14
这个作业属于哪个课程构建之法-2021秋-福州大学软件工程 https://bbs.csdn.net/forums/fzuSoftwareEngineering2021?category=0
这个作业要求在哪里2021秋软工实践第一次个人编程作业 https://bbs.csdn.net/topics/600574694
这个作业的目标<实现一个程序功能,它可以对读入的C或C++代码文件进行不同等级的关键字提取。>
学号031902201

psp表格

Personal software process stages预估耗时(分钟)预估耗时(分钟)
Planning 计划4030
Estimate 估计这个任务需要多少时间
Development开发
Analysis 需求分析 (包括学习新技术)300420
Design Spec生成设计文档4090
Design Review 设计复审2020
Coding Standard 代码规范 (为目前的开发制定合适的规范)3030
Design具体设计6040
Coding具体编码300420
Code Review代码复审6090
Test测试(自我测试,修改代码,提交修改)120120
Reporting报告
Test Report 测试报告2030
Size Measurement计算工作量3030
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划4040
Total合计10601360

解题思路

​ 1.读取文件

首先需要对整个文件进行读取。在网上查阅了相关资料才掌握了ifstream的相关用法。然后是对文件中的内容进行读取。在这个地方我使用了getline一行一行地读取文件中的内容,将其存放在vector之中。代码如下

vector lines;
char path[1000];int level;cin>>path>>level;
ifstream ifs;
ifs.open(path,ios::in);
if(!ifs.is_open())
{
cerr<<"can not open file"<<endl;
exit(0);
}


迭代过程

1.读取每一行并统计关键词总个数,代码如下

while(getline(ifs,line))
{
lines.push_back(line);
for(i=0;i<32;i++)
{

    if(line.find(keyword[i])!=line.npos&&keyword[i]!="double")num=num+1;
    
}

}

2.统计switch个数及其内嵌的case个数,代码如下

for(j=0;j<lines.size();j++)
if(lines[j].find("switch")!=lines[j].npos)
{
    snum=snum+1;
    for(k=j+1;k<lines.size();k++){
    if(lines[k].find("switch")!=lines[k].npos){temp=2;break;}
    if(lines[k].find("case")!=lines[k].npos){temp=1;sno[snum]=sno[snum]+1;}
    
    if(temp==2)break;}
}

3.后续的ifelse结构由于能力有限还暂时无法完成。

运行结果

img

image-20210921115623058

如图所示

总结;

本次作业个人认为是较难的。在实验过程中也曾多次因为不会写代码,而直接放弃到第二天再来写。本次的作业中的代码,比较杂,很多地方不规范,但还是磕磕绊绊的完成了一部分,学习到了一些相关算法的使用,受益良多。

img

...全文
1747 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimSton 2021-09-29
  • 打赏
  • 举报
回复

未看到提交的代码

SoftwareTeacher 2021-09-22
  • 打赏
  • 举报
回复

本次的作业中的代码,比较杂,很多地方不规范,但还是磕磕绊绊的完成了一部分


什么时候可以全部写规范,并全部完成呢?

内容概要:W25Q128是一款由华邦(Winbond)生产的128M-bit(16MB)串行闪存芯片,支持标准、双通道和四通道SPI接口,适用于空间受限、引脚有限和低功耗系统。该芯片提供灵活的存储架构,包括65,536个可编程页面(每页256字节),支持按4KB扇区、32KB块、64KB块或整片擦除,适用于代码镜像到RAM、直接从SPI执行代码(XIP)以及语音、文本和数据存储。其最高时钟频率可达104MHz(标准SPI)和70MHz(四通道SPI),连续数据传输速率高达35MB/s,性能远超传统串行闪存。芯片还具备多种写保护机制,包括软件和硬件写保护、状态寄存器保护、上/下部阵列保护以及一次性可编程(OTP)安全寄存器,确保数据完整性。此外,它集成了64位唯一序列号和可发现参数(SFDP)寄存器,便于设备识别和配置管理。; 适合人群:嵌入式系统工程师、硬件设计师、固件开发人员以及从事消费电子、工业控制和汽车电子等领域需要外部非易失性存储解决方案的技术人员。; 使用场景及目标:①在资源受限的嵌入式系统中扩展程序或数据存储空间;②实现高速代码加载(Code Shadowing)或将程序直接存储于外部Flash并原地执行(XIP);③利用其多级写保护和安全寄存器特性增强系统的数据安全性和防篡改能力;④通过四线SPI接口提升通信带宽,满足高性能应用需求。; 阅读建议:本资料为芯片的数据手册,技术细节丰富,建议结合具体应用场景重点查阅电气特性、指令集及时序图部分,并参考推荐封装尺寸与布局规范进行PCB设计;对于安全性要求高的项目,应深入研究状态寄存器配置与安全锁机制。
内容概要:本文围绕城市空中交通中的多无人机路径规划问题,提出了一种从仿生搜索机理到分层协同求解的综合优化方法。研究融合了布谷鲶鱼优化算法(CCO)、灰雁优化算法(GGO)与田忌赛马优化算法(THRO)等多种仿生智能优化策略,针对复杂空域环境下多无人机协同飞行中存在的路径冲突、避障、能耗优化与任务分配等多重约束,构建了高效的路径规划模型。通过Matlab仿真平台实现了算法的编码与验证,展示了在多约束耦合场景下的优越求解性能,有效提升了路径安全性、系统整体效率与动态适应能力。该方法不仅解决了传统路径规划中易陷入局部最优的问题,还增强了系统对突发状况的响应能力。; 适合人群:具备一定算法基础和Matlab编程能力,从事智能交通、无人机控制、路径规划及相关领域研究的研发人员与高校研究生。; 使用场景及目标:①应用于城市空中交通管理系统中多无人机的协同路径规划与避障;②为复杂动态环境中智能体群的分层协同决策提供算法支持与仿真验证方案;③助力低空经济、智慧物流、应急救援等场景下的无人系统自主决策能力提升。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注仿生算法的参数设置、分层架构设计逻辑及多目标优化的权衡机制,同时可通过调整环境参数进行扩展性实验,进一步掌握其在不同场景下的适应性与优化潜力。
内容概要:本文研究了基于Floyd-Steinberg算法的光栅和蛇形误差扩散半色调技术,旨在通过Matlab代码实现对图像进行高质量的半色调处理。该方法利用误差扩散原理,将原始图像的灰度值转换为二值化输出,同时将量化误差按特定权重分布到邻近未处理像素,从而有效保留图像的细节、纹理与层次感。文中系统对比了光栅扫描与蛇形扫描两种像素遍历方式,深入分析其在抑制纹理伪影、改善视觉均匀性方面的性能差异。通过大量实验验证了算法在不同图像输入下的有效性,全面评估了其在图像视觉质量与计算效率之间的平衡表现,并提供了可复现的Matlab实现代码。; 适合人群:具备数字图像处理基础知识,熟练掌握Matlab编程语言,从事图像处理、印刷电子、显示技术或计算机视觉等相关领域的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于图像二值化处理,服务于打印机、传真机、电子墨水屏等输出设备的图像渲染;②作为教学实例,帮助学生深入理解误差扩散算法的核心机制与扫描路径的影响;③为研究更先进的半色调技术(如自适应误差扩散、多级半色调)提供基础算法实现与改进平台; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注Floyd-Steinberg误差扩散矩阵的权重分配逻辑以及扫描路径对输出图像纹理的影响,可通过调整算法参数(如阈值、权重系数)并观察输出结果的变化,从而加深对算法原理与实际应用之间联系的理解。

189

社区成员

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

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