1. 程式人生 > >最課程階段大作業02:實現自己的利息計算器

最課程階段大作業02:實現自己的利息計算器

       上文描述了版本控制後,此篇才真正到了作業本身。我們第一次大作業要完成的是一個利息計算器。

       利息計算器或者說融資計算器有自己的圖形化版本,每一個學習的同學如果想要直觀的瞭解下功能,可以管自己的老師要或者加文末的QQ群向老師索取。不過我們今天要實現的是非圖形化的介面,是CS版本的,簡而言之就是你要利用自己在SE階段學到的知識,實現一個在console下的利息計算器。當然,按照我們最課程的造性,肯定還要帶點超綱題。

       在強調要做作業之前,我們先來看一下作業是怎麼被描述來送到你手裡的。

一:需求的地位

       作業是什麼?你是一個程式設計師,你的作業就是完成一個軟體的功能。功能是什麼?功能就是需求。在整個軟體開發體系(在我們這裡,被描述為

SPP:精簡併行過程)中,它佔據重要的一環。我們先來回顧下SPP模型:

       看到沒,它處在整個專案研發過程的第一環。同時,在專案管理過程中,它也佔據了一個重要的過程:需求管理。

       有一點需要強調,任何質量管理體系,評判是否完善的一個重要標誌是:是否留下了一套完整的資產(軟體領域中所謂資產,可以是程式碼、文件、資料庫等等)。那麼,涉及到需求的文件資產,就包括如下幾個:

       而今天,我們的作業,就要以產品需求規格的形式被描述出來。

二:需求該怎麼被描述

       不存在具體的“需求改怎麼被描述”的形式,每個公司甚至於每個專案組都可以有自己習慣的方式去描述需求,在我們的SPP模型中,一份完整的需求包括大概包含如下部分:

       而具體描述功能需求的是一個個的用例(即“使用者故事”,Use Case),它大致長這樣。

       用例名稱

       除了用例本身的描述以外,初學者不容易把握的另一個地方是,功能點應該細化到何種程度才能被歸為一個“用例”?

       注意,一種簡單粗暴但不是非常正確的做法是:一個頁面就是一個用例。比如說,使用者註冊常常是一個頁面,同時它也被稱之為一個用例。但是,過於複雜的使用者註冊頁面(或者說功能),可能就會是多個用例。比如,我們在註冊使用者的時候需要驗證使用者的手機號是否正確,那就需要獲取手機驗證碼,那這裡就會包含一個傳送手機驗證碼的用例。

       一個典型的包含當前迭代全部用例的故事牆:

       你沒看錯,上面就是一個個的用例,如果你在我的軟體公司裡面進行開發,我們每天就會對著這堵牆來安排任務,然後根據狀態移動這些case。故事牆也有專業的工具形成電子版,但我們更喜歡這種直觀的方式。要知道這樣一來,每個人當前都在負責什麼,case進行到什麼程度了,都一清二楚哦。

三:利息計算器的用例

       好了,接下來讓我們描述用例。

       第一次大作業,並不要求大家自己去寫用例。

       我們把主要的用例羅列如下:

1. 主介面

2. 等額本息頁面

3. 按月付息到期還本頁面

4. 一次性還本付息頁面

5. 資料儲存

6. 匯出計算結果

7. 退出

四:作業完成標識

       1:首先,功能必須要實現,沒有明顯的bug;

       2:此處有超綱功能,就是對稱加密。試著解決,解決不了,則明文儲存;

       3:專案commit到SVN服務中;

       4:程式碼要優美,想想程式碼規範,同時整個應用程式的實現要有面向物件的思想;

       5:再一個超綱題,把類圖畫出來。這不是我們在課上講解的內容,但我猜想你一定可以自己搞定。要注意哦,從現在開始就要養成:沒有困難,製造困難也要上的習慣了~~。

       以上作業,我們還沒加入測試協作。但能做到這種程度,說明你已經會寫程式碼了,同時對於SE階段的整個知識掌握的還不錯。

       在未來的大作業中,我們將會整合更多的SPP流程,並且很重要的,我們要學會怎麼跟測試部打交道哦。

