第六次作业--结对编程第二次

结对第二次作业

成员:
圳源: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库

posted on 2017-10-15 20:36  Rahkah  阅读(112)  评论(1编辑  收藏  举报

导航