단국대학교 멀티미디어공학전공 HCI프로그래밍2 (2015년 가을학기) 실습
날짜: 2015년 10월 2일
– 실습번호 : lab-02 (Due by 10/16)
– 실습제목 : class, abstract class, inheritance, property, list, array, dictionary
– 실습요약 : 평면 도형의 넓이(area)와 둘레(perimeter) 구하기
– 준비자료 : http://www.allsubjects4you.com/Area-and-perimeter-of-plane-figures.htm
http://www.science.co.il/Formula.asp
http://www.mathsisfun.com/area-calculation-tool.html
http://www.calculatoredge.com/enggcalc/perimeter.htm
10/16까지 online.dankook.ac.kr 이러닝으로 source code, executable file, solution/project VC# file, 보고서(12-font 2~3 page)를 학번_이름_Ex2.zip으로 묶어서 이러닝에 제출한다.
보고서 (30%) 프린트는 10/16 수업 시간에 제출한다. 그리고 보고서와 함께 ‘직접 손으로 쓴 본인 프로그램 소스코드’를 제출한다.
– 실습문제
- public enum FigureType { Triangle, Square, Rectangle, Parallelogram, Rhombus, Trapezoid };
- Figure 추상클래스를 상속받은 Triangle, Square, Rectangle, Parallelogram, Rhombus, Trapezoid 클래스는 각 도형의 넓이(Area) 및 둘레(Perimeter)를 계산한다. Figure 추상클래스는 다음을 포함한다.
+ public abstract ConsoleColor Color { get; }
+ public abstract double Area { get; }
+ public abstract string AreaFormula { get; }
+ public abstract double Perimeter { get; }
+ public abstract string PerimeterFormula { get; }
- FigureCalculator 추상클래스를 상속받은 TriangleCalculator, SquareCalculator, RectangleCalculator, .. 등 클래스는 실제 Triangle, Square, 등을 이용하여 넓이 및 둘레를 출력한다. FigureCalculator 추상클래스는 다음을 포함한다.
+ public Figure GeometryFigure = null;
+ public string Title {
get { return GeometryFigure.GetType().ToString() + “ 넓이/둘레 구하기”; }
}
+ public abstract void PrintTable()는 해당 도형의 넓이/둘레 표를 출력
+ public abstract void GetUserInputAndCalculateArea()와 GetUserInputAndCalculatePerimeter()는 사용자 입력에 따른 도형의 넓이/둘레 출력
- FigureCalculatorFactory 클래스는 사용자가 입력한 도형에 따라 원하는 실제 FigureCalculator (즉, TriangleCalculator, SquareCalculator, 등등) 객체를 생성하여 계산한다. 이 클래스는 다음의 메소드 (Method)만을 갖는다.
+ public FigureCalculator GetInstance(FigureType inputFigure)
- Program 클래스에서는 사용자의 입력에 따라 FigureCalculatorFactory를 이용하여 도형의 넓이 및 둘레를 계산하고, 테스트한 모든 결과를 다시 출력한다.
+ FigureType? GetFigureTypeFromName(string name)은 Dictionary를 이용하여 사용자가 입력한 도형 이름으로부터 FigureType을 반환
+ 사용자가 테스트한 도형의 넓이 및 둘레 계산을 Array나 ArrayList에 저장해 두었다가 do-while를 벗어나서 프로그램을 종료할 시 전체 리스트를 출력
- 사용자의 잘못된 입력에 따른 처리를 반드시 포함해야 하며, 그 외에 본인이 더 테스트해보고 싶은 method나 routine을 추가하라. 실행 화면과 코드를 첨부하시오.