192
社区成员




这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 第一次编程作业 |
这个作业的目标 | 1.学会使用PSP表格 2.学会使用Code Quality Analysis工具 3.学会使用性能分析工具Studio Profiling Tools 4.学会使用Gitcode来管理源代码和测试用例 5.学会使用单元测试对项目进行测试 |
其他参考文献 | 无 |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 40 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 700 | 800 |
Development | 开发 | 300 | 300 |
· Analysis | · 需求分析 (包括学习新技术) | 30 | 45 |
· Design Spec | · 生成设计文档 | 30 | 50 |
· Design Review | · 设计复审 | 25 | 40 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 50 |
· Design | · 具体设计 | 40 | 60 |
· Coding | · 具体编码 | 300 | 450 |
· Code Review | · 代码复审 | 20 | 25 |
· Test | · 测试(自我测试,修改代码,提交修改 | 30 | 40 |
Reporting | 报告 | 30 | 35 |
· Test Repor | 测试报告 | 30 | 40 |
· Size Measurement | · 计算工作量 | 10 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 50 |
· 合计 | 1745 | 2065 |
暴力匹配法:逐个比较两个字符串里的每个位的字符
CPU使用率
消耗最大的函数
int similar(char* a, char* b)//得到两个数组里相同字符的个数的函数
{
int n = strlen(a);
int m = strlen(b);
for (int i = 0; i <= n - m; i++)
{
int j;
for (j = 0; j < m; j++)
{
if (a[i + j] != b[j]) {
break;
}
}
if (j == m)
{
return i;
}
}
}
字符串重复函数
#include "pch.h"
#include "CppUnitTest.h"
#include <string.h>
#define LEN 10
#define CHAR_MIN 'a'
#define CHAR_MAX 'z'
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(similar)
{
char a[LEN + 1] = { 0 }, b[LEN + 1] = {0};
for (int k = 0; k<10; k++)
{
a[k] = rand() % (CHAR_MAX - CHAR_MIN + 1) + CHAR_MIN;
}
for (int k = 0; k < 10; k++)
{
b[k] = rand() % (CHAR_MAX - CHAR_MIN + 1) + CHAR_MIN;
}
int n = strlen(a);
int m = strlen(b);
for (int i = 0; i <= n - m; i++)
{
int j;
for (j = 0; j < m; j++)
{
if (a[i + j] != b[j]) {
break;
}
}
if (j == m)
{
Assert::IsTrue(i);
}
}
}
};
}