第六次作业--结对编程第二次
结对第二次作业
成员:
圳源:414
文智:125
队友博客园地址: http://www.cnblogs.com/wwenzhi/
github
设计说明:
student
学号 时间 部门 tag标签
department
部门编号 时间 限制人数 tag标签
输入数据生成:(学生部分为例)
// 随机生成唯一的学生学号:S开头,后4位随机生成1-9数字,如S1414
string getStuId() {
string StuId = "S";
int count = 0;
do
{
if (count >= 1)// 防止生成重复StuId,重置
{
StuId = "S";
}
for (int i = 0; i < 4; i++) {
StuId += rand() % 10 + '0';
}
count++;
} while (id[StuId]);
id[StuId] = true;
return StuId;
}
// 随机生成时间
string getTime() {
int d, h1;
do {
d = rand() % 7;
h1 = rand() % 13;
} while (flag[d][h1] || flag[d][h1 + 1] || flag[d][h1 + 2]);
string res = day[d] + "." + hour[h1] + ":00" + "~" + hour[h1 + 2] + ":00";
flag[d][h1] = flag[d][h1 + 1] = flag[d][h1 + 2] = true;// 防止时间冲突
return res;
}
// 学生
void data_stu(int n) {
Json::Value Item;
int i, j;
id.clear();
bool in[10];
for (i = 0; i < n; ++i) {
memset(used, false, sizeof(used));
memset(flag, false, sizeof(flag));
memset(in, false, sizeof(in));
// 随机生成学生编号
Item["student_no"] = getStuId();
// 随机生成空余时间
int cnt = rand() % 10 + 7;
for (j = 0; j < cnt; ++j) {
string tmp;
tmp = getTime();
Item["free_time"].append(tmp);
}
// 从已创建的部门中随机抽出<=5个部门
int deps = rand() % 6;
for (j = 0; j < deps; ++j) {
int inx;
do {
inx = rand() % 20;
} while (in[inx]);
Item["applications_department"].append(depId[inx]);
in[inx] = true;
}
// 随机从已经被部门所使用过的标签中抽出tgn个标签
int tgn = rand() % 4 + 2;
for (j = 0; j < tgn; ++j) {
int inx;
do {
inx = rand() % 12;
} while (used[inx] || !vis[inx]);
used[inx] = true;
Item["tags"].append(tag[inx]);
}
MAIN["students"].append(Item);
Item.clear();
}
return;
}
遇到的困难及解决办法: 这是我第一次使用json这种数据格式,刚开始我对这毫无概念,以为是要安装一个编辑器,后来查阅了很多资料,问了同学,又听说腾讯的rapidjson很好用,所以我一开始用的是rapidjson,但是没有师傅领进门,自己领悟有点难,于是询问了同学,同学用的jsoncpp,于是我也用这个,可以说在这个事情上花了很多时间,所以有时候自己看再多资料还不如懂的人一句话的事情。要多问。
对队友的评价: 我跟队友都是处于小白阶段,但是优点就是对新事物好奇,自学能力强,而且有责任心,我们分工明确,干活不累。
psp学习进度条:
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 60 | 120 |
Development | 开发 | 240 | 240 |
· Analysis | · 需求分析 (包括学习新技术) | 300 | 300 |
· Design Spec | · 生成设计文档 | 60 | 60 |
· Design Review | · 设计复审 (和同事审核设计文档) | 30 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
· Design | · 具体设计 | 60 | 90 |
· Coding | · 具体编码 | 180 | 240 |
· Code Review | · 代码复审 | 60 | 120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 60 | 120 |
Reporting | 报告 | 120 | 120 |
· Test Report | · 测试报告 | 120 | 150 |
· Size Measurement | · 计算工作量 | 180 | 180 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 60 | 30 |
合计 | 1710 | 1890 |
学习进度条:
第几周 | 新增代码/行 | 累计代码/行 | 本周学习耗时/小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 500 | 500 | 19 | 19 | 学会了使用效能分析工具 |
2 | 600 | 1100 | 32 | 51 | 学会用json库 |