2013年12月29日 星期日

[C#] 簡易外幣兌換

1.設定interface
2.用class 實作介面,並實現簡易的多型
3.最後在用介面去呈現結果。



  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace 外幣兌換
  7. {
  8.     interface Exchange      //介面
  9.     {
  10.         double Rate { get; }   //匯率
  11.         void Convert();        //轉換
  12.     }

  13.     class US_to_NT : Exchange   //實作Exchange 介面
  14.     {
  15.         public double Rate
  16.         {
  17.             get { return 29.96; }
  18.         }
  19.         public void Convert()
  20.         {
  21.             Console.Write("請輸入要兌換的美元 : ");
  22.             double dollar = double.Parse(Console.ReadLine());
  23.             double nt = dollar * Rate;
  24.             Console.WriteLine("美元{0},可兌換台幣 {1}元", dollar, nt.ToString("#.#") );
  25.         }
  26.     }
  27.     class JP_to_NT : Exchange
  28.     {
  29.         public double Rate
  30.         {
  31.             get { return 3.5868; }
  32.         }
  33.         public void Convert()
  34.         {
  35.             Console.Write("請輸入要兌換的日幣 : ");
  36.             double dollar = double.Parse(Console.ReadLine());
  37.             double nt = dollar / Rate;
  38.             Console.WriteLine("日幣{0},可兌換台幣 {1}元", dollar, nt.ToString("#.#"));
  39.         }
  40.     }
  41.     class Program
  42.     {
  43.         static void Main(string[] args)
  44.         {
  45.             Exchange exchange;
  46.             US_to_NT USD = new US_to_NT();
  47.             JP_to_NT JPD = new JP_to_NT();
  48.            
  49.             while (true)
  50.             {
  51.                 Console.Write("選擇要兌換的外幣 : 1.美元  2.日幣 3.QUIT : ");
  52.                 int option = int.Parse(Console.ReadLine());
  53.                 if (option == 1)
  54.                 {
  55.                     exchange = USD;     //衍生物件指定給介面 類似向上轉型ok
  56.                    
  57.                 }
  58.                 else if (option == 2)
  59.                 {
  60.                     exchange = JPD;
  61.                 }
  62.                 else
  63.                     break;
  64.                 exchange.Convert();
  65.                 Console.WriteLine();
  66.             }
  67.         }
  68.     }
  69. }

沒有留言:

張貼留言