目錄
一、項目簡介
二、Github鏈接推送
三、客戶需求
四、需求分析
五、項目設計
六、完成效果
七、JUnit單元測試
八、總結
一、項目簡介
項目名稱:復利計算器 |
目前版本:3.0 |
版本類型:web版; |
使用工具:MyEclipse,Tomcat. |
使用JDK版本:1.7 |
使用框架:Struts2,Spring,Bootstrap |
主要功能:計算滿期額、計算本金、計算投資時長等 |
開發人員:梁植淋 |
主要用途:銀行存款計算、股票盈利計算、投資計算等 |
版權所屬:廣州商學院14級商業軟件工程1班 |
二、Github鏈接推送
github上代碼地址:請點擊這里
github上Wiki地址:請點擊這里
三、客戶需求
1.客戶說:幫我開發一個復利計算軟件。 2.如果按照單利計算,本息又是多少呢? 3.假如30年之后要籌措到300萬元的養老金,平均的年回報率是3%,那么,現在必須投入的本金是多少呢? 4.利率這么低,復利計算收益都這么厲害了,如果拿100萬元去買年報酬率10%的股票,若一切順利,過多長時間,100萬元就變成200萬元呢? 5.如果我希望在十年內將100萬元變成200萬元,應該找到報酬率在多少的投資工具來幫助我達成目標?如果想在5年后本金翻倍,報酬率就應至少為多少才行呢? 6.如果每年都將積蓄的3萬元進行投資,每年都能獲得3%的回報,然后將這些本利之和連同年金再投入新一輪的投資,那么,30年后資產總值將變為多少?如果換成每月定投3000呢? |
四、需求分析
根據客戶需求,項目需要有如下六個功能塊:
1.單利計算:用於簡單的存款計算,存款期內本金不變,直到取款時才把利息加上。
2.復利計算:與單利計算不同的是,復利計算每期所得利息將加入本金內進行再次存款,實現了利滾利的計算。
3.本金計算:在復利的前提下,能根據終額、利率和存款期倒推所存本金。
4.投資時長計算:在復利的前提下,根據本金、終額、利率計算所需投資時長。
5.利率計算:在復利的前提下,根據本金、終額、投資時長,計算中間的利率。
6.定投計算:在復利的前提下,每年投入定額資金,實現本金的增長,如此下來,計算出一定年后的終額。
五、項目設計
1.做成web版程序,實現在線使用的效果。
2.利用Spring、struts2框架,提高程序的質量及開發效率。
3.利用Bootstrap框架,把界面往簡潔美觀的方向做。
4.src目錄下的java包分成action、service、service.impl三層,實現代碼的低耦合與易維護。
5.視圖方面可根據不同的計算模塊分層不同的jsp頁面,以避免單個jsp頁面代碼量太大,難以維護。但是,各頁面間必須保持較好的連接性,以免給用戶不好的體現。
6.不同的jsp頁面中相同的一些代碼提取出來作為公有調用,如頁面的大標題、頁腳備注等。
六、完成效果
1.單利計算效果
2.復利計算效果
3.本金計算
4.投資時長計算
5.利率計算
6.定投計算
七、Junit測試
前面說到代碼按功能的分層思想,這樣的好處在測試時就開始體現出來了,因為真正邏輯計算的代碼都在service.impl層,並且與其他層的耦合性不高,所以這里主要對該層的方法進行測試。下面以復利計算模塊為例:
該模塊的測試代碼如下:
1 package com.evan.service.impl; 2 import org.junit.Test; 3 public class FuliTest { 4 5 @Test 6 public void testCalculate() { 7 // System.out.println("測試"); 8 CalculateService cs = new CalculateService(); 9 String test = cs.calculate(10000, 0.03, 10); 10 System.out.println("復利測試結果"+test); 11 } 12 13 }
然后,測試結果如下:
其他模塊的測試也一樣,筆者就不一一在這里列舉了。
八、總結
先是老師布置的三個任務:
1.統計前兩次實驗提交的代碼數據:所用語言與工具,代碼行,工作量(人時)。
所用工具:主要是MyEclipse2014
代碼行:java代碼300行左右,jsp代碼就不算了,沒太大技術含量
工作量:三個版本,總時長約為20小時。
2.估計完成4、5、6所需代碼行與工作量,並做記錄。
原估計100行代碼左右,約用時2小時
3.完成過程中注意記錄自己的實際工作量,完成之后與自己之前所做的估計進行對照。
4、5、6邏輯編程實際用時1小時,比預估用時要少,但整個項目用時並不少,時間主要花在了一些小細節的修改與bug的修復上。
然后是自我總結:
1. 項目不大,但我做的東西也不少了,因為我覺得編程方面就應該在練習時候往復雜的方向做,達到鍛煉目的,當然以后工作了就要反過來往簡單的方向做了,畢竟工作是講究效率,而不是個人的提高。
2.同一個項目,可以用很多的方法去做,不同的方法又會有不同的有點,比如本項目用異步請求的方法來做也是很好的,無論什么方法,用活了就是好方法。
3.自我能力和經驗還是不夠啊,很多時候都會犯一些低級錯誤,卡住很久,以后還得多加練習才行。
4.值得一提的是,我覺得心態很重要,類似這種小項目的作業,我們可以不把它當作業來做,或者說是把自己想象成此項目經理,這個項目做成怎樣完全由你做主,你就會重視一些做作業不會重視的問題,比如說命名規范、又比如說是否穩定、是否易維護(我承認因為時間問題,我在本程序中這些做得還是不太好),只有這樣,才能把項目做成你心中的樣子。說重點,就是一句話:認真對待吧。