- 值得一看的補充版本示範視訊
- 軟工錦鯉在這裡
- 程式版本連結及說明
- 按時送出版本
- 以基礎功能為主
- github連結:first version
- 測試環境說明
- 本程式在python 3.6以上環境下運作
- 操作說明:
- 鍵入抽獎關鍵詞,支援:#我要紅包#或“我要換組“或”我支援調課“
- 鍵入抽獎關鍵詞後,必須按回車向背景送出關鍵詞
- 選擇或鍵入抽獎時段
- 點選”抽獎“按鈕,開始抽獎
- 點選”停止“按鈕,抽獎完成
- 獲得抽獎名單
- 逾時完善版本
- 在基礎功能基礎上,完善并整合了附加功能
- github連結:final version
-
- 同時需要安裝配置以下内容:
- 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,ab,eab。這再對這兩個數a,b機型随機函數變換。重複n次,最後的值可能大于QQ号數,是以對所取到的值取餘。對應文本進行中傳回的set的n個下标元素(即qq号)。取過的qq号就從set中删除,避免重複。
- 實作了抽獎資格的篩選,算法分為以下幾次篩選:
- 附加功能實作
- 在送出版本中,未完成完整的附加功能;
- 在之後完善的版本中,完成了以下資料分析功能:
- 按時間對聊天記錄進行分析,生成群聊活躍度分析圖
- 對聊天内容進行分析,随機生成群聊詞彙雲圖
- 結果如圖:
- 遇到的困難及解決方法
- 後敬甲
- 困難:在最初開始的時候,程式設計語言沒有統一好,沒有很仔細地考慮整合代碼的問題,導緻最後的算法無法整合,早上的工作很多都打了水漂。
- 解決方法:是自己的問題,需要好好反思,在實踐課結束以後,和大家留下來開會,冷靜下來,重新定了方案。經過了半個下午+整個晚上的團隊程式設計,有了最後的結果!大家一起努力的感覺很棒,在此感謝各位隊友!
- 葛亮
- 困難:原型設計在溝通上出了問題,實際使用的圖檔和界面的尺寸、圖示位置發生了些沖突。
- 解決方案:通過耐心地和隊友溝通,修改了原型和圖檔的尺寸,使圖檔和界面相契合。
- 黃澤
- 困難:之前沒有接觸過Python Tkinter,現學現賣存在困難。
- 解決方案:跟着教程走,剛就完事兒了!
- 婧茹
- 困難:之前沒有接觸過Python算法,對資料分析不熟悉。
- 解決方案:不會就百度,百度不了就請教文斌小哥哥~
- 劉浩
- 困難:對前端的工作不夠熟悉,在此次程式設計之前僅僅停留在初步了解的階段,做起來不太順手。
- 解決方案:瘋狂baidu+瘋狂調試
- 澤明
- 困難:算法需求需要多層次劃分,文本中QQ昵稱和抽獎時間段限制不好做。
- 解決方案:算法對文本進行類似于流水線處理,QQ昵稱難以處理,因為時間限制,隻能很遺憾地選擇不處理昵稱,用QQ号來代替。
- 文斌
- 困難:自動分享的功能,可以做到自動發送文本消息給個人QQ,但無法做到發送生成的圖檔給QQ群。
- 解決方案:選擇放棄了這個功能,選擇新的功能:對獲獎名單生成資料雲圖和分析群聊活躍度。
- 後敬甲
- 團隊作業貢獻比
成員 | 分工 | 貢獻比 |
---|---|---|
敬甲 | 進度協調+需求分析+部落格、文案撰寫 | 13 |
界面原型設計 | 12 | |
界面制作 | 14 | |
靖茹 | ||
随機算法實作+篩選算法實作 | 17 | |
15 | ||
界面制作+代碼分工 |
- 以下部分計入個人得分:
- PSP表格(個人獨立釋出)(1分)
- PSP表格
PSP | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 45 |
?Estimate | 估計這個任務需要多少時間 | ||
Development | 開發 | 100 | 120 |
?Analysis | 需求分析 (包括學習新技術) | 20 | |
?Design Spec | ?生成設計文檔 | ||
?Design Review | ?設計複審 | ||
?Coding Standard | ?代碼規範(為目前的開發制定合适的規範) | ||
?Design | 具體設計 | ||
?Coding | 具體編碼 | 200 | 300 |
?Code Review | 代碼複審 | ||
?Test | ?測試(自我測試,修改代碼,送出修改) | ||
Reporting | 報告 | ||
?Test Repor | ?測試報告 | 10 | |
?Size Measurement | ?計算工作量 | ||
?Postmortem & Process Improvement Plan | ?事後總結, 并提出過程改進計劃 | ||
合計 | 490 | 550 |
- 學習進度表(個人獨立釋出)(1分)
第N周 | 新增代碼(行) | 累計代碼(行) | 本周學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
11 | 80 | 1240 | 588 | 學會了Tkinter |