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


    福大软工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 计划 10 10
    · Estimate · 估计这个任务需要多少时间 10 10
    Development 开发 635 1000
    · Analysis · 需求分析 (包括学习新技术) 360 400
    · Design Spec · 生成设计文档 30 45
    · Design Review · 设计复审 5 10
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 5 5
    · Design · 具体设计 0 0
    · Coding · 具体编码 240 540
    · Code Review · 代码复审 0 0
    · Test · 测试(自我测试,修改代码,提交修改) 0 0
    Reporting 报告 30 25
    · Test Repor · 测试报告 0 0
    · Size Measurement · 计算工作量 10 10
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 20 15
    合计 675 1035

    个人学习进度条

    第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
    1 500 500 30 30 学习VS生成命令行程序、单元测试、使用VS性能分析工具等
    2 300 800 35 65 改进第一次作业、学习《构建之法》第3和8章、学习原型设计Axure Rp 8、画画技能++
    3-5 1000 1800 120 185 Python++、交流能力++、时间规划++
    6-9 300 2100 120 305 原型设计++、交流能力++、时间规划++、Python++、画图技能+++
    10 300 2400 25 338 pyqt+++
    11 500 2900 22 360 pyqt+++,ui设计++++++
  • 相关阅读:
    免费云盘,为什么不用?
    把握linux内核设计思想系列
    volley基本使用方法
    金朝阳——软件測试试题11道题目分享
    可编辑ztree节点的增删改功能图标控制---已解决
    POJ 3370 Halloween treats 鸽巢原理 解题
    Axure RP一个专业的高速原型设计工具
    Linux内核剖析 之 进程简单介绍
    [iOS]怎样在iOS开发中切换显示语言实现国际化
    scp and tar
  • 原文地址:https://www.cnblogs.com/Zyym/p/9980109.html
Copyright © 2020-2023  润新知