Interface (인터페이스)
http://dis.dankook.ac.kr/lectures/hci09/entry/Interface
IEnumerable & IEnumerator Interface
-IEnumerable 인터페이스는 foreach를 사용하여 컬랙션을 반복하는 것을 지원하기 위해 구현하여 사용한다.
http://dis.dankook.ac.kr/lectures/hci09/entry/Enumerator
IEquatable Interface
-IEquatable 인터페이스는 두 객체간에 서로 내부 내용이 같은 지 (예: if(a == b))를 비교하기 위해 구현하여 사용한다.
http://dis.dankook.ac.kr/lectures/hci09/entry/Equals
IComparable Interface
-IComparable 인터페이스는 개체에 대한 기본 정렬(sort) 순서를 지정해주기 위해 구현하여 사용한다. 해당 개체를 배열이나 컬랙션에서 정렬하는데 필요하다.
Monthly Archives: October 2011
Class & Inheritance
Indexer
http://dis.dankook.ac.kr/lectures/hci09/entry/Indexer
Property (속성)
http://dis.dankook.ac.kr/lectures/hci09/entry/Property
Method overloading (메소드 오버로딩) Method overriding (메소드 오버라이딩)
http://dis.dankook.ac.kr/lectures/hci09/entry/Method-Overloading
Abstract Class (추상 클래스)
http://dis.dankook.ac.kr/lectures/hci09/entry/Abstract-class
Sealed Class (봉인 클래스)
http://dis.dankook.ac.kr/lectures/hci09/entry/Sealed-Class
C# Formatting Numeric String
http://dis.dankook.ac.kr/lectures/hci09/entry/C-String-Formatting
http://msdn.microsoft.com/en-us/library/s8s7t687(VS.80).aspx
Formatting Custom Numeric Format Strings
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
Formatting Numeric Format Strings (Alignment)
Integer http://www.csharp-examples.net/string-format-int/
Double http://www.csharp-examples.net/string-format-double/
DateTime http://www.csharp-examples.net/string-format-datetime/
Align String with Spaces http://www.csharp-examples.net/align-string-with-spaces/
Indent String with Spaces http://www.csharp-examples.net/indent-string-with-spaces/
IFormatProvider http://www.csharp-examples.net/iformatprovider-numbers/
Custom IFormatProvider http://www.csharp-examples.net/custom-iformatprovider/
Character | Description | Examples | Output |
C or c | Currency | Console.Write(“{0:C}”, 2.5); | $2.50 |
Console.Write(“{0:C}”, -2.5); | ($2.50) | ||
D or d | Decimal | Console.Write(“{0:D5}”, 25); | 25 |
E or e | Scientific | Console.Write(“{0:E}”, 250000); | 2.50E+05 |
F or f | Fixed-point | Console.Write(“{0:F2}”, 25); | 25 |
Console.Write(“{0:F0}”, 25); | 25 | ||
G or g | General | Console.Write(“{0:G}”, 2.5); | 2.5 |
N or n | Number | Console.Write(“{0:N}”, 2500000); | 2,500,000.00 |
X or x | Hexadecimal | Console.Write(“{0:X}”, 250); | FA |
Console.Write(“{0:X}”, 0xffff); | FFFF |
C# Array/ArrayList
// 만약 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
}
// 아래와 같이 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 사용예)
Assignment 2
연습문제 (2)
□ 단원 : C# 기초
□ 목표 : C# 프로그램 기초
□ 주요 연습 내용 : array (또는 ArrayList), foreach, 속성, 클래스, 상속 연습9481023359.cs연습문제 Ex2 (Due by 10/14 금 24시까지)
-cyber 강의실 (cyber.dku.edu)로 source code, executable file, solution/project VC# file, 보고서를 학번_이름_Ex2.zip으로 묶어서 낼 것. 보고서 (30%)
[연습문제]
1. Person 클래스를 정의하라 (그리고, Person.cs 파일로 저장한다). (20%)
Person 클래스는 이름, 나이, 신장, 체중, 성별을 데이터 멤버로 포함한다.
– private string name;
– private int age;
– private float height;
– private float weight;
– private Gender gender; // Gender는 enum 타입 {Female, Male}
– private Activity activity; // Activity는 enum 타입 {Low, Medium, High}
각 멤버 필드에 대한 속성(Property)를 지정하여 외부에서 사용할 수 있도록 한다.
– public string Name { get; set;} // get과 set에 대한 내부정의 필요
– public int Age { get; set;}
– public float Height { get; set;}
– public float Weight { get; set;}
– public Gender Gender { get; set;}
– public Activity Activity { get; set;}
그리고 메소드는 다음을 포함한다.
– public Person() // 기본 생성자
– public Person(string, int, float, float, Gender) // 형변환 생성자
– public virtual void Print() // Person의 이름, 나이, 신장, 몸무게, 성별, 활동량을 출력
– public override string ToString() // Print와 동일하게 string으로 출력
2. Person 클래스에서 상속받은 PersonDailyCaloricIntakeCalculator 클래스를 정의하라 (그리고, PersonDailyCaloricIntakeCalculator.cs 파일로 저장한다). 이 클래스는 아래의 메소드를 추가로 포함한다. (20%)
– public float GetNormalWeight(); // Person의 표준체중 (Ex1과 동일)
– public BMI GetBMI(); // Person의 비만도 (Ex1과 동일)
– public float GetDailyCaloricIntake(); // Person의 하루권장섭취량
// 한국인 하루권장섭취량 남성 2600 kcal 여성 2100 kcal
// 기초대사량산출공식 (Herris Benedict Equation)
// 기초대사량(남성) = 66.47 + (13.75*weight) + (5*height) – (6.76*age)
// 기초대사량(여성) = 655.1 + (9.05*weight) + (1.85*height) – (4.68*age)
// 활동대사량 = 저활동적(1.3)/중간활동적(1.5)/활동적(1.75)
// 개인별 하루권장섭취량(kcal) = 기초대사량 * 활동대사량
– public override void Print(); // Person(베이스클래스)정보와 추가적으로
// 표준체중, 비만도, 하루권장섭취량을 출력
– public override string ToString() // Print와 동일하게 string으로 출력
3. DailyCaloricIntakeCalculator 클래스의 Main 함수에서는 PersonDailyCaloricIntakeCalculator 객체를 5개 이상입력 받아서 array 또는 ArrayList pArray에 Add하고 난 후 pArray에 있는 모든 정보에 대해서 Print 출력한다. (20%)
http://msdn.microsoft.com/en-us/library/system.collections.arraylist(VS.71).aspx
– for 문을 사용하여 5명 이상 PersonDailyCaloricIntakeCalculator에 개인 정보를 입력받아서 추가한 후에
– 전체 배열에 있는 개인별 나이/신장/체중/성별/활동량 및 표준체중/비만도/하루권장섭취량을 출력한다. (foreach구문과 PersonDailyCaloricIntakeCalculator 클래스의 ToString() 을 사용할 것)
4. 프로그램에 본인이 더 테스트해보고 싶은 Method나 routine을 추가하라. (10%)