团队作业第六次—团队Github实战训练(追光的人)

时间:2023-03-09 20:29:01
团队作业第六次—团队Github实战训练(追光的人)
所属课程 软件工程1916
作业要求 团队作业第六次—团队Github实战训练
团队名称 追光的人
作业目标 搭建一个相对公平公正的抽奖系统,根据QQ聊天记录,完成从统计参与抽奖人员颁布抽奖结果的基本流程。

目录


组员职责分工

队员学号 队员博客 此次作业任务
221600219 小墨 建立github数据库,协助修改bug;
221600240 真·大能猫 数据库编程;
221600212 kilig GUI编程;
221600235 fishkk 算法设计;
221600236 巴啦啦魔仙 算法设计;
221600103 lc 博客编写,辅助编程;
221600205 星夜、痕 过滤数据;

github 的提交日志截图


程序运行截图


团队作业第六次—团队Github实战训练(追光的人)

GUI界面


团队作业第六次—团队Github实战训练(追光的人)

基础功能实现


  • 实现完整GUI界面
    团队作业第六次—团队Github实战训练(追光的人)
  • 设置抽奖事件、文案、规则
  • 设置参与抽奖关键词,所有发某个关键词的用户可参与,比如:#我要参与换组活动#、#我要红包#、#我爱软工实践#、#我要当学习委员#
    团队作业第六次—团队Github实战训练(追光的人)

  • 抽奖活动文案
  • 抽奖发言时段
    团队作业第六次—团队Github实战训练(追光的人)

  • 抽奖过滤规则
    • 过滤掉平时不发言的同学
    • 过滤掉助教和老师
  • 奖品列表
    团队作业第六次—团队Github实战训练(追光的人)

  • 获奖名单
    团队作业第六次—团队Github实战训练(追光的人)

  • 提供不过滤、普通过滤、深度过滤等满足不同用户需求的抽奖功能选项
    团队作业第六次—团队Github实战训练(追光的人)

  • 抽奖算法设计思路
    • 通过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