這個案例很好地解釋了scala中抽象型別的應用。我們的任務是設計乙個currency類。乙個典型的currency例項可以用來代表以美元、歐元、日元或其他貨幣表示的金額。它應該支援對貨幣金額的計算。例如,應該能將相同貨幣額度的兩筆金額相加,或者可以用表示利率的因子對某筆貨幣金額做乘法。同時新增兩個改良點,一、支援子單位;二、支援貨幣轉換的功能。
①抽象類currencyzone
abstract class currencyzone//入參n為1單位貨幣包含的amount,如1美元的amount為100,val dollar = make(100)。
private def decimals(n: long): int = if (n == 1) 0 else 1 + decimals(n / 10)
//amount需除以1單位包含的amount顯示
override def tostring: string =
((amount.todouble / currencyunit.amount.todouble) formatted("%." + decimals(currencyunit.amount) + "f")
+ " " + designation)
} }
②匯率轉換物件
object converter
③美元物件
object us extends currencyzoneoverride type currency = dollar
override def make(cents: long): dollar = new dollar
val cent = make(1)
val dollar = make(100)
val currencyunit = dollar
}
④歐元物件
object europe extends currencyzoneoverride type currency = euro
override def make(cents: long): euro = new euro
val cent = make(1)
val euro = make(100)
val currencyunit = euro
}
⑤日元物件
object japan extends currencyzoneoverride type currency = yen
override def make(yen: long): yen = new yen
val yen = make(1)
val currencyunit = yen
}
⑥測試類
object test}
控制台輸出
12110 jpy75.95 eur
99.95 usd
199.95 usd
10案例分析
銀行 信用風險,即客戶違約風險,是銀行風險管控的主要內容。不同行業,不同企業,財務指標的風險程度不同。假資料,假資訊,假報表的現象,財務資訊的質量問題有三個方面是非常重要的 1.建立識別假報表的管理體系 2.研究建立財務資訊的勾稽關係,即通過相互之間的購機關係的檢驗來判別資料的質量 3.建立資料的錄...
3 20210405 1 案例分析作業
這個作業屬於哪個課程 軟工 2018級計算機二班 這個作業要求在 3 20210405 1 案例分析作業 這個作業的目標 學會對產品的調研和分析 學號20188434 目錄第二部分 分析 參考8.6節對工作的估計,和14.1節軟體工程的質量 第三部分 建議和規劃 參考 構建之法 第8章功能的定位和優...
個人作業3 案例分析
簡潔大方,給人一種一目了然的感覺,功能也比較齊全,例如充值網費,校園卡,課表查詢,成績查詢,還有微博朋友圈的功能,全校所有人都能在上面發表言論。介紹採訪物件的背景和需求 描述使用者使用這個產品的過程,使用者的問題解決了麼?軟體在資料量 介面 功能 準確度上各有什麼優缺點?使用者體驗方面有問題麼?使用...