柯奇豪 : 文本導入、切割文本、數據庫處理、活躍度統計
黃毓明 : 切割文本、文本匹配
楊禮亮、丁水源:實現三種不一樣程度的篩選投票算法
蔣熊、黃志銘:前端界面編寫
林翔宇:接口定義、先後端交互html
程序運行環境:eclipse+mysql前端
主界面截圖,有設置抽獎和查看抽獎結果兩個選項
java
設置抽獎彈窗
mysql
抽獎有三個選項:普通抽獎,過濾抽獎和深度抽獎。 下面是深度抽獎的運行結果。
git
public static void setFileContext(String path) throws Exception { FileReader fileReader =new FileReader(path); @SuppressWarnings("resource") BufferedReader bufferedReader =new BufferedReader(fileReader); list =new ArrayList<String>(); String str=null; String term=""; Pattern pattern = Pattern.compile("[0-9]{4}[-][0-9]{1,2}[-][0-9]{1,2}[ ][0-9]{1,2}[:][0-9]{1,2}[:][0-9]{1,2}"); while((str=bufferedReader.readLine())!=null) { if(str.trim().length()>=0) { term+=str+" "; Matcher matcher = pattern.matcher(str); if(!matcher.find()) { list.add(term + "\n"); term=""; } } for(String item:Inputtext.list.toArray(new String[Inputtext.list.size()])) { Mysql.matchSort(item); } } // System.out.println(list); }
private Set<String> namelist=new TreeSet<>(); private int repeat=1; private String list[]; public void getlist() {} public void put_Qname() { while(repeat!=0) { repeat--; int l=0; Iterator<String> iter = namelist.iterator(); while (iter.hasNext()) { list[l]= iter.next(); l++; } Random rand = new Random(); int cur=(int)(Math.random()*500); cur=cur%l; String QName=list[cur]; System.out.print(QName); namelist.remove(QName); } }
過濾抽獎github
public void put_Qname() { while(repeat!=0) { repeat--; int l=0; int f=0; Iterator<String> iter = namelist.iterator(); while (iter.hasNext()) { String s=iter.next(); for(int i=0;i<frequent[f];i++) { list[l]= s; l++; } f++; } Random rand = new Random(); int cur=(int)(Math.random()*500); cur=cur%l; String QName=list[cur]; System.out.print(QName); namelist.remove(QName); } }
深度抽獎算法
public void put_Qname() { while(repeat!=0) { repeat--; int l=0; int f=0; Iterator<String> iter = namelist.iterator(); while (iter.hasNext()) { String s=iter.next(); for(int i=0;i<frequent[f];i++) { list[l]= s; l++; } f++; } Random rand = new Random(); int cur=(int)(Math.random()*500); cur=cur%l; for(int i=0;i<l;i++) { if(i==0 && list[i]==list[i+1]) { list[i]=list[cur]; } else if(list[i]==list[i+1] && list[i]!=list[i-1]) { list[i]=list[cur]; } } rand = new Random(); cur=(int)(Math.random()*500); cur=cur%l; String QName=list[cur]; System.out.print(QName); namelist.remove(QName); } }
組員1 黃毓明
困難:
1.先後端數據交互,如何將前端須要計算的數據送到後端,如何將後端計算好的數據送到前端
2.一些寫代碼時的異常狀況處理
解決辦法:
1.先後端數據交互正在學習
2.異常狀況的話主要仍是靠平時的積累,仍是要多敲代碼啊!sql
組員2 楊禮亮
困難:
1.對Java語言不熟,和c語言上的語法雖然類似,可是在一天內寫出程序不太現實。
2不知道怎麼從數據庫中返回數據到代碼,因此一直沒法獲得能參與抽獎人的名單以及相關出現次數。
3沒有與負責上一層編碼的同窗對接好,對於隊友設計的相關的結構體內部變量不清晰。
4在討論中花費了不少時間,一開始對代碼無從下手,浪費大量時間
解決辦法:
1對Java不熟只能上網搜相關的函數使用
2數據返回目前還沒弄好,由於徹底不懂怎麼調用
3將獲得數據的代碼先設成一個函數,先編寫抽獎算法數據庫
組員4 丁水源
困難:
1.java不熟悉,所以遇到了一些語法上的困難。
2.一開始組長分配給個人任務不熟悉,溝通上出現了必定的誤差。
3.對項目的框架理解不透徹,發生框架理解上的誤差。
4.因爲是第一次團體的現場編程,可能在全局和局部以及時間等的把握上出現了些許的mistakes。
解決辦法:
1.經過以前學習的知識,再結合上互聯網,以及小夥伴的幫助,仍是比較順利地熟悉了java語言。
2.經過和組長的屢次交流以及和其餘組員的交流,比較順利地明白了本身的任務。
3.經過互聯網以及和組員們交流,可以收穫一些對此項目框架的感悟和理解。
4.吸收此次的教訓,但願在接下來的實踐裏,乃至從此的工做、生活裏可以更進一步,減小發生此次的錯誤,力爭避免。加油鴨~~編程
組員5 柯奇豪
困難:
雖然有一個明確的思路,可是沒考慮到每一個人的我的狀況,致使項目後期沒辦法進展,本身的能力不夠
解決辦法:
本次的做業沒可以作好,可是接下來但願在有限的時間裏儘量的去學習,帶領團隊有所成果
組員6 蔣雄
困難:
作前端過程當中首先遇到的是頁面圖片格式不對,疊加圖片過程當中出現錯誤,
解決辦法:
經過查了一些開源代碼解決了。後來主要的是先後端交互問題,如今還在學習
組員7 黃志銘
困難:
1.用html寫網頁界面,在寫到跳轉窗口的時候,因爲不太熟悉Notepad,因此耗費比較多的時間找跳轉小窗口
2.最後的前端與後端的交互最終未能實現,沒有提早考慮到這個數據處理問題
3.用Notepad與後端調用存在問題,下次使用得考慮其餘編譯器,VS之類的。
解決:
1.前端與後端的交互看了不少篇博客,如今能夠大體理解操做
2.前端的編譯器沒有選好,得改用VS或者微信小程序的編譯器
若是一開始儘快肯定大體分工,不糾結於細節問題,那麼應該會作比如今好一些吧。
如下部分計入我的得分:
PSP | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 5 | 5 |
· Estimate | · 估計這個任務須要多少時間 | 5 | 5 |
Development | 開發 | 180 | 265 |
· Analysis | · 需求分析 (包括學習新技術) | 40 | 60 |
· Design Spec | · 生成設計文檔 | 0 | 0 |
· Design Review | · 設計複審 | 10 | 10 |
· Coding Standard | · 代碼規範 (爲目前的開發制定合適的規範) | 0 | 0 |
· Design | · 具體設計 | 10 | 15 |
· Coding | · 具體編碼 | 120 | 180 |
· Code Review | · 代碼複審 | 0 | 0 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 0 | 0 |
Reporting | 報告 | 80 | 100 |
· Test Repor | · 測試報告 | 60 | 60 |
· Size Measurement | · 計算工做量 | 5 | 5 |
· Postmortem & Process Improvement Plan | · 過後總結, 並提出過程改進計劃 | 15 | 35 |
合計 | 285 | 370 |
第N周 | 新增代碼(行) | 累計代碼(行) | 本週學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
11 | N | N | 8 | 81 | 開始編程,進一步學習Java |