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

  • 值得一看的补充版本演示视频
    • 软工锦鲤在这里
  • 程序版本链接及说明
    • 按时提交版本
      • 以基础功能为主
      • github链接:first version
      • 测试环境说明
        • 本程序在python 3.6以上环境下运行
      • 操作说明:
        • 键入抽奖关键词,支持:#我要红包#或“我要换组“或”我支持调课“
        • 键入抽奖关键词后,必须按回车向后台提交关键词
        • 选择或键入抽奖时段
        • 点击”抽奖“按钮,开始抽奖
        • 点击”停止“按钮,抽奖完成
        • 获得抽奖名单
    • 超时完善版本
      • 在基础功能基础上,完善并整合了附加功能
      • github链接:final version
      • 测试环境说明
        • 本程序在python 3.6以上环境下运行
        • 同时需要安装配置以下内容:
          • jieba分词
          • WordCloud词云包
        • 附上安装教程博客链接:
          • jieba分词安装:https://www.cnblogs.com/houjun/p/8513108.html
          • WordCloud词云包安装:https://www.cnblogs.com/hanyu258/p/7966657.html
      • 操作说明:
        • 键入抽奖关键词,支持:#我要红包#或“我要换组“或”我支持调课“
        • 键入抽奖关键词后,必须按回车向后台提交关键词
        • 选择或键入抽奖时段
        • 点击”抽奖“按钮,开始抽奖
        • 点击”停止“按钮,抽奖完成
        • 获得抽奖名单,并输出数据分析图
  • 组员职责分工
    • 后敬甲(组长):文案设计、现场协调、进度跟进
    • 葛亮:原型界面设计
    • 黄泽:GUI界面制作
    • 婧茹:附加功能设计
    • 刘浩:GUI界面制作
    • 泽明:随机算法设计+筛选算法设计
    • 文斌:附加功能设计
  • github 的提交日志截图
    1471830-20181118212151924-504915212.png
  • 程序运行截图
    1471830-20181118230744943-2127307823.png

  • 程序运行环境

    python 3.6.2

  • GUI界面
    1471830-20181118230908202-1981429707.png

  • 基础功能实现
    • 实现了抽奖资格的筛选,算法分为以下几次筛选:
      • 删除掉不含抽奖关键词的发言记录(包括空记录发言)
      • 删除掉包含抽奖关键词的系统发言记录
      • 删除不在抽奖时间段内的发言记录
      • 统计发言频率,删除发言次数低于一定数量的同学的发言记录
    • 随机抽取算法
      • 首先随机从1-20之间随机生成两个数a,b
      • 定义函数变换:如a*b,a^b,e^ab。这再对这两个数a,b机型随机函数变换。重复n次,最后的值可能大于QQ号数,所以对所取到的值取余。对应文本处理中返回的set的n个下标元素(即qq号)。取过的qq号就从set中删除,避免重复。
  • 附加功能实现
    • 在提交版本中,未完成完整的附加功能;
    • 在之后完善的版本中,完成了以下数据分析功能:
      • 按时间对聊天记录进行分析,生成群聊活跃度分析图
      • 对聊天内容进行分析,随机生成群聊词汇云图
      • 结果如图:
        1471830-20181118215028928-611008183.png
  • 遇到的困难及解决方法
    • 后敬甲
      • 困难:在最初开始的时候,编程语言没有统一好,没有很仔细地考虑整合代码的问题,导致最后的算法无法整合,早上的工作很多都打了水漂。
      • 解决方法:是自己的问题,需要好好反思,在实践课结束以后,和大家留下来开会,冷静下来,重新定了方案。经过了半个下午+整个晚上的团队编程,有了最后的结果!大家一起努力的感觉很棒,在此感谢各位队友!
    • 葛亮
      • 困难:原型设计在沟通上出了问题,实际使用的图片和界面的尺寸、图标位置发生了些冲突。
      • 解决方案:通过耐心地和队友沟通,修改了原型和图片的尺寸,使图片和界面相契合。
    • 黄泽
      • 困难:之前没有接触过Python Tkinter,现学现卖存在困难。
      • 解决方案:跟着教程走,刚就完事儿了!
    • 婧茹
      • 困难:之前没有接触过Python算法,对数据分析不熟悉。
      • 解决方案:不会就百度,百度不了就请教文斌小哥哥~
    • 刘浩
      • 困难:对前端的工作不够熟悉,在此次编程之前仅仅停留在初步了解的阶段,做起来不太顺手。
      • 解决方案:疯狂baidu+疯狂调试
    • 泽明
      • 困难:算法需求需要多层次划分,文本中QQ昵称和抽奖时间段限制不好做。
      • 解决方案:算法对文本进行类似于流水线处理,QQ昵称难以处理,因为时间限制,只能很遗憾地选择不处理昵称,用QQ号来代替。
    • 文斌
      • 困难:自动分享的功能,可以做到自动发送文本消息给个人QQ,但无法做到发送生成的图片给QQ群。
      • 解决方案:选择放弃了这个功能,选择新的功能:对获奖名单生成数据云图和分析群聊活跃度。
  • 团队作业贡献比

