반응형

2017/09 22

[C#실습] 신호등 시뮬레이션

[C#실습] 신호등 시뮬레이션 사용자로부터 신호등에서 자동차가 이동할 수 있는 시간과 사람이 이동할 수 있는 시간을 입력받아 이에 맞게 신호등 시뮬레이션하는 응용 프로그램이다. 이를 통해 Console 클래스의 여러 멤버를 사용해 보기로 하자. 능력단위 (NCS 기준) 프로그래밍 언어 활용 (2001020215_15v3) 개발기간 2017.09. 28 (1시간) 프로그램 개요 Console클래스의 여러 멤버의 사용법을 익히기 위한 프로젝트로 원하는 화면 좌표로 캐럿을 이동하여 원하는 색상으로 원하는 내용을 출력하는 신호등 시뮬레이션이다. 능력단위 요소 및 수행 준거(훈련내용) 기본문법 활용하기 1.1 응용소프트웨어 개발에 필요한 프로그래밍 언어의 데이터 타입을 적용하여 변수를 사용할 수 있다. 1.2 프..

[C# 실습] 라이브러리 활용하기

[C# 실습] 라이브러리 활용하기 능력단위프로그래밍 언어 활용(2001020215_15v3) 능력단위 요소 및 수행 준거 3. 라이브러리 활용하기 3.1 애플리케이션에 필요한 라이브러리를 검색하고 선택할 수 있다. 3.2 애플리케이션 구현을 위해 선택한 라이브러리를 프로그래밍 언어 특성에 맞게 구성 할 수 있다. 3.3 선택한 라이브러리를 사용하여 애플리케이션 구현에 적용할 수 있다. .NET에서 제공하는 클래스 라이브러리를 활용하여 프로그램을 제작해 보시오.예) 컬렉션(ArrayList, List, Map 등) 이용하기직렬화, 역직렬화 이용하여 프로세스의 개체 정보 저장 및 로딩하기 - 시나리오 작성- 설계 및 구현- 개인 기술 경력 문서 작성 참고)

매우 초보스런 단위테스트 예

매우 초보스런 단위테스트 예 안녕하세요. 언휴예요.단위테스트는 가장 최소 단위의 테스트를 말합니다. 예를 들어 두 수를 더하는 함수의 원형을 int Add(int a, int b);로 약속했다고 가정합시다. 해당 함수가 잘 작성한 것인지 테스트하기 위한 테스트 모듈을 만든다면 여러가지 방법이 있는데 다음은 그 중 하나입니다. void TestAdd(){ assert(Add(3,4)==7); assert(Add(7,8)==15); assert(Add(10,2)==12);} 이와 같은 테스트 모듈을 이용해서 테스트를 하였을 때 Add함수를 잘못 작성하였다면 assert에 의해 프로그램은 종료하면서 오류가 난 부분을 지적할 것입니다. 알고리즘 문제를 내는 온라인 사이트에서 각 문제에 해당 하는 코드를 작성하여..

[C# OOP 실습] 캠퍼스 생활

[C# OOP 실습] 캠퍼스 생활 프로젝트 명: 캠퍼스 생활 캠퍼스 생활은 콘솔 기반의 응용 프로그램이다. 프로그램은 초기화, 사용자 명령에 따른 동작 순으로 수행된다. 초기화에서는 캠퍼스 생성과 장소 생성, 학생 생성이 진행된다. 장소 생성에서는 강의실과 도서관, 기숙사가 생성된다. 학생 생성에서는 사용자가 원하는 수만큼 학생들이 생성된다. 학생 종류에는 도전적인 학생, 보수적인 학생, 수동적인 학생이 있으며 사용자가 원하는 유형을 선택한다. 그리고 학생은 사용자에 의해 이름이 결정이 되며 학번은 차례대로 부여되며 생성된 학생들은 캠퍼스로 이동한다. 사용자 명령에 따른 동작은 종료 메뉴를 선택하기 전까지 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 학생 이동, 초점 이동, 전체 정보 보기가 있다. ..

[C# 소스] 클래스 간의 관계 - 5. 의존(Dependency) 관계

[C# 소스] 클래스 간의 관계 - 5. 의존(Dependency) 관계 의존 관계는 다른 개체의 변화가 발생했을 때 자신에 영향을 받는 개체 사이의 관계입니다. 그리고 특정 개체의 생성을 담당할 때도 의존 관계로 표현합니다. GUI(Graphic User Interface) 프로그램에서 특정 데이터의 정보를 화면에 표시하는 컨트롤과 데이터 사이에는 의존 관계로 표현할 수 있습니다. UI 컨트롤을 통해 사용자가 개체의 속성을 입력하면 의존 관계에 있는 개체의 속성을 변경해야겠죠. 혹은 개체의 속성이 변하면 UI 컨트롤을 통해 변경한 정보를 사용자에 알려주어야 할 것입니다. 이 책에서는 GUI를 다루고 있지 않아 이와 같은 의존 관계는 표현하지 않을 거예요. 소프트웨어 설계에 관한 많은 레퍼런스에서는 UI..

[C# 소스] 클래스 간의 관계 - 4. 연관(Association) 관계

[C# 소스] 클래스 간의 관계 - 4. 연관(Association) 관계 연관 관계는 명령 개체와 피 명령 개체가 명확하지 않은 관계입니다. 프로그램에서는 연관 관계로 표현하지 말고 직접 연관 관계로 표현하는 것이 안전합니다. 연관 관계는 약사와 의사처럼 “약사와 의사는 환자 치료에 연관이 있다.”와 같이 수평적인 관계입니다. 의사는 환자 치료를 위해 어떠한 약을 처방받아 먹고 있는지 알 수 있어야 합니다. 또한 약사는 약을 조재하기 위해서는 의사의 처방이 필요합니다. 그런데 이와 같은 관계에서 프로그램을 잘못 작성하여 버그가 날 위험이 많습니다. 예를 들어 의사의 “치료하다” 기능에서 약사의 “조재하다”를 호출하게 구현하고 약사의 “조재하다” 기능에서 의사의 “치료하다”를 호출한다면 스택 오버 플로우..

[C# 소스] 클래스 간의 관계 - 3. 직접 연관(DIrected Association) 관계

[C# 소스] 클래스 간의 관계 - 3. 직접 연관(DIrected Association) 관계 직접 연관 관계는 프로그램에서 가장 흔하게 볼 수 있는 관계로 명령을 내리는 개체와 명령을 받아 수행하는 개체의 관계입니다. “고용자는 피 고용자에게 일을 시킬 수 있다.” 처럼 프로그램 세계에서는 매우 자연스러운 관계입니다. 목적 집단에서 목적을 달성하기 위해 상하 관계가 존재하는 것처럼 프로그램도 특정 목적을 수행하기 위한 코드 집합이어서 직접 연관 관계가 필요합니다. using System; namespace 직접연관관계 { class Employee { int capa; string name; public Employee(int capa, string name) { this.capa = capa; th..

[C# 소스] 클래스 간의 관계 - 2. 집합(Aggregation) 관계

[C# 소스] 클래스 간의 관계 - 2. 집합(Aggregation) 관계 필통과 펜의 관계처럼 "필통은 펜을 보관할 수 있다."라는 논리적 관계를 집합이라 합니다. 집합 관계에서는 소유 개체와 피 소유 개체의 생성 시기와 소멸 시기가 같지 않아도 됩니다. using System; using System.Collections; namespace 집합_관계 { class Pen { string maker; string name; public Pen(string maker, string name) { this.maker = maker; this.name = name; } public override string ToString() { return string.Format("상품명:{0} 제조사:{1}", n..

[C# 소스] 클래스 간의 관계 - 1. 일반화(Generalization)관계

[C# 소스] 클래스 간의 관계 - 1. 일반화(Generalization)관계 음악가와 피아니스트와 같이 "피아니스트는 음악가이다."라는 논리적 관계를 형성하는 관계를 일반화 혹은 파생 관계(Derivation)라 합니다. 이와 같은 일반화 관계에 있을 때 기반이 되는 클래스에 정의되어 있는 멤버를 파생 클래스에서는 상속을 받게 되며 OOP의 중요한 특징 중의 하나라고 할 수 있습니다. using System; namespace 일반화_관계 { class Musician { public void Play() { Console.WriteLine("음악가 연주하다."); } } class Pianist:Musician { public void Tuning() { Console.WriteLine("조율하다...

[C# 캡슐화 실습] 캠퍼스 생활 - 학생 클래스 정의하기

[C# 캡슐화 실습] 캠퍼스 생활 - 학생 클래스 정의하기 캠퍼스 생활은 콘솔 기반의 응용 프로그램이다. 프로그램은 초기화 과정을 진행한 후에 사용자 명령에 따른 동작 수행을 반복한다. 초기화에서는 사용자가 원하는 수만큼 학생들이 생성된다. 학생은 사용자에 의해 이름을 결정하고 학번은 차례대로 부여한다. 사용자 명령에 따른 동작은 종료 메뉴를 선택하기 전까지 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 판서 강의, 발표, 세미나, 책 읽기, TV시청, 잠 자기, 전체 보기가 있다. 판서 강의를 선택하면 전체 학생은 판서 강의 듣기를 수행한다. 세미나를 선택하면 특정 학생을 선택하여 선택한 학생은 세미나를 발표하고 나머지 학생은 세미나를 듣는다. 책 읽기에서는 특정 학생을 선택하여 선택한 학생만 책을 ..

반응형