团队作业第六次—团队Github实战训练(追光的人)
| 所属课程 | 软件工程1916 |
|---|---|
| 作业要求 | 团队作业第六次—团队Github实战训练 |
| 团队名称 | 追光的人 |
| 作业目标 | 搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽奖人员颁布抽奖结果的基本流程。 |
目录
组员职责分工
| 队员学号 | 队员博客 | 此次作业任务 |
|---|---|---|
| 221600219 | 小墨 | 建立github数据库,协助修改bug; |
| 221600240 | 真·大能猫 | 数据库编程; |
| 221600212 | kilig | GUI编程; |
| 221600235 | fishkk | 算法设计; |
| 221600236 | 巴啦啦魔仙 | 算法设计; |
| 221600103 | lc | 博客编写,辅助编程; |
| 221600205 | 星夜、痕 | 过滤数据; |
github 的提交日志截图
程序运行截图

GUI界面

基础功能实现
- 实现完整GUI界面

- 设置抽奖事件、文案、规则
设置参与抽奖关键词,所有发某个关键词的用户可参与,比如:#我要参与换组活动#、#我要红包#、#我爱软工实践#、#我要当学习委员#

- 抽奖活动文案
抽奖发言时段

- 抽奖过滤规则
- 过滤掉平时不发言的同学
- 过滤掉助教和老师
奖品列表

获奖名单

提供不过滤、普通过滤、深度过滤等满足不同用户需求的抽奖功能选项

