- 值得一看的补充版本演示视频
- 程序版本链接及说明
- 按时提交版本
- 以基础功能为主
- github链接:
- 测试环境说明
- 本程序在python 3.6以上环境下运行
- 操作说明:
- 键入抽奖关键词,支持:#我要红包#或“我要换组“或”我支持调课“
- 键入抽奖关键词后,必须按回车向后台提交关键词
- 选择或键入抽奖时段
- 点击”抽奖“按钮,开始抽奖
- 点击”停止“按钮,抽奖完成
- 获得抽奖名单
- 超时完善版本
- 在基础功能基础上,完善并整合了附加功能
- github链接:
- 测试环境说明
- 本程序在python 3.6以上环境下运行
- 同时需要安装配置以下内容:
- jieba分词
- WordCloud词云包
- 附上安装教程博客链接:
- jieba分词安装:
- WordCloud词云包安装:
- 操作说明:
- 键入抽奖关键词,支持:#我要红包#或“我要换组“或”我支持调课“
- 键入抽奖关键词后,必须按回车向后台提交关键词
- 选择或键入抽奖时段
- 点击”抽奖“按钮,开始抽奖
- 点击”停止“按钮,抽奖完成
- 获得抽奖名单,并输出数据分析图
- 按时提交版本
- 组员职责分工
- 后敬甲(组长):文案设计、现场协调、进度跟进
- 葛亮:原型界面设计
- 黄泽:GUI界面制作
- 婧茹:附加功能设计
- 刘浩:GUI界面制作
- 泽明:随机算法设计+筛选算法设计
- 文斌:附加功能设计
- github 的提交日志截图
程序运行截图
程序运行环境
python 3.6.2
GUI界面
- 基础功能实现
- 实现了抽奖资格的筛选,算法分为以下几次筛选:
- 删除掉不含抽奖关键词的发言记录(包括空记录发言)
- 删除掉包含抽奖关键词的系统发言记录
- 删除不在抽奖时间段内的发言记录
- 统计发言频率,删除发言次数低于一定数量的同学的发言记录
- 随机抽取算法
- 首先随机从1-20之间随机生成两个数a,b
- 定义函数变换:如a*b,a^b,e^ab。这再对这两个数a,b机型随机函数变换。重复n次,最后的值可能大于QQ号数,所以对所取到的值取余。对应文本处理中返回的set的n个下标元素(即qq号)。取过的qq号就从set中删除,避免重复。
- 实现了抽奖资格的筛选,算法分为以下几次筛选:
- 附加功能实现
- 在提交版本中,未完成完整的附加功能;
- 在之后完善的版本中,完成了以下数据分析功能:
- 按时间对聊天记录进行分析,生成群聊活跃度分析图
- 对聊天内容进行分析,随机生成群聊词汇云图
- 结果如图:
- 遇到的困难及解决方法
- 后敬甲
- 困难:在最初开始的时候,编程语言没有统一好,没有很仔细地考虑整合代码的问题,导致最后的算法无法整合,早上的工作很多都打了水漂。
- 解决方法:是自己的问题,需要好好反思,在实践课结束以后,和大家留下来开会,冷静下来,重新定了方案。经过了半个下午+整个晚上的团队编程,有了最后的结果!大家一起努力的感觉很棒,在此感谢各位队友!
- 葛亮
- 困难:原型设计在沟通上出了问题,实际使用的图片和界面的尺寸、图标位置发生了些冲突。
- 解决方案:通过耐心地和队友沟通,修改了原型和图片的尺寸,使图片和界面相契合。
- 黄泽
- 困难:之前没有接触过Python Tkinter,现学现卖存在困难。
- 解决方案:跟着教程走,刚就完事儿了!
- 婧茹
- 困难:之前没有接触过Python算法,对数据分析不熟悉。
- 解决方案:不会就百度,百度不了就请教文斌小哥哥~
- 刘浩
- 困难:对前端的工作不够熟悉,在此次编程之前仅仅停留在初步了解的阶段,做起来不太顺手。
- 解决方案:疯狂baidu+疯狂调试
- 泽明
- 困难:算法需求需要多层次划分,文本中QQ昵称和抽奖时间段限制不好做。
- 解决方案:算法对文本进行类似于流水线处理,QQ昵称难以处理,因为时间限制,只能很遗憾地选择不处理昵称,用QQ号来代替。
- 文斌
- 困难:自动分享的功能,可以做到自动发送文本消息给个人QQ,但无法做到发送生成的图片给QQ群。
- 解决方案:选择放弃了这个功能,选择新的功能:对获奖名单生成数据云图和分析群聊活跃度。
- 后敬甲
团队作业贡献比
成员 | 分工 | 贡献比 |
---|---|---|
敬甲 | 进度协调+需求分析+博客、文案撰写 | 13 |
葛亮 | 界面原型设计 | 12 |
黄泽 | 界面制作 | 14 |
靖茹 | 附加功能实现 | 12 |
泽明 | 随机算法实现+筛选算法实现 | 17 |
文斌 | 附加功能实现 | 15 |
刘浩 | 界面制作+代码分工 | 17 |
- PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 40 | 60 |
?Estimate | ?估计这个任务需要多少时间 | 300 | 900 |
Development | 开发 | 250 | 800 |
?Analysis | ?需求分析 (包括学习新技术) | 150 | 200 |
?Design Spec | ?生成设计文档 | 30 | 20 |
?Design Review | ?设计复审 | 0 | 0 |
?Coding Standard | ?代码规范(为目前的开发制定合适的规范) | 30 | 40 |
?Design | ?具体设计 | 20 | 30 |
?Coding | ?具体编码 | 300 | 700 |
?Code Review | ?代码复审 | 0 | 0 |
?Test | ?测试(自我测试,修改代码,提交修改) | 30 | 60 |
Reporting | 报告 | 0 | 0 |
?Test Repor | ?测试报告 | 0 | 0 |
?Size Measurement | ?计算工作量 | 10 | 20 |
?Postmortem & Process Improvement Plan | ?事后总结, 并提出过程改进计划 | 30 | 45 |
合计 | 1200 |
学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
4 | 240 | 686 | 10 | 60 | LeetCode代码练习,爬虫学习,学习小程序开发文档 |
5 | 320 | 1006 | 40 | 100 | 学习小程序开发文档,LeetCode代码练习 |
8 | 2325 | 3331 | 140 | 240 | 学习小程序开发文档,LeetCode代码练习 |
9 | 131 | 3462 | 40 | 280 | 学习小程序开发文档,LeetCode代码练习 |
10 | 123 | 3585 | 20 | 300 | 学习小程序开发文档 |
11 | 122 | 3707 | 20 | 320 | 学习小程序开发文档,php语法 |