華麗分割線

===========================================================

最課程JavaEE+網際網路分散式新技術開班進行中,來http://www.zuikc.com看看吧。你想參加不一樣的培訓班,並且一畢業就NB,那就來加入我們吧;

更多技術文章和開班資訊請加入,

QQ群:

相關推薦

課程階段作業02實現自己利息計算器

       上文描述了版本控制後,此篇才真正到了作業本身。我們第一次大作業要完成的是一個利息計算器。        利息計算器或者說融資計算器有自己的圖形化版本,每一個學習的同學如果想要直觀的瞭解下功能,可以管自己的老師要或者加文末的QQ群向老師索取。不過我們今天要實現的是非圖形化的介面,是CS版本的,簡

課程階段作業03用半天實現淘寶首頁?

       每一個在最課程學習的學生,到了最後幾乎都會來問我一個問題:老師,是不是實際的開發中,都會有一個前端開發工程師,把靜態頁面做好了,然後才交給我們後臺開發啊?        我只能說:你想多了。        我知道你這麼問的意思,HTML+CSS+各類前端框架學習起來太繁瑣了,是不是就沒有

課程階段作業06U度節能平臺控制系統

除了網際網路專案,當今社會還有一個概念非常流行,那就是:物聯網。什麼是物聯網?物聯網是通過感測裝置,按約定的協議,把任意物品與網際網路相連線,進行資訊交換和通訊,以實現智慧化識別、定位、跟蹤、監控和管理的一種網路概念。物聯網是網際網路的一種延伸,將原本使用者與使用者的互動,延伸和擴充套件到物品與物品之間。

課程階段作業04毫無用處的學生管理系統

前面幾期就業班學生知道,我在做簡歷指導時說過:如果你的簡歷中專案經歷寫的是“學生管理系統”、“**辦公自動化”這樣的系統,那麼就等於告訴面試官:你沒有專案經驗。 對於面試找工作,學生管理系統這樣的專案簡直毫無用處,甚至是減分項。如果你一定要說你實現了一個NB的學生管理系統,那麼就需要拿出你在GITHUB上的

課程階段作業05汙水處理系統以及百度地圖

吃著火鍋唱著歌,我們的課程已經進行了兩個月了,現在,我們終於有能力進行真正的軟體開發了。 往期學完課程面試歸來的同學,都知道有一句話:“面試造航母,實際工作擰螺絲釘”。 很慶幸的是,到目前為止,你已經掌握了大部分擰螺絲釘需要的知識了,這些知識就是:JavaSE+HTML+CSS+JavaScript+JQ

課程階段作業之01使用SVN實現版本控制

       版本控制在友軍那裡都是放在整個培訓的最後階段才開始講的,但我們打算放到SE階段。與其匆匆在專案實戰階段弄個半生不熟,然後進入實際工作中接受他人對你的懷疑,不如……早死早超生~~~。        可是,我們畢竟現在才剛學了Java一個月,程式碼都寫的不溜呢,甚至都不知道目前掌握的知識能做點撒實

課程作業02課程中的所有動手動腦的問題以及課後實驗性的問題,整理成一篇文檔。

運算符 示例 turn 整理 .cn 輸出結果 ole 輸出 兩個 問題1:一個Java類文件中真的只能有一個公有類嗎?請使用Ecplise或javac檢測一下以下代碼,有錯嗎? 一個java類文件中只能有一個公有類。用Ecplise測試,當public類嵌套在publi

ArcEngine10.2設計與開發課程學習(作業四)——實現地圖的簡單渲染和唯一值渲染

所有習題材料:連結:HTTPS://pan.baidu.com/s/1oiylGi6IEgndYO2j9_oQnQ  提取碼:jp3r  複製這段內容後開啟百度網盤手機應用程式,操作更方便哦 本題EXE:連結:HTTPS://pan.baidu.com/s/10_buC4K1

