團隊現場程式設計
阿新 • • 發佈:2018-11-18
- 值得一看的補充版本演示視訊
- 程式版本連結及說明
- 按時提交版本
- 以基礎功能為主
- github連結:first version
- 測試環境說明
- 本程式在python 3.6以上環境下執行
- 操作說明:
- 鍵入抽獎關鍵詞,支援:#我要紅包#或“我要換組“或”我支援調課“
- 鍵入抽獎關鍵詞後,必須按回車向後臺提交關鍵詞
- 選擇或鍵入抽獎時段
- 點選”抽獎“按鈕,開始抽獎
- 點選”停止“按鈕,抽獎完成
- 獲得抽獎名單
- 超時完善版本
- 在基礎功能基礎上,完善並整合了附加功能
- github連結:final version
- 測試環境說明
- 本程式在python 3.6以上環境下執行
- 同時需要安裝配置以下內容:
- jieba分詞
- WordCloud詞雲包
- 附上安裝教程部落格連結:
- jieba分詞安裝:
- WordCloud詞雲包安裝:https://www.cnblogs.com/hanyu258/p/7966657.html
- jieba分詞安裝:
- 操作說明:
- 鍵入抽獎關鍵詞,支援:#我要紅包#或“我要換組“或”我支援調課“
- 鍵入抽獎關鍵詞後,必須按回車向後臺提交關鍵詞
- 選擇或鍵入抽獎時段
- 點選”抽獎“按鈕,開始抽獎
- 點選”停止“按鈕,抽獎完成
- 獲得抽獎名單,並輸出資料分析圖
- 按時提交版本
- 組員職責分工
- 後敬甲(組長):文案設計、現場協調、進度跟進
- 葛亮:原型介面設計
- 黃澤: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表格
PSP | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 40 | 60 |
•Estimate | •估計這個任務需要多少時間 | 300 | 900 |
Development | 開發 | 250 | 800 |
•Analysis | •需求分析 (包括學習新技術) | 150 | 200 |
•Design Spec | •生成設計文件 | 30 | 20 |
•Design Review | •設計複審 | 0 | 0 |
•Coding Standard | •程式碼規範(為目前的開發制定合適的規範) | 30 | 40 |
•Design | •具體設計 | 20 | 30 |
•Coding | •具體編碼 | 300 | 700 |
•Code Review | •程式碼複審 | 0 | 0 |
•Test | •測試(自我測試,修改程式碼,提交修改) | 30 | 60 |
Reporting | 報告 | 0 | 0 |
•Test Repor | •測試報告 | 0 | 0 |
•Size Measurement | •計算工作量 | 10 | 20 |
•Postmortem & Process Improvement Plan | •事後總結, 並提出過程改進計劃 | 30 | 45 |
合計 | 1200 |
- 學習進度條
第N周 | 新增程式碼(行) | 累計程式碼(行) | 本週學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
4 | 0 | 340 | 5 | 25 | Leangoo工具學習 |
5 | 300 | 640 | 15 | 40 | 雜湊演算法、優先佇列、結構體等c++內容複習 |
8 | 0 | 640 | 10 | 50 | d程式碼方面暫無 |
10 | 0 | 640 | 5 | 55 | Github程式碼管理學習、leangoo工具完善 |
11 | 100 | 740 | 10 | 65 | 主要是和團隊程式設計,學習了些python基礎 |