所属课程 软件工程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));

      若奖品数大于参与人数,则返回所有用户的序列号。

遇到的困难及解决方法


  • 在读取文件的过程中出现乱码的现象,经过逐一排查后发现是数据库的编码格式不正确,改为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实战训练(追光的人)的更多相关文章

  1. 团队作业第六次—团队Github实战训练

    作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 团队作业第六次-团队Github实战训练 团队目标 搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽 ...

  2. 团队作业第六次——团队Github实战训练

    作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第六次-团队Github实战训练 团队名称:葫芦娃队 作业目标:确定和分析选题,绘制评审表 github地址:https://g ...

  3. 团队作业第六次-团队Github实战训练

    格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目系统设计与数据库设计 团队名称:为了交项目干杯 GitHub地址:地址 作业目标:搭建一个相对公平公正的抽奖系统,根据QQ聊天记录, ...

  4. 团队Github实战训练

    班级:软件工程1916|W 作业:团队Github实战训练 团队名称:SkyReach Github地址:Github地址 贡献比例表 队员学号 队员姓名 此次活动任务 贡献比例 221600106 ...

  5. bug终结者 团队作业第六、七周

    bug终结者 团队作业第六.七周 作业要求:团队作业第六.七周 博客编辑:20162322 朱娅霖 一.修改<需求规格说明书> <需求规格说明书>2.0版(即初稿) <需 ...

  6. 团队作业八——第二次团队冲刺(Beta版本)第7天&项目汇总

    项目汇总 第一天:http://www.cnblogs.com/newteam6/p/6879383.html 第二天:http://www.cnblogs.com/newteam6/p/688078 ...

  7. 团队作业八——第二次团队冲刺(Beta版本)第6天

    团队作业八--第二次团队冲刺(Beta版本)第6天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题 ...

  8. 团队作业八——第二次团队冲刺(Beta版本)第5天

    团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 完成界面跳转界面. (2) 今天计划完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (3) 工作中 ...

  9. 团队作业八——第二次团队冲刺(Beta版本)第4天

    团队作业八--第二次团队冲刺(Beta版本)第4天 一.每个人的工作 (1) 昨天已完成的工作 做一下用户注册的功能和登录功能. (2) 今天计划完成的工作 完成界面跳转 (3) 工作中遇到的困难 界 ...

随机推荐

  1. node + promise 实现文件读写

    const fs = require('fs'); const promise = new Promise((resolve, reject) => {     fs.open('./c.txt ...

  2. Mac OS备份迁移iBooks图书操作方法

    前段时间换电脑,需要把原本电脑上的一些文件备份.迁移出来,包括iBooks中的电子书. 理论上,苹果体系中通过icloud账号可以把通讯录.备忘录等东西同步过去,但查了一下发现图书支持有限,而且我的e ...

  3. pip修改成国内镜像源

    临时指定镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple seaborn 永久修改镜像源 linux下,修改 ~/.pip/pip ...

  4. LeetCode 503. 下一个更大元素 II(Next Greater Element II)

    503. 下一个更大元素 II 503. Next Greater Element II 题目描述 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 ...

  5. 为什么Redis单线程却能支撑高并发?

    作者:Draveness 原文链接:draveness.me/redis-io-multiplexing 最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适 ...

  6. class——python编程从入门到实践

    创建和使用类 1. 创建Dog类 class Dog: """一次模拟小狗的简单尝试""" def __init__(self, name, ...

  7. Java8时间转换

    ===java8中时间的各种转换(LocalDateTime)=== 1.将LocalDateTime转为自定义的时间格式的字符串 public static String getDateTimeAs ...

  8. 在windows中使用PuTTy上传下载文件和目录

    打开windows的cmd,使用cd命令切换到PuTTy安装目录 C:\Users\NUC>cd C:\Program Files\PuTTY 在cmd中使用pscp命令上传下载文件 windo ...

  9. Python接口自动化基础---cookie绕过登录

    使用fiddler获取登录cookie 对比登录前和登录后的cookis 登录前 登录后: 获得cookie之后,使用cookie访问,就可以获取登录态: import requests url='h ...

  10. pycharm从本地离线添加模块

    豆瓣的源: http://pypi.douban.com/simple pip install matplotlib -i http://pypi.douban.com/simple --truste ...