成员分工贡献比
敬甲进度协调+需求分析+博客、文案撰写13
葛亮界面原型设计12
黄泽界面制作14
靖茹附加功能实现12
泽明随机算法实现+筛选算法实现17
文斌附加功能实现15
刘浩界面制作+代码分工17
  • 以下部分计入个人得分:
    • PSP表格(个人独立发布)(1分)
    • 学习进度表(个人独立发布)(1分)
  • PSP表格
PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3045
?Estimate估计这个任务需要多少时间130120
Development开发200300
?Analysis需求分析 (包括学习新技术)2030
?Design Spec?生成设计文档00
?Design Review?设计复审00
?Coding Standard?代码规范(为目前的开发制定合适的规范)00
?Design具体设计3030
?Coding具体编码00
?Code Review代码复审00
?Test?测试(自我测试,修改代码,提交修改)00
Reporting报告00
?Test Repor?测试报告00
?Size Measurement?计算工作量2030
?Postmortem & Process Improvement Plan?事后总结, 并提出过程改进计划3015
合计500450

学习进度条

第N周新增代码(行)累计代码(行)本周学习耗时(小时)累计学习耗时(小时)重要成长
150050025251熟悉了c++有关vector,map用法 2学习了正则表达式 3学习了状态转换图和有穷自动机
250550833看了有关软件的使用,原型模型以及构建之法
360013504881修炼心性,debug能力有提升,心理素质加强= =
901350586感觉这周过于松弛= =,后面要狠

转载于:https://www.cnblogs.com/yizhigu/p/9980230.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeakCanary——直白的展现Android中的内存泄露

之前碰到的OOM问题,终于很直白的呈现在我的眼前:我尝试了MAT,但是发现不怎么会用。直到今天终于发现了这个新工具: 当我们的App中存在内存泄露时会在通知栏弹出通知: 当点击该通知时,会跳转到具体的页面&am…

老司机做VR视频,需要什么样的全景相机?

做为一个在全景内容领域摸爬滚打一年有余的老司机,经历了太多的坑。最近有不少朋友转行进入这个领域,问我买什么样的相机好。我现在项目太多,根本没空详尽解答。所以写下这篇文章,不懂得自己看吧。 说白了,买什么样子…

域乎曹胜虎:传统互联网“生病”了

11月17日,2018(第12届)创业周暨全球创业周中国站在上海盛大召开,由上海域乎信息技术有限公司(以下简称“域乎”)承办的区块链专场论坛——《区块链产业应用赋能精英论坛》成功举办,吸引了众多业…

xml的方式配置AOP:Aspect Oriented Programming

在某些类中, 什么时机, 做什么事情 切入点(point-cut): 在某些类中(Class<?>[] itfc new Class<?>[] { IStudentService.class }) 通知: 什么时机, 做什么事情(InvocationHandler的invoke方法) 切面: 切入点 通知 织入(weaver): Proxy.newProxyInstance: 把切入…

[No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)...

github地址&#xff1a;https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况&#xff0c;并调用接口&#xff0c;当资源被超额占用时&#xff0c;发送警报到个人手机&#xff1b;界面模拟Console的显示方式&#xff0c;信息缓冲大小由配置决定…

I2C总线之(一)---概述

概述&#xff1a;IC 是Inter-Integrated Circuit的缩写&#xff0c;发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。 IC 只是用两条双向的线&#xff0c;一条 Serial Data Line (SDA) &#xff0c;另一条Serial Clock (SCL)。 SCL&#xf…

js中级(1)

动画(1) Css样式提供了运动 过渡的属性transition 从一种情况到另一种情况叫过渡 Transition:attr time linear delay&#xff1b; Attr 是变化的属性 Time 是花费的时间 Linear 变化的速度 Delay 是延迟 复习background:url() no-repeat 50% 50% red; Background-image Ba…

