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

抱着欣欣看月亮 2021-09-22 23:07:57
这个作业属于哪个课程构建之法-2021秋-福州大学软件工程
这个作业要求在哪里2021秋软工实践第一次个人编程作业
这个作业的目标实现一个程序功能,它可以对读入的C或C++代码文件进行不同等级的关键字提取。
学号021900619

 

 

psp表格

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

 

解题思路

    打算用Python语言进行编程,任务分解成三部分:1.文件读取  2.关键词匹配 3.统计信息.由于该作业难度不是很大,因此免去了查资料,直接而进行代码编写。

 

代码设计

1.文件读取

     读取文件并除去换行符

def readFile(path):
    with open(path, 'r', encoding='utf-8') as f:
        return f.read().replace("\n", "")

2.初始化关键词匹配表及结果保存容器

keyWords = ["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"]

3.编写正则表达式

def countKeyWords(text, key_words):
    '''计算关键词个数'''
    return len(re.findall(f"(?:{'|'.join(key_words)})", text))

def countSwitch(text):
    '''计算switch case结构个数'''
    return [str(len(re.findall(r"case ",i))) for i in re.findall(r"switch(.*?)\}", text)]

def countIfElse(text):
    '''计算if else'''
    return len(re.findall(r"if\(.*?\){.*?}.*?else{.*?}",text))

def countIfElseifElse(text):
    '''计算if-elseif-else'''
    return len(re.findall(r"if.*?\{.*?\}.*?(?:else if.*?\{.*?\}.*?)+else.*?\{.*?\}",text))

 

 

...全文
1470 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1164520408 2021-09-29
  • 打赏
  • 举报
回复

缺乏性能分析等要求

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

没有写完所有要求的部分。

189

社区成员

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

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