- 值得一看的補充版本演示視頻
- 軟工錦鯉在這里
- 程序版本鏈接及說明
- 按時提交版本
- 以基礎功能為主
- 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 的提交日志截圖
程序運行截圖
程序運行環境
python 3.6.2
GUI界面
- 基礎功能實現
- 實現了抽獎資格的篩選,算法分為以下幾次篩選:
- 刪除掉不含抽獎關鍵詞的發言記錄(包括空記錄發言)
- 刪除掉包含抽獎關鍵詞的系統發言記錄
- 刪除不在抽獎時間段內的發言記錄
- 統計發言頻率,刪除發言次數低于一定數量的同學的發言記錄
- 隨機抽取算法
- 首先隨機從1-20之間隨機生成兩個數a,b
- 定義函數變換:如a*b,a^b,e^ab。這再對這兩個數a,b機型隨機函數變換。重復n次,最后的值可能大于QQ號數,所以對所取到的值取余。對應文本處理中返回的set的n個下標元素(即qq號)。取過的qq號就從set中刪除,避免重復。
- 實現了抽獎資格的篩選,算法分為以下幾次篩選:
- 附加功能實現
- 在提交版本中,未完成完整的附加功能;
- 在之后完善的版本中,完成了以下數據分析功能:
- 按時間對聊天記錄進行分析,生成群聊活躍度分析圖
- 對聊天內容進行分析,隨機生成群聊詞匯云圖
- 結果如圖:
- 遇到的困難及解決方法
- 后敬甲
- 困難:在最初開始的時候,編程語言沒有統一好,沒有很仔細地考慮整合代碼的問題,導致最后的算法無法整合,早上的工作很多都打了水漂。
- 解決方法:是自己的問題,需要好好反思,在實踐課結束以后,和大家留下來開會,冷靜下來,重新定了方案。經過了半個下午+整個晚上的團隊編程,有了最后的結果!大家一起努力的感覺很棒,在此感謝各位隊友!
- 葛亮
- 困難:原型設計在溝通上出了問題,實際使用的圖片和界面的尺寸、圖標位置發生了些沖突。
- 解決方案:通過耐心地和隊友溝通,修改了原型和圖片的尺寸,使圖片和界面相契合。
- 黃澤
- 困難:之前沒有接觸過Python Tkinter,現學現賣存在困難。
- 解決方案:跟著教程走,剛就完事兒了!
- 婧茹
- 困難:之前沒有接觸過Python算法,對數據分析不熟悉。
- 解決方案:不會就百度,百度不了就請教文斌小哥哥~
- 劉浩
- 困難:對前端的工作不夠熟悉,在此次編程之前僅僅停留在初步了解的階段,做起來不太順手。
- 解決方案:瘋狂baidu+瘋狂調試
- 澤明
- 困難:算法需求需要多層次劃分,文本中QQ昵稱和抽獎時間段限制不好做。
- 解決方案:算法對文本進行類似于流水線處理,QQ昵稱難以處理,因為時間限制,只能很遺憾地選擇不處理昵稱,用QQ號來代替。
- 文斌
- 困難:自動分享的功能,可以做到自動發送文本消息給個人QQ,但無法做到發送生成的圖片給QQ群。
- 解決方案:選擇放棄了這個功能,選擇新的功能:對獲獎名單生成數據云圖和分析群聊活躍度。
- 后敬甲
團隊作業貢獻比
成員 | 分工 | 貢獻比 |
---|---|---|
敬甲 | 進度協調+需求分析+博客、文案撰寫 | 13 |
葛亮 | 界面原型設計 | 12 |
黃澤 | 界面制作 | 14 |
靖茹 | 附加功能實現 | 12 |
澤明 | 隨機算法實現+篩選算法實現 | 17 |
文斌 | 附加功能實現 | 15 |
劉浩 | 界面制作+代碼分工 | 17 |
- 以下部分計入個人得分:
- PSP表格(個人獨立發布)(1分)
- 學習進度表(個人獨立發布)(1分)
- PSP表格
PSP | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 45 |
?Estimate | 估計這個任務需要多少時間 | 130 | 120 |
Development | 開發 | 200 | 300 |
?Analysis | 需求分析 (包括學習新技術) | 20 | 30 |
?Design Spec | ?生成設計文檔 | 0 | 0 |
?Design Review | ?設計復審 | 0 | 0 |
?Coding Standard | ?代碼規范(為目前的開發制定合適的規范) | 0 | 0 |
?Design | 具體設計 | 30 | 30 |
?Coding | 具體編碼 | 0 | 0 |
?Code Review | 代碼復審 | 0 | 0 |
?Test | ?測試(自我測試,修改代碼,提交修改) | 0 | 0 |
Reporting | 報告 | 0 | 0 |
?Test Repor | ?測試報告 | 0 | 0 |
?Size Measurement | ?計算工作量 | 20 | 30 |
?Postmortem & Process Improvement Plan | ?事后總結, 并提出過程改進計劃 | 30 | 15 |
合計 | 500 | 450 |
學習進度條
第N周 | 新增代碼(行) | 累計代碼(行) | 本周學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
1 | 500 | 500 | 25 | 25 | 1熟悉了c++有關vector,map用法 2學習了正則表達式 3學習了狀態轉換圖和有窮自動機 |
2 | 50 | 550 | 8 | 33 | 看了有關軟件的使用,原型模型以及構建之法 |
3 | 600 | 1350 | 48 | 81 | 修煉心性,debug能力有提升,心理素質加強= = |
9 | 0 | 1350 | 5 | 86 | 感覺這周過于松弛= =,后面要狠 |