这个作业属于哪个课程 | 链接: https://bbs.csdn.net/forums/fzuSoftwareEngineering2021. |
---|---|
这个作业要求在哪里 | 链接: https://bbs.csdn.net/topics/600574694. |
这个作业的目标 | 对markdown的进一步应用,对编程思维的开拓 |
学号 | 031902414 |
GitHub地址 | 链接: https://github.com/. |
PSP表
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | — | — |
Estimate · | 估计这个任务需要多少时间 | 720 | 900 |
Development | 开发 | 60 | 120 |
Analysis · | 需求分析 (包括学习新技术) | 60 | 75 |
Design Spec | · 生成设计文档 | 60 | 90 |
Design Review | · 设计复审 | 30 | 60 |
Coding Standard · | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | · 具体设计 | 45 | 40 |
Coding | · 具体编码 | 150 | 140 |
Code ReviewPlanning | · 代码复审计划 | 30 | 25 |
Test· Estimate | · 测试(自我测试,修改代码,提交修改)· 估计这个任务需要多少时间 | 120 | 150 |
ReportingDevelopment | 报告 | 60 | 60 |
Postmortem & Process Improvement Plan· Design Review · | 事后总结, 并提出过程改进计划· 设计复审 | 30 | 60 |
— | · 合计 | 675 | 850 |
Git部分
仓库链接
链接: https://github.com/nidemingz/work.
代码部分
语言选择
c++
解题思路
因为是对关键字进行判断,所以首先是要把关键字列出,储存,方便之后对每一个字符串的判断。
对于这道题,第二步就是对文件进行读取。
在打开文件后,要对文件代码每一行进行逐个字符串进行提取,分析。
在提取完字符串之后,就要进行关键字判断。这里选择的是用 <string.h> 中的 strcmp字符串比较函数(若 str1=str2,则返回零;若 str1<str2,则返回负数;若 str1>str2,则返回正数。)在比较途中,针对 switch、case、if—else、if—elseif—else 进行计数。
对于 if—else 结构,主要检查 else 之前是 else-if 还是 if 如果是 else—if 则判断为 if-elseif-else 结构,然后找到这个 if-elseif-else 结构的第一个 if 字符,将这个结构忽略,即从栈中移除这一个 if-elseif-else 的全部字符,再开始进行下一次检查。
最后根据输入的 level进行输出。
单元测试
正确性
后续问题
关于关键字检测
在关键词前后必须有空格,才能检查到,如果关键词前后有但不限于与括号,冒号,就检测错误。这个属于字符串输入时未检测到符号问题,会在后续进行更改。
注释
现还未针对注释进行修改,在注释中拥有关键字也会进入计数,将在之后打补丁。(已添加)
变量与函数
部分自定义的变量与函数也会因为符号或者下标造成误判。(已添加)