Caffe實戰系列實現自己Caffe網路層

#include "caffe/layers/image_scale_layer.hpp" #include "caffe/util/math_functions.hpp" #include <opencv2/opencv.hpp> namespace caffe { template <t

分散式服務架構學習(一)實現自己的RPC框架(採用Java Socket)

RPC實現原理圖: 1、Service API對應服務介面。 HelloService.java程式碼如下: package com.shan.rpc.service; public interface HelloService { public String

資料時代搭建自己資料平臺可以很容易!

一、基礎應用篇:構建歷史資料查詢系統 最初開始嘗試大資料技術的客戶,除網際網路行業外就是電信行業的客戶了。不管從是IT技術儲備還是從需求的迫切程度來看,電信行業的客戶都具有應用大資料技術的強烈驅動力:一方面電信業內部系統每時每刻都在產生大量的資料,如詳單資料、計費資料、活動

Spring JdbcTemplate實現通用的泛型dao二實現自己的名稱轉換NameHandler

這個比較簡單,只是實現了根據Java實體屬性名轉換回資料庫表的列名而已,看下介面定義: /** * 名稱處理介面 * * User: liyd * Date: 2/12/14 * Time: 4:51 PM */ public interface NameHa

ArcEngine10.2設計與開發課程學習(作業二)——基本應用程式生成,右擊選單實現顯示、移除和開啟屬性表功能

前言:這裡是我的筆記本 目錄: 準備工作——工具方法等 程式碼   首先說明一下第一個作業,這是第二個的連結:https://pan.baidu.com/s/1NziPHoMEJx0vc8DCNrX-dA提取碼:qpee 看的時候希望能夠靜下心來看,不要著急

資料結構實現 6.2優先佇列_基於二叉堆實現(C++版)

資料結構實現 6.2:優先佇列_基於最大二叉堆實現(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析

斯坦福深度學習課程cs231n assignment1作業筆記三softmax實現相關

任務 實現向量化的損失函式 實現向量化的梯度計算 分析梯度與數值梯度的驗證 使用驗證集來選擇超引數 使用SGD優化方法 視覺化權重 理論知識 softmax損失函式 令W為權重矩陣,大小為D×C;x為輸入,大小為1×D;b為偏置項,大小為1×C。那麼模型的輸

林軒田《機器學習基石》作業三python實現

在學習和總結的過程中參考了不少別的博文,且自己的水平有限,如果有錯,希望能指出,共同學習,共同進步 13 給定target function,我們的工作是在X=[-1,1]x[-1,1]上隨機產生1000個點,利用f(x1,x2)計算它的值,然後

斯坦福深度學習課程cs231n assignment1作業筆記二SVM實現相關

前言 本次作業需要完成: 實現SVM損失函式,並且是完全向量化的 實現相關的梯度計算,也是向量化的 使用數值梯度驗證梯度是否正確 使用驗證集來選擇一組好的學習率以及正則化係數 使用SGD方法優化loss 視覺化最終的權重 程式碼實現 使用for迴圈計算SVM

day1作業多級菜單操作(函數實現

數據庫 語句 會有 是否 臺灣 inpu return .com {} 作業二:多級菜單 (1)三級菜單 (2)可以次選擇進入各子菜單 (3)所需新知識點:列表、字典 要求:輸入back返回上一層,輸入quit退出整個程序 本示例的三級菜單是一個yaml文件格式,格式如下:

51nod 1270 數組的代價 思路簡單動態規劃

i++ for end names bits image using idt color 這題是看起來很復雜,但是換個思路就簡單了的題目。 首先每個點要麽取b[i],要麽取1,因為取中間值毫無意義,不能增加最大代價S。 用一個二維數組做動態規劃就很簡單了。 d

軟件工程作業WordCount實現與改進

import 函數 another buffer frequency ++ 兩種 read keyset 首先,我在網上找了一個WordCount的源碼,在源碼上進行修改 原文博主:波濤洶湧 原文鏈接:http://blog.sina.com.cn/s/blog_51335