Category Archives: Homework

C# Array/ArrayList

Person[] pArray = new Person[5];

// 만약 Person 객체를 하나만 생성한 후 for문에서 공유해 사용할 경우
// 마지막으로 입력된 데이터로 모든 데이터값이 치환됨
Person p = new Person();
for (int i = 0; i < 5; i++) {
    p.Name = Console.ReadLine();           // 입력정보
    p.age = int.Parse(Console.ReadLine()); // 입력정보
    pArray[i] = p;                                  // 리스트에 들어간 모든 원소는 동일한 p
}

Person[] pArray = new Person[5];

// 아래와 같이 for문 안에 Person p = new Person()와같이 새로운 객체를 생성해야
// 각자 다르게 입력된 정보가 들어가게 됨
for (int i = 0; i < 5; i++) {
    Person p = new Person();
    p.Name = Console.ReadLine();           // 입력정보
    p.age = int.Parse(Console.ReadLine()); // 입력정보
    pArray[i] = p;                                  // 이때 p는 새로운 Person객체
}



http://dis.dankook.ac.kr/lectures/hci10/entry/C-ArrayList
 (ArrayList 사용예)

HW2

연습문제 (2)






단원 : C# 기초


목표 : C# 프로그램 기초


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


준비자료 :


  6724063743.hwp


연습문제 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;} // getset에 대한 내부정의 필요


– 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에 데이터 저장하고 아래와 같이 출력한다. (Ex1PrintTodayCurrencyExchangeRates를 변형하여 웹에서 받은 모든 정보를 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. 프로그램에 본인이 더 테스트해보고 싶은 Methodroutine을 추가하라. 그리고 네이버 오늘의 환율 시세에서 제공하는 모든 통화에 대하여 환율이 정확히 계산됨을 네이버 환율계산기와 비교하여 증명하라. (10%)


 

TodayCurrencyExchangeRate

        // 네이버 오늘의 환율 시세 출력 (C#)
        public void PrintTodayCurrencyExchangeRates()
        {
            WebClient client = new WebClient();
            client.Headers.Add(“Referer”, “http://blog.naver.com/usback“);
            Stream xmlDataStream = client.OpenRead(
                        “http://www.naver.com/include/timesquare/widget/exchange.xml“);
            XmlReader reader = XmlReader.Create(xmlDataStream);
            reader.MoveToContent();
            while (reader.ReadToFollowing(“currency”))
            {
                reader.ReadToFollowing(“hname”);
                string hname = reader.ReadElementContentAsString(“hname”,
                                                  reader.NamespaceURI);
                reader.ReadToFollowing(“standard”);
                double standard = reader.ReadElementContentAsDouble(“standard”,
                                                  reader.NamespaceURI);
                reader.ReadToFollowing(“buy”);
                double buy = reader.ReadElementContentAsDouble(“buy”,
                                                  reader.NamespaceURI);
                reader.ReadToFollowing(“sell”);
                double sell = reader.ReadElementContentAsDouble(“sell”,
                                                 reader.NamespaceURI);
                reader.ReadToFollowing(“sign”);
                string sign = reader.ReadElementContentAsString(“sign”,
                                                 reader.NamespaceURI);
                Console.WriteLine(“{0}\t{1}\t{2}\t{3}\t{4}”, hname, standard, buy, sell, sign);
            }
        }

HW1

연습문제 (1)

단원 : C# 기초

목표 : C# 프로그램 기초

주요 연습 내용 : Visual Studio 2010, C# 입출력, 변수, 메소드, 제어문 사용 연습

준비자료 : TodayMoneyExchangeConverter.cs

   1323862212.hwp

연습문제 Ex1 (Due by 9/28 24시까지)

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

[연습문제]

0. Visual C# Console Application의 프로젝트를 생성한다.

1. 오늘의 환율 계산기 TodayMoneyExchangeConverter 클래스를 작성하라. (30%)

– enum Currency { KRW, USD, JPY, EUR };를 사용
– enum ExchangeMethod { BASIS, SELL, BUY };를 사용
– void GetKeyboardInput() 함수는 콘솔창에서 키보드로 통화, 환율기준, 환전금액을 입력받아서 처리

+ 힌트: while 문을 사용하여 미국/일본/유럽연합 또는 USA/JAPAN/EURO 아닌 경우 다시 입력을 받음 마찬가지고 while 문을 사용하여 매매기준율/팔때/살때 또는 BASIS/BUY/SELL 아닌 경우 다시 입력을 받음
+ 힌트: Console.ReadLine() 함수는 string을 반환하므로, double로 변환하기 위하여 TryParse 함수 사용 => boolValue = double.TryParse(string, out doubleValue)

CurrencySign GetCurrencySignFromName(string str) 메소드는 USD/JPY/EUR 하나를 반환
ExchangeMethod GetExchangeMethodFromString(string str) 메소드는 BASIS/BUY/SELL 하나를 반환
– double GetTodayCurrencyExchangeRateBy(string name, ExchangeMethod exchange) 메소드는 통화와 환율기준으로 네이버 오늘의 환율시세에서 찾아서 반환
– void Print()
메소드는 환전된 금액을 화면에 출력

2. Main 함수에서는 TodayMoneyExchangeCalculator 객체를 생성하고 키보드 입력으로, 환전하려는 통화(미국/일본/유로), 환율기준(매매기준율/외화를 살 때/외화를 팔 때)를 입력받아서 환율시세를 찾고 환전금액()을 계산하여 환전된 금액(입력에 따라서 USD/JPY/EUR)을 출력하는 routine 등을 추가한다. (20%)
– do..while 문을 사용하여 다른 사람을 하려면 다시 처음으로 돌아갈 수 있도록 함

3. Main 함수에서 본인이 더 테스트해보고 싶은 TodayMoneyExchangeConverter 클래스의 Methodroutine을 추가하라. (20%)
예를 들어, 출력을 테이블로 나타내어 보여준다거나
다른 통화들 (유로와 달러) 간의 환율 계산을 추가