zoukankan      html  css  js  c++  java
  • 第六次作业--结对编程第二次

    结对第二次作业

    成员:
    圳源: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库
  • 相关阅读:
    求逆序对
    2018浙江省赛(ACM) The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
    江西财经大学第一届程序设计竞赛
    EOJ Monthly 2018.4
    AtCoder Regular Contest 096
    “今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
    Wannafly挑战赛14
    是男人就过 8 题--Pony.AI A AStringGame
    埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
  • 原文地址:https://www.cnblogs.com/losttrain/p/7674060.html
Copyright © 2011-2022 走看看