I2C总线之(二)---时序

一、协议 1.空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时&#xff0c;规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态&#xff0c;即释放总线&#xff0c;由两条信号线各自的上拉电阻把电平拉高。 2.起始位与停止位的定义&#xff1a; 起始信…

微信小程序设置底部导航栏目方法

微信小程序底部想要有一个漂亮的导航栏目&#xff0c;不知道怎么制作&#xff0c;于是百度找到了本篇文章&#xff0c;分享给大家。 好了 小程序的头部标题 设置好了&#xff0c;我们来说说底部导航栏是如何实现的。 我们先来看个效果图 这里&#xff0c;我们添加了三个导航图标…

HTTP协议(3)浏览器的使用之查看源码

在做CTF的Web类题目时&#xff0c;推荐使用Firefox浏览器。下面介绍一些在解题过程中关于浏览器的常用技巧。首先就是查看源码。在做Web题目时&#xff0c;经常需要查看网站源码&#xff0c;有的flag直接就藏在源码中&#xff0c;有些题目则是在源码中给出提示和线索&#xff0…

Autofac IoC容器基本使用步骤【1】

原文&#xff1a;http://www.bkjia.com/Asp_Netjc/888119.html 【原文中有一个地方报错&#xff0c;下面已修改】 一.基本步骤: 1.设计适合控制反转(IoC)的应用程序 2.给应用程序Autofac 引用. 3.注册组件. 4.创建一个Container以备后用. 5.从Container创建一个 lifetime scop…

I2C总线之(三)---以C语言理解IIC

为了加深对I2C总线的理解&#xff0c;用C语言模拟IIC总线&#xff0c;边看源代码边读波形&#xff1a; 如下图所示的写操作的时序图&#xff1a; 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下&#xff1a; #include<reg51.h>…

结对编程总结

这个项目我和我的结对伙伴共花了两个月时间&#xff0c;之所以选这个项目&#xff0c;因为我们之前都学习过Python&#xff0c;也做过类似的程序&#xff0c;相比较其他项目而言&#xff0c;这个项目更合适&#xff0c;也让我们对词频统计方面的知识加深了了解。写这个程序我们…

JavaScript初学者必看“new”

2019独角兽企业重金招聘Python工程师标准>>> 译者按: 本文简单的介绍了new, 更多的是介绍原型(prototype)&#xff0c;值得一读。 原文: JavaScript For Beginners: the ‘new’ operator 译者: Fundebug 为了保证可读性&#xff0c;本文采用意译而非直译。 <di…

libGDX-wiki发布

为方便大家学习和访问&#xff0c;我将libgdx的wiki爬取到doku-wiki下&#xff0c;专门建立了以下地址。欢迎大家来共同完善。 http://wiki.v5ent.com 转载于:https://www.cnblogs.com/mignet/p/ligbdx_wiki.html

I2C读写时序

1. I2C写时序图&#xff1a; 注意&#xff1a;最后一个byte后&#xff0c;结束标志在第十个CLK上升沿之后&#xff1a; 2. I2C读时序图&#xff1a; 注意&#xff1a;restart信号格式&#xff1b;读操作结束前最后一组clk的最后一个上升沿&#xff0c;主机应发送NACK&#xff0…

网站性能优化

基本概念 1、网站吞吐量&#xff1a;TPS/每秒的事务数&#xff0c;QPS/每秒的查询数&#xff0c;HPS/每秒的HTTP请求数 2、服务器性能指标&#xff1a;系统负载&#xff0c;内存使用&#xff0c;CPU使用&#xff0c;磁盘使用以及网络I/O等 前端优化方法 1、减少HTTP请求&#x…

JAVA-容器(2)-Collection

&#xff08;基于JDK1.8源码分析&#xff09; 一&#xff0c;Collection 所有实现Collection接口的类原则上应该提供两种构造函数&#xff1a; 【1】无参构造-创建一个空的容器 【2】有参构造-创建一个新的Collection&#xff0c;这个新的Collection和传入的Collection具有相同…

软件测试工具LoadRunner中如何定义SLA?--转载

软件测试工具LoadRunner中如何定义SLA&#xff1f; 浏览&#xff1a;2242|更新&#xff1a;2017-04-09 22:50SLA 是您为负载测试场景定义的具体目标。Analysis 将这些目标与软件测试工具LoadRunner在运行过程中收集和存储的性能相关数据进行比较&#xff0c;然后确定目标的 SLA…