• 团队现场编程实战(抽奖系统)


    福大软工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

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

    学习进度条

    第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
    1 900 900 40 40 复习了C++ Primer Plus,学习单元测试等代码分析方法
    2 0 900 6 46 学习《构建之法》3~8章,学习使用Axure、Min构建原型和导图
    3 1000 1900 30 76 学习C++实现爬虫,复习python实现爬虫
    4 0 1900 40 116 学习itchat等语聊机器人API的使用
    5 0 1900 8 124 研究itchat的源代码,赶第六次作业(这次时间安排不太合理)
    6~9 0 1900 0 124 光顾着做原型设计了
    10 300 2200 20 144 学习了pyqt,研究sqlite
    11 627 2527 10 164 学习pyqt
  • 相关阅读:
    LOJ3160 「NOI2019」斗主地
    常系数齐次线性递推
    最小树形图——朱刘算法学习小记
    Linux系统分区(一)
    Linux系统启动过程(二)
    Linux系统目录结构(三)
    cross_val_score
    sklearn.pipeline.Pileline
    DBSCAN密度聚类算法
    特征选择
  • 原文地址:https://www.cnblogs.com/s0316026/p/9980130.html
Copyright © 2020-2023  润新知