연습문제 (2)

단국대학교 멀티미디어공학전공 HCI프로그래밍 II (2012년 가을학기) 연습

□ 단원 : C# 기초

□ 목표 : C# 프로그램 기초

□ 주요 연습 내용 : array, ArrayList, 클래스, 속성 연습

□ 준비자료 :

연습문제 Ex2 (Due by 10/12 금 24시까지)

-cyber 강의실 (cyber.dku.edu)로 source code, executable file, solution/project VC# file, 보고서를 학번_이름_Ex2.zip으로 묶어서 낼 것. 보고서 (30%)

[연습문제]

1. CurrencyExchange 클래스를 정의하라 (CurrencyExchange.cs 파일로 저장한다). (20%)

Currency 클래스는 , 나이, 신장, 체중, 성별을 데이터 멤버로 포함한다.

- private string hname;

- private double standard;

- private double buy;

- private double sell;

- private string sign;

각 멤버 필드에 대한 속성(Property)를 지정하여 외부에서 사용할 수 있도록 한다.

- public string HName { get; set;}	// get과 set에 대한 내부정의 필요

- public double Standard { get; set;}

- public double Buy { get; set;}

- public double Sell { get; set;}

- public string Sign { get; set;}

그리고 메소드는 다음을 포함한다.

- public CurrencyExchange()	// 기본 생성자

- public CurrencyExchange(string, double, double, double, string)	// 생성자

- public virtual void Print() // CurrencyExchange 통화이름, 매매기준율, 팔때, 살때, 통화명을 출력

- public override string ToString() // Print와 동일하게 string으로 출력

2. TodayMoneyExchangeConverter 클래스 (TodayMoneyExchangeConverter.cs 파일로 저장한다)는 아래의 메소드를 포함한다. (40%)

- static ArrayList currencyList = new ArrayList();

- static CurrencyExchange currencyExchangeIn = null; // 정확한 환율변환계산을 위해서 환전하려는 입력된 통화의 환율시세가 필요함

- static CurrencyExchange currencyExchangeOut = null; // 정확한 환율변환계산을 위해서 출력되는 환전 통화의 환율시세가 필요함

- static double currencyAmountIn = 0.0; // 입력된 환전금액

- static string currencySignIn = null; // 입력된 환전통화

- static string currencyNameOut = null; // 환전하려는 통화국가명

- public void GetTodayCurrencyExchangeRates();	// currencyList에 데이터 저장하고 아래와 같이 출력한다. (Ex1에 PrintTodayCurrencyExchangeRates를 변형하여 웹에서 받은 모든 정보를 currencyList에 저장하고나서 화면에 출력한다 - foreach구문과 CurrencyExchange 클래스의 ToString() 을 사용할 것.)

미국    1112    1131.46 1092.54 USD

일본    1433.17 1458.25 1408.09 JPY

유럽연합        1438.48 1467.1  1409.86 EUR

중국    176.94  189.32  168.1   CNY

영국    1804.78 1840.69 1768.87 GBP

스위스  1189.3  1212.96 1165.64 CHF

캐나다  1135.85 1158.45 1113.25 CAD

호주    1162.04 1185.16 1138.92 AUD

뉴질랜드        927.52  945.97  909.07  NZD

......

- public void PrintTodayCurrencyExchangeStandardAmount(); // 아래와 같이   한국 1000원, 미국 1달러, 일본 100엔, 유로 1유로에 대한 매매기준율 환율시세로 변환한 금액을 출력한다.

한국(KRW)       미국(USD)       일본(JPY)       유럽(EUR)

한국(1000 KRW)  1000.0          0.8993          69.78           0.70

미국(1 USD)     1112.0          1.0000          77.59           0.77

일본(100 JPY)   1433.2          1.2888          100.00          1.00

유로(1 EUR)     1438.5          1.2936          100.37          1.00

- CurrencyExchange GetCurrencyExchangeByName(string name); // 통화국가명에서 currencyList로부터 CurrencyExchange객체를 받기

- CurrencyExchange GetCurrencyExchangeBySign(string sign); // 통화명에서 currencyList로부터 CurrencyExchange객체를 받기

- public void GetKeyboardInput();	// 환전금액과 통화명 입력받기

힌트: Spring 클래스의 Split을 사용하여 환전금액 (amount)와 통화명(currency sign)을 입력받는다.

1. 환전금액을 입력하세요 (예: 1000 KRW 또는 200 JPY 등): 100 USD

통화명 미국 USD의 환율시세는 매매기준율 1112 살때 1131.46 팔때 1092.54

2. 환전통화를 입력하세요 (예: 한국/미국/일본/유럽연합/중국/호주..): 중국

통화명 중국 CNY의 환율시세는 매매기준율 176.94 살때 189.32 팔때 168.1

- public void Print();	// 매매기준율, 살때, 팔 때 기준에 대한 환전을 계산하여 출력한다.

매매기준율      살때            팔 때

100 USD => CNY          628.46          597.64          649.93

3. 프로그램에 본인이 더 테스트해보고 싶은 Method나 routine을 추가하라. 그리고 “네이버 오늘의 환율 시세”에서 제공하는 모든 통화에 대하여 환율이 정확히 계산됨을 네이버 환율계산기와 비교하여 증명하라. (10%)