- 抽奖算法设计思路
- 通过Java爬虫处理输入的text聊天记录,过滤掉系统消息。将聊天记录存入到两张数据库的表中,一张记录聊天信息(index,date,name,qqNumber,key_changeGroup,key_redPackets,key_iLoveSEP),一张记录用户聊天频率用于深度过滤(qqNumber,name,chatTotalRecords,normalChatRecords)。
- 不过滤:通过sql语句
select distinct chatrecord.qqNumber,chatrecord.name,userinfo.chatTotalRecords from chatrecord left join userinfo on chatrecord.qqNumber=userinfo.qqNumber where date between ? and ? and key_changeGroup=1;
筛选出符合要求的用户存入ArrayList中;
初步过滤:在不过滤的基础上通过增加sql语句 and not (chatrecord.name like'助教%' or chatrecord.name like'教师%')
筛选非助教,非教师的用户- 深度过滤:在初步过滤的通过sql语句userinfo.normalChatRecords>10
筛选出发送非抽奖消息次数多于10次的用户 随机lucknumbers生成:
- 通过Date now = new Date();
long nowtime =now.getTime();
获取1970至今的毫秒数 - 通过使用系统时间作为随机数种子生成随机数
Random r=new Random();
int ran1=r.nextInt(1000);
使用双随机的方式生成lucknumbers: int lucknum=(int) (sum%(peoplenum));
若奖品数大于参与人数,则返回所有用户的序列号。
- 通过Date now = new Date();
遇到的困难及解决方法
- 在读取文件的过程中出现乱码的现象,经过逐一排查后发现是数据库的编码格式不正确,改为utf8mb4之后顺利解决问题。
- 没有与前端沟通好,导致编写数据库接口时多写了一些没有必要的接口却少了必要的接口;以及少了必要的字段。通过及时的沟通然后顺利解决了上述问题
每位组员的贡献比例:
| 队员学号 | 队员博客 | 贡献占比 |
|---|---|---|
| 221600219 | 小墨 | 11% |
| 221600240 | 真·大能猫 | 16% |
| 221600212 | kilig | 16% |
| 221600235 | fishkk | 16% |
| 221600236 | 巴啦啦魔仙 | 16% |
| 221600103 | lc | 9% |
| 221600205 | 星夜、痕 | 16% |
PSP表格
小墨
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 10 | 20 |
| •EStimate | • 估计这个任务需要多少时间 | 10 | 20 |
| Development | 开发 | 160 | 140 |
| • Analysis | • 需求分析 (包括学习新技术) | 20 | 20 |
| • Design Spec | • 生成设计文档 | 0 | 0 |
| • Design Review | • 设计复审 | 0 | 0 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 30 |
| • Design | • 具体设计 | 20 | 30 |
| • Coding | • 具体编码 | 60 | 30 |
| • Code Review | • 代码复审 | 10 | 20 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 30 | 10 |
| Reporting | 报告 | 40 | 30 |
| • Test Repor | • 测试报告 | 10 | 10 |
| • Size Measurement | • 计算工作量 | 10 | 10 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 10 |
| 合计 | 210 | 190 |
真·大能猫
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 10 | 10 |
| • Estimate | • 估计这个任务需要多少时间 | 10 | 10 |
| Development | 开发 | 30 | 45 |
| • Analysis | • 需求分析 (包括学习新技术) | 20 | 30 |
| • Design Spec | • 生成设计文档 | 0 | 0 |
| • Design Review | • 设计复审 | 10 | 10 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
| • Design | • 具体设计 | 20 | 35 |
| • Coding | • 具体编码 | 180 | 250 |
| • Code Review | • 代码复审 | 60 | 60 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 25 | 30 |
| •Reporting | •报告 | 0 | 0 |
| • Test Report | • 测试报告 | 0 | 0 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 5 | 10 |
| 合计 | 395 | 490 |
kilig
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | ||
| •EStimate | • 估计这个任务需要多少时间 | 500 | 240 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 120 | 120 |
| • Design Spec | • 生成设计文档 | 30 | 30 |
| • Design Review | • 设计复审 | ||
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| • Design | • 具体设计 | ||
| • Coding | • 具体编码 | 240 | 180 |
| • Code Review | • 代码复审 | 30 | 120 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 60 | 50 |
| Reporting | 报告 | ||
| • Test Repor | • 测试报告 | 30 | 30 |
| • Size Measurement | • 计算工作量 | 30 | 30 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 20 |
| 合计 | 590 | 600 |
fishkk
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | ||
| •EStimate | • 估计这个任务需要多少时间 | 60 | 80 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 60 | 60 |
| • Design Spec | • 生成设计文档 | 60 | 40 |
| • Design Review | • 设计复审 | 120 | 110 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 60 | 50 |
| • Design | • 具体设计 | 120 | 120 |
| • Coding | • 具体编码 | 120 | 150 |
| • Code Review | • 代码复审 | 60 | 120 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 60 | 50 |
| Reporting | 报告 | ||
| • Test Repor | • 测试报告 | 40 | 50 |
| • Size Measurement | • 计算工作量 | 30 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 60 | 50 |
| 合计 | 790 | 850 |
巴啦啦魔仙
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | ||
| •EStimate | • 估计这个任务需要多少时间 | 500 | 240 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 120 | 120 |
| • Design Spec | • 生成设计文档 | 30 | 30 |
| • Design Review | • 设计复审 | ||
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| • Design | • 具体设计 | ||
| • Coding | • 具体编码 | 240 | 180 |
| • Code Review | • 代码复审 | 30 | 120 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 60 | 50 |
| Reporting | 报告 | ||
| • Test Repor | • 测试报告 | 30 | 30 |
| • Size Measurement | • 计算工作量 | 30 | 30 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 20 |
| 合计 | 590 | 600 |
lc
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | ||
| •EStimate | • 估计这个任务需要多少时间 | 100 | 275 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 20 | 25 |
| • Design Spec | • 生成设计文档 | 40 | 40 |
| • Design Review | • 设计复审 | 10 | 10 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| • Design | • 具体设计 | ||
| • Coding | • 具体编码 | 80 | 80 |
| • Code Review | • 代码复审 | ||
| • Test | • 测试(自我测试,修改代码,提交修改) | 20 | 25 |
| Reporting | 报告 | ||
| • Test Repor | • 测试报告 | ||
| • Size Measurement | • 计算工作量 | 10 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 10 |
| 合计 | 270 | 275 |
星夜、痕
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
| Planning | 计划 | ||
| •EStimate | • 估计这个任务需要多少时间 | 240 | 640 |
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | 180 | 240 |
| • Design Spec | • 生成设计文档 | 30 | 20 |
| • Design Review | • 设计复审 | ||
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
| • Design | • 具体设计 | ||
| • Coding | • 具体编码 | 240 | 240 |
| • Code Review | • 代码复审 | 60 | 120 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 60 | 50 |
| Reporting | 报告 | ||
| • Test Repor | • 测试报告 | 30 | 30 |
| • Size Measurement | • 计算工作量 | 30 | 30 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 20 |
| 合计 | 630 | 780 |
团队作业第六次—团队Github实战训练(追光的人)的更多相关文章
- 团队作业第六次—团队Github实战训练
作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 团队作业第六次-团队Github实战训练 团队目标 搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽 ...
- 团队作业第六次——团队Github实战训练
作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第六次-团队Github实战训练 团队名称:葫芦娃队 作业目标:确定和分析选题,绘制评审表 github地址:https://g ...
- 团队作业第六次-团队Github实战训练
格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目系统设计与数据库设计 团队名称:为了交项目干杯 GitHub地址:地址 作业目标:搭建一个相对公平公正的抽奖系统,根据QQ聊天记录, ...
- 团队Github实战训练
班级:软件工程1916|W 作业:团队Github实战训练 团队名称:SkyReach Github地址:Github地址 贡献比例表 队员学号 队员姓名 此次活动任务 贡献比例 221600106 ...
- bug终结者 团队作业第六、七周
bug终结者 团队作业第六.七周 作业要求:团队作业第六.七周 博客编辑:20162322 朱娅霖 一.修改<需求规格说明书> <需求规格说明书>2.0版(即初稿) <需 ...
- 团队作业八——第二次团队冲刺(Beta版本)第7天&项目汇总
项目汇总 第一天:http://www.cnblogs.com/newteam6/p/6879383.html 第二天:http://www.cnblogs.com/newteam6/p/688078 ...
- 团队作业八——第二次团队冲刺(Beta版本)第6天
团队作业八--第二次团队冲刺(Beta版本)第6天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题 ...
- 团队作业八——第二次团队冲刺(Beta版本)第5天
团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 完成界面跳转界面. (2) 今天计划完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (3) 工作中 ...
- 团队作业八——第二次团队冲刺(Beta版本)第4天
团队作业八--第二次团队冲刺(Beta版本)第4天 一.每个人的工作 (1) 昨天已完成的工作 做一下用户注册的功能和登录功能. (2) 今天计划完成的工作 完成界面跳转 (3) 工作中遇到的困难 界 ...
随机推荐
- android基础---->SharedPreferences的使用
SharedPreferences 还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型的,存储的数据是一个字符串,读取出来的数据仍然是字符串.这样你应该就能明显地感觉到 ...
- VMware vSphere6.0 服务器虚拟化部署安装图解(最全,最详细)-搭建的所有步骤
VMware vSphere6.0 服务器虚拟化部署安装图解 一 .VMware vSphere部署的前期规划要点 1.vSphere的优点 (略) 2如何利用现在的设备架构虚拟化环境 在虚拟化过程中 ...
- 在Linux下,使用Xmanager图形化显示
linux在安装Oracle时,需要图形化展示,本博客将使用xclock显示钟表进行测试 首先需要下载Xmanager网址:http://www.xshellcn.com/ 安装之后 打开之后,点击t ...
- c#中冒泡排序算法描述
int temp = 0; int b = 0; int[] arr = { 23, 44, 66, 76, 98, 11, 3, 99, 7 };# region该段与排序无关Console.Wri ...
- 5_PHP数组_3_数组处理函数及其应用_2_数组统计函数
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 一.数组统计函数 数组统计函数是指统计数组各元素的值,并对这些值进行简单分析. 1. count() 函数 该函数 ...
- 深入理解JVM(六) -- GC执行原则和方案
上篇文章中,我们了解了Java虚拟机垃圾回收的思路和策略,这篇文章我们将了解Java是如何实现高效的回收算法的. 我们需要了解,内存回收必须要保证“一致性”,意思就是在执行GC分析的时候,系统看起来要 ...
- vue基础:组件的创建方式和组件的data值
vue组件是什么: 组件是可复用的 Vue 实例,组件可以进行任意次数的复用 vue组件创建方式有3种: //第一种创建组件的方式// Vue.extend创建全局组件var com1 = Vue.e ...
- Django:ORM介绍
1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- CentOS 7 - 里面如何以root身份使用图形界面管理文件?
nautilus 是gnome的文件管理器,但是如果不是root账号下,权限受限,我们可以通过以下方式以root权限使用! 启动shll,随后在shell里面输入下面命令: sudo nautilus
- CentOS 7 - 安装PostgreSQL
一,用yum安装PostgreSQL . 选择安装版本和服务器平台后,执行安装命令,例如我要安装是9.6版本,平台是CentOS 7. https://www.postgresql.org/downl ...