1. 程式人生 > >團隊現場程式設計

團隊現場程式設計

  • 值得一看的補充版本演示視訊
  • 程式版本連結及說明
    • 按時提交版本
      • 以基礎功能為主
      • github連結:first version
      • 測試環境說明
        • 本程式在python 3.6以上環境下執行
      • 操作說明:
        • 鍵入抽獎關鍵詞,支援:#我要紅包#或“我要換組“或”我支援調課“
        • 鍵入抽獎關鍵詞後,必須按回車向後臺提交關鍵詞
        • 選擇或鍵入抽獎時段
        • 點選”抽獎“按鈕,開始抽獎
        • 點選”停止“按鈕,抽獎完成
        • 獲得抽獎名單
    • 超時完善版本
      • 在基礎功能基礎上,完善並整合了附加功能
      • github連結:final version
      • 測試環境說明
      • 操作說明:
        • 鍵入抽獎關鍵詞,支援:#我要紅包#或“我要換組“或”我支援調課“
        • 鍵入抽獎關鍵詞後,必須按回車向後臺提交關鍵詞
        • 選擇或鍵入抽獎時段
        • 點選”抽獎“按鈕,開始抽獎
        • 點選”停止“按鈕,抽獎完成
        • 獲得抽獎名單,並輸出資料分析圖
  • 組員職責分工
    • 後敬甲(組長):文案設計、現場協調、進度跟進
    • 葛亮:原型介面設計
    • 黃澤: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基礎