1.在我的項目的基礎上,實現帶UI的小初高數學學習軟件。算法
1.和隊友花了些時間談論大致框架(草稿,有點醜)和大概功能。編程
2.咱們封裝了一些經常使用的Swing組件,須要調用時傳入參數,調用便可,很方便。框架
例如按鈕類:eclipse
3.把界面大概的搭起來,前先後後大概20個界面。函數
4.內部代碼的實現,把一些界面的操做,其中生成問題用的是原我的項目的問題生成。學習
5.把代碼和界面連接起來(其實作好一個內部代碼,就搭一個)。測試
6.測試,咱們都測試了好屢次,檢驗無錯誤後就算結束該項目的編程部分。 spa
功能,界面太多,就不放圖了,小功能,好比密碼錯誤時輸入框下方的紅色提示功能,輸入提示功能,彈出提示對話框等等也不寫了。3d
1)選擇啥都會進入登錄界面,可是不一樣的選擇,登錄後打開的界面不一樣,一個打開作題界面,一個打開錯題本界面。調試
2)爲了用戶體驗好,只要登錄了,能夠從任一個界面去另外一個界面。換句話說兩個界面能夠打開對方。能夠從作題界面到我的信息到錯題本,錯題本能夠直接到作題界面。
1)登錄 輸入帳號密碼,先檢查帳號是否已註冊,若是帳號已註冊,匹配密碼又正確的話就登錄成功。
2)註冊 輸入手機號,檢查格式,正確就發送驗證碼,而後輸入的驗證碼正確就進入註冊界面,默認暱稱(不輸入)是手機號,輸入密碼,密碼有格式檢查,還檢查兩個同樣不,完成後註冊成功跳到登陸界面。
3)忘記密碼 輸入手機號,檢查格式,檢查是否已註冊,未註冊就不給改密碼,註冊的發驗證碼,輸入驗證碼正確就顯示密碼更改界面,檢查密碼是否一致,是否格式正確,正確後回到登陸界面。
1)註銷 退出登陸,回到主界面。
2)作題 根據喜愛(我的信息能夠設置,未設置默認空),默認一個等級(可經過下拉菜單改變),而後輸入題目數量(10~30道),輸入測試時間(1~40分鐘),輸入均合法後,點擊測試,就開始作題,作題時可切換上一題下一題(符合邏輯的,如第一題時上一題按鈕不可按),而後經過本身點擊交卷或者時間到了自動交卷,而後獲得分數。
3)更新最大分 每一個用戶設置了3個最大分,對應小學,初中,高中。每次獲得分數,若是更高就更新。剛註冊的用戶是全0.0(double);
4)我的界面 5個小功能 分別是①修改暱稱(取個個性的,炫酷的名字吧)此界面也能夠看到一些基本信息如電話號碼,暱稱,3個等級最高分;②修改作題偏好;③修改密碼(須要先輸入密碼);④查看錯題本(就是這我的的錯題本界面);⑤刪除帳號,這個功能會刪除我的的一切信息,從註冊表(用戶信息)刪除,刪除我的最大得分記錄,刪除本身的錯題本,刪除本身的生成試卷。
5)刷新 這個按鈕是用來更新你的操做,如修改暱稱(界面是靜態的你修改以前打開,此時顯示的暱稱是以前的,刷新後是修改後的,或者從新打開作題界面也是更新的) 。
1)功能就是能夠打開當前用戶的錯題本(分爲3個,分別記錄小學,初中,高中)(附帶答案)。
畫了幾個 簡 易 的 流程圖(主要項目太大,一些功能和細節其實已經省略了)。
主界面
作題界面
錯題界面
1.格式問題,Java是UTF-8,傳輸是UTF-8,txt是ANSI(自動生成)。同時爲了用戶感官好一點,咱們堅持使用「²」代替「^2」,有中文字符,而後就會亂碼(「²」變成「?」)。解決的方法是把
file.createNewFile()這個不帶參數的默認生成函數,換成帶參數的流函數。這樣在IDEA和eclipse環境都不會亂碼,可是爲了方便驗收,弄了一個jar,這個jar仍是會亂碼 (全部的「²」變成「?」)。另外,有一個神奇的現象,讀取的(前期爲了驗證功能手敲的txt)txt,老是會把第一行多讀一個長度(兩個值爲負的字節),問題是輸入仍是同樣的,你能想象我String str="張三1";讀取的也輸入,是user[0]="張三1",而後user[0].equal(str)=false時我一臉懵逼嗎,各類調試,輸出都沒解決,最後一個字符一個字符比較,才發現這個問題,手動輸入的第一行會出現多一個長度的問題(能夠經過保持第一行是回車,或者每次第一行只取子串來解決),不過最後這個對咱們項目沒影響,由於 咱們不要手動輸入txt啊。
2.一開始討論計算答案方式,說要麼用逆波蘭(預估80行,O(n))要麼用字符串處理直接算(預估100行代碼,O(n),可是常係數更大(後面發現不止,哈哈哈哈))。(算法大概是深搜到第一個匹配的左右括號,處理它,而後找下一個匹配括號,至關於我處理的都是沒括號的字符串,注意特殊處理sin,根號什麼的就行)最後大概和別人討論了一下,別的人大多 是使用自帶函數或者逆波蘭,一合計自帶函數鍛鍊效果很差(當時說實在寫不出就用,哈哈哈哈),逆波蘭你們都在用(主要以爲都同樣沒亮點),咱們就用深搜搜索+字符處理。而後噩夢就開始了,各類想獲得的想不到的bug就出來了,從預估的100行(一開始就差很少100行),而後寫到了快500行。各類bug就不一一說了,辛酸淚。而後總結了一下這個問題,處理的麻煩是由於我處理的是純字符串(中間過程的數字也會再次插入字符串來計算),而逆波蘭出來的數字就一直是數字,再也不插入字符串。雖然大概知道了這個算法相比於逆波蘭的缺陷,但苦於一直沒找到合適的方法(除了波蘭和逆波蘭),因此也沒什麼好的改進辦法。
先分析,討論出框架很重要,咱們討論的框架90%以上都實現並使用了的,最後其餘加功能補充這個框架就行。還得多溝通,和隊友溝通的多,效率高一些。雖然計算的時候出了不少bug讓我愁白了頭,但改了不少bug,讓我真的學到了一些東西。有收穫就好。
我如今這麼努力奮鬥,就是爲了之後我愛的可以幸福。