huabei_li

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

福大软工1816 · 团队现场编程实战(抽奖系统)

组长博客链接

本次作业链接

队员职责分工

团队成员 分工
张扬 预处理算法、抽奖算法、解决其他问题、本次博客撰写
韫月 "创建抽奖活动"页面的开发、“已发布”“已结束”等页面的动态生成
愈明 "创建抽奖活动"页面的开发、弹窗交互
文婧 "已发布"、"已结束"页面的开发
地秀 "已发布"、"已结束"页面的开发
全炯 各个页面的整合、页面切换、使用QSS进行美化
俊彦 辅助预处理算法的开发、辅助抽奖算法的设计
李翔 数据库搭建、数据库接口设计、Github合并的管理
加伟 数据库搭建、数据库接口设计
泽波 随机算法设计

github 的提交日志截图

程序运行截图

由于我们对pyqt的不熟悉,最终未能开发出可用的GUI(没整合到一起)。但有较为简陋的版本作为备选方案。我们开发出了以下功能:

  • 带有权重计算的自适应抽奖算法

  • 对聊天记录的处理算法(预处理算法)

  • 抽奖活动创建页面

  • 弹窗式三页面切换功能

  • 基于中文分词技术的聊天内容分析并生成词云

  • 基于对Smart QQ抓包的实时聊天记录保存模块

  • 用于支持抽奖系统的数据库模块

  • 简单的已发布、已结束界面

    程序运行环境

    • Python 3.6
    • 依赖库PyQt5qqbotjiebawordcloud

GUI界面

  • 初始页面

  • 创建活动页面

基础功能实现

仅实现后台算法,未实现GUI部分

  • 抽奖算法

附加功能实现

  • 聊天记录分析并生成词云(对某OpenCV图像处理群聊天记录的分析结果)

  • QQ聊天记录自动爬取

    鼓励有想法且有用的功能

  • 抽奖信息自动生成图片

遇到的困难及解决方法

  • 张扬

    • 遇到的困难:团队对PyQt的不熟悉
    • 解决方法:问题一时间得不到解决,只能说大家的学习程度还不够,后面要接着学。同时自己也会转到界面开发上面。
  • 文婧

    • 遇到的困难:遇到的最大的困难是对PyQt的不熟悉,没法用它写出自己想要的界面。
    • 解决方法:上网搜教程,问队友,但是最终还是没办法解决这个困难,没能实现自己负责的界面,非常对不起团队。
  • 韫月

    • 遇到的困难:
      1.从前端到后端的继承不熟悉
      2.组件的动态生成不熟悉
      3.总之pyqt不熟悉
      4.pycharm的.ui转.py的功能突然ERROR
    • 解决方法:
      还能怎么办,找度娘啊啊啊啊!
      疯狂找案例,疯狂搬砖,疯狂Ctrl+R试运行,疯狂传ui文件给队友再接收py文件
  • 愈明

    • 困难1:最初设计GUI界面时,对产品功能分析不够明确,导致初版界面逻辑混乱。
      解决方法:通过和队友讨论,更加明确产品功能,重新规划界面,解决了问题。
    • 困难2:对pyqt具体编程不够熟悉,导致ui界面设计进展缓慢。
      解决方法:现场学习教程,请教队友,努力加快进度。
  • 地秀

    • 用pyqt设计界面,但是pyqt不是非常熟练

    解决方法:这是非常难受的一件事情,只好一边百度一边做设计

    • UI设计的时候,.ui文件转成.py文件,要在pycharm安装插件,但是一直安装不成功

    解决方法:按照百度的方法,一步一步操作,但是不对,只好一遍一遍重复操作,最后发现是自己粗心,英文字母打错了,以后可以直接复制就直接复制吧┭┮﹏┭┮

  • 泽波

    • 遇到困难:python使用不熟悉,配置有问题
  • 全炯

    • 困难
      PyQt掌握的情况并不够好,会和能在短时间内做出来是两个概念。
      讨论和设计必不可少,但要建立在较好掌握的情况下,否则合并的时候会很痛苦
    • 解决
      知耻而后勇,奋力掌握并精通
      更加注重细节
      要学会找轮子
  • 俊彦

    • 困难:
      PyQt掌握不好
    • 解决:
      转向协助后端代码的开发
  • 李翔

    • 遇到的困难:数据库接口需要有返回值时的语句出现问题,SQL语句的传参问题
  • 加伟

    • 困难:
      • 做数据库接口的函数时,若需要返回数据库中的值,会造成返回值与关闭数据库连接的冲突。
      • 在接口中直接传参数会出现问题。
      • 做数据库的时候不清楚前端的需要,导致对接的时候需要做较大更改。
    • 解决:
      • 返回值是sqlite3类,他在关闭数据库连接后就不存在了。因此要把它存成其他形式保存。
      • 需要用到占位符‘ ?’传入的参数记得后面加+
      • 多次讨论后得到解决

马后炮

  • 俊彦:如果往前推几天,那么我会多放一些时间来进行PyQt的学习
  • 李翔:如果没有这次现场编程开发,那么我就任然菜的安详
  • 愈明:如果再给我一次机会,我一定不会选择进实验班orz
  • 文婧:如果可以回到过去,那么我一定边看教程边动手
  • 韫月:没有马后炮,一切都是自己太菜了
  • 张扬:如果可以重来,我想重新考虑一下要不要选这门课
  • 全炯:以前我没得选,但现在还是没得选。世上一切都会迟到,只有软工实践如期而来

个人贡献分分配

经过计算后的个人贡献分

PSP表格

个人PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 180 250
· Estimate · 估计这个任务需要多少时间 180 250
Development 开发 185 200
· Analysis · 需求分析 (包括学习新技术) 20 30
· Design Spec · 生成设计文档 10 10
· Design Review · 设计复审 5 10
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0 0
· Design · 具体设计 20 10
· Coding · 具体编码 50 90
· Code Review · 代码复审 10 20
· Test · 测试(自我测试,修改代码,提交修改) 20 30
Reporting 报告 20 25
· Test Repor · 测试报告 10 10
· Size Measurement · 计算工作量 5 5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 5 10
合计 205 225

学习进度表

个人学习进度条

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
1 200 200 5 5 巩固C++,了解单元测试和异常分析
2 100 300 5 10 学习主函数参数,文件流读取
3 0 300 3 13 学习《构建之法》和原型设计,process on制图
4 0 300 3 16 深入学习命令行测试,学习数据结构
5 350 650 10 26 改bug技能up,深入了解C++和调试技术
6 0 650 5 31 对需求分析进一步实践
7 0 650 5 36 UML图的学习和操作
8 0 650 5 41 接口文档设计和数据字典设计
9 0 650 5 46 学习pyqt和wxpy
10 50 700 6 52 复习数据库,初步使用itchat和wxpy
11 100 800 6 58 sqlite数据库实践操作,学习相关的数据库python操作,python语法学习
posted on 2018-11-18 21:00  huabei_li  阅读(193)  评论(0编辑  收藏  举报