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

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

组长博客链接

本次作业链接

队员职责分工

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

github 的提交日志截图

0060lm7Tly1fxc9eo4uctj30rr0ia0uy.jpg

0060lm7Tly1fxc9dw0nd2j30rz0n9whc.jpg

0060lm7Tly1fxc9cye5ekj30rp0l6mzx.jpg

0060lm7Tly1fxc9ak3addj30nv0ojjub.jpg

程序运行截图

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

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

    0060lm7Tly1fxc9t2i08ej30um071jrz.jpg

    0060lm7Tly1fxc9ucw2vfj30it0563yn.jpg

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

  • 抽奖活动创建页面

    0060lm7Tly1fxca0dgpiyj30ho0hr3ys.jpg

  • 弹窗式三页面切换功能

    0060lm7Tly1fxca1w4cemj30ho0c7glm.jpg

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

    0060lm7Tly1fxca41sr9cj30j30eln0i.jpg

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

    0060lm7Tly1fxca514pckj30w80n0wh1.jpg

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

    0060lm7Tly1fxca6lc7hrj30tw0flmyg.jpg

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

    0060lm7Tly1fxcaf5nmzwj30ho0hrmx8.jpg

    程序运行环境

    • Python 3.6
    • 依赖库PyQt5qqbotjiebawordcloud

GUI界面

  • 初始页面

    0060lm7Tly1fxca1w4cemj30ho0c7glm.jpg

  • 创建活动页面

    0060lm7Tly1fxca0dgpiyj30ho0hr3ys.jpg

基础功能实现

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

  • 抽奖算法

    0060lm7Tly1fxc9t2i08ej30um071jrz.jpg

    0060lm7Tly1fxc9ucw2vfj30it0563yn.jpg

附加功能实现

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

    0060lm7Tly1fxca41sr9cj30j30eln0i.jpg

  • QQ聊天记录自动爬取

    0060lm7Tly1fxca514pckj30w80n0wh1.jpg

    鼓励有想法且有用的功能

  • 抽奖信息自动生成图片

    0060lm7Tly1fxci8mvuorj312u0nw48r.jpg

遇到的困难及解决方法

  • 张扬

    • 遇到的困难:团队对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
  • 文婧:如果可以回到过去,那么我一定边看教程边动手
  • 韫月:没有马后炮,一切都是自己太菜了
  • 张扬:如果可以重来,我想重新考虑一下要不要选这门课
  • 全炯:以前我没得选,但现在还是没得选。世上一切都会迟到,只有软工实践如期而来

个人贡献分分配

经过计算后的个人贡献分

0060lm7Tly1fxcllqmi2hj30am0aiq3e.jpg

0060lm7Tly1fxcln7b9tij30iy0cmglz.jpg

0060lm7Tly1fxclnt08i8j30j90crgme.jpg

PSP表格

个人PSP

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

学习进度表

个人学习进度条

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
2 413 413 21 21 学用git;接触vs性能分析、单元测试功能;
3 0 413 16.5 37.5 阅读《构建之法》;结对配合;学习NABCD模型;接触原型开发工具
4、5 1061 1474 23.5 61 结对配合经验up;了解接触爬虫
6-9 500 1974 100 161 团队合作经验up;学习Python;学习PyQt
10 265 2239 25 186 继续学习PyQt,开始动手实践
……

转载于:https://www.cnblogs.com/mysoul-/p/9979566.html

你可能感兴趣的:(c/c++,数据库,ui)