연습문제 (2)
□ 단원 : 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%)
CurrencyExchange 클래스는 통화이름, 매매기준율, 살때, 팔때, 통화명을 데이터 멤버로 포함한다.
– 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%)