반응형

소스 코드 353

[C# 실습] 레코드 코팅 - 기계(서버)와 제어기(클라이언트)

이전 게시글은 RCMachineControl을 제어하는 UI 프로그램에 관한 것입니다. 이번에는 이전 게시글의 UI 프로그램을 다른 프로그램에서 제어할 수 있게 변형할 거예요. 여기에서는 이전에 작성한 UI 프로그램에 서버 기능을 추가하여 레코드 코팅 기계라 말할게요. 그리고 클라이언트 기능과 함께 제어기도 함께 작성합니다. 통신으로 주고 받을 메시지 종류 Basic설정(1, 레코드 면적, 코팅 액 투입 구 반경, 스핀 스피드) 소스 레코드 추가(2, 개수,0,0) 코팅액 추가(3, 병수,0,0) 기계 가동(4,0,0,0) 기계 멈춤(5,0,0,0) 기계(서버 코드 수정) 패킷을 수신하였을 때 이를 폼에게 전달하기 위한 이벤트 인자 클래스와 대리자를 정의합니다. RecvPacketEventArgs.cs ..

[C# 실습] 레코드 코팅 - 기계 구현(Windows Forms)

이전 게시글에는 레코드 코팅 기계 컨트롤(RCMachineControl)을 만드는 코드를 소개했어요. 해당 글에서는 레코드 코팅 기계(RCMachine)개체를 Form1 Load시점에 하드코딩으로 만들어 컨트롤에 설정하고 가동하게 작성하였습니다. 이번에는 UI 컨트롤을 통해 레코드 코팅 기계 컨트롤을 제어하는 코드를 소개할게요. 1. Form1에 제어하기 위한 컨트롤을 추가 배치합니다. nud로 시작하는 컨트롤은 NumericUpdawn컨트롤입니다. 2. Form의 Load이벤트 핸들러와 각 버튼의 클릭 이벤트 핸들러를 추가한 후에 다음처럼 구현합니다. using Microsoft.Win32; using RCMachineControlLib; using System; using System.Windows...

[C# 실습, 사용자 정의 컨트롤 제작 예광탄] 레코드 코팅

1. 앞에서 작성하였던 RCMachine.cs와 CotingEventArgs.cs 파일로 구성한 클래스 라이브러리를 만듭니다. 2. Windows Forms 앱(.NET Framework) 프로젝트("RCManchine_공장_예광탄")를 생성합니다. 3. 생성한 프로젝트에 사용자 정의 컨트롤(Windows Forms)을 추가합니다. 파일명: RCMachineControl.cs 4. DPanel 클래스를 추가합니다. 더블 버퍼링이 가능한 패널을 정의한 클래스입니다. DPanel.cs namespace RCManchine_공장_예광탄 { public class DPanel:System.Windows.Forms.Panel { public DPanel() { SetStyle(System.Windows.Forms..

[C# 실습] 반도체 장비 관리 프로그램 - 3. 상세 구현

[C# 실습] 반도체 장비 관리 프로그램 [C# 실습] 반도체 장비 관리 프로그램 - 1. 단일체 패턴 표현 [C# 실습] 반도체 장비 관리 프로그램 - 2. 프로토 타이핑 Equipment.cs using System; namespace 반도체_월드 { internal class Equipment { string name;//장비명 readonly int seqno;//일련번호 int mcnt;//재료개수 int mpcnt;//생산개수 int pcnt;//테스트 완료 제품 개수 int scnt;//판매 개수 static int last_seqno;//가장 최근에 부여한 일련번호 internal int SeqNo { get { return seqno; } } internal int MCnt { get {..

[C# 실습] 반도체 장비 관리 프로그램 - 2. 프로토 타이핑

[C# 실습] 반도체 장비 관리 프로그램 [C# 실습] 반도체 장비 관리 프로그램 - 1. 단일체 패턴 표현 사용자와 상호 작용 부분 구현 * 메뉴 선택 * EWorld.cs using System; using System.Security.AccessControl; namespace 반도체_월드 { class EWorld { #region 단일체 패턴 //1. 생성자의 보호 수준을 private로 지정 //멤버의 디폴트 가시성은 private EWorld() { Console.WriteLine("EWorld 생성자"); } //2. 정적 멤버로 단일체를 참조할 변수 선언 static EWorld eworld = null; //3.정적 생성자에서 단일체 생성 static EWorld() { Console...

다른 프로세스 메뉴 및 버튼 제어하기 - Invoke 요소 제어기 구현 ["모두가 행복한 세상을 꿈꾸다." 소프트웨어 접근성, UI 자동화]

안녕하세요. 언제나 휴일에 언휴예요. 컴퓨터나 기기를 볼 수 없을 때도 소프트웨어를 제어할 수 있어야 접근성이 있는 것이죠. 이를 위해 프로세스에 Invoke(실행) 가능한 요소를 수집할 수 있어야겠죠. 그리고 프로그램 방식으로 해당 요소를 Invoke 시킬 수 있어야 합니다. 이번 강의에서는 제어할 수 있는 프로세스 목록을 수집합니다. 프로세스를 선택하면 선택한 프로세스에 Invoke 가능한 요소를 수집합니다. Invoke 가능한 요소를 선택하면 프로그램 방식으로 Invoke를 시킵니다. 또한 해당 프로세스에서 버튼이나 메뉴를 Invoke하는 사건도 수집하여 어떠한 버튼이나 메뉴가 동작했는지 모니터링도 수행합니다. ["모두가 행복한 세상을 꿈꾸다." 소프트웨어 접근성, UI 자동화]에서는 앞으로도 소프..

[C#] 컬렉션(Dictionary) 실습 - 도서 관리 프로그램

실습) 다음 시나리에 맞게 프로그램을 작성하시오. 도서 관리 프로그램은 콘솔 응용 프로그램이다. 도서 관리 프로그램은 응용, 도서 관리자, 도서, 프로그래밍 도서 형식으로 구성한다. 응용에서는 사용자와 상호작용을 담당한다. 응용은 사용자에게 메뉴를 보여주고 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 도서 추가,도서 삭제, 도서 검색, 전체 도서 보기, 프로그램 종료가 있다. 도서 추가를 선택하면 도서 유형을 선택하고 도서 정보를 입력받아 도서 관리자에게 추가 요청한다. 도서는 ISBN(주요키, 10자리), 도서명, 저자, 출판사, 가격 정보를 사용자로부터 입력받는다. 프로그래밍 도서는 개발 언어도 입력받는다. 도서 삭제 기능에서는 삭제할 회원의 ISBN을 사용자로부터 입력받아 도서 관리자에게 삭제요..

[C#] 상속과 다형성 실습 - 학생, 학사학생, 마법학생, 운동학생

실습) 다음 시나리오에 맞게 프로그램을 작성하시오. 시나리오 프로그램이 시작하면서 학사 학생과 운동 학생, 마법 학생을 한 명씩 생성 학생을 생성 후 전체 학생에게 강의=>자습=>잠자기=>휴식하기=>음료마시기=>노래하기 순으로 진행 (각 단계마다 학생 정보를 출력) 자습하기에서는 해당 학생이 학사 학생이면 독서도 지시함 휴식하기에서는 해당 학생이 마법 학생이면 여행도 지시함 노래하기에서는 해당 학생이 운동 학생이면 춤추게 지시함 학생 멤버 필드로 이름, 주민번호, 체력, 지력, 스트레스가 있음 번호: 순차적 부여, 변하지 않음 이름: 생성 시 전달 지력:100(최소 0, 최대 200) 체력: 100 (최소 0, 최대 200) 스트레스: 0 (최소 0, 최대 100) 연속으로 공부한 횟수: 0 (0,5),..

[C#] 상속과 다형성 - 상품, 할인상품

실습) 다음 내용에 맞게 형식을 정의하시오. 상품 상품 이름과 가격을 멤버 필드로 갖습니다. 생성할 때 이름과 가격을 입력 인자로 받습니다. 가격과 이름의 접근자를 제공하며 가격 접근자는 가상 메서드입니다. 상품 정보를 출력하는 가상 메서드를 제공합니다. 형식 내부에서만 접근 가능한 가격 설정자와 이름 설정자가 있습니다. 할인 상품 할인율을 멤버 필드로 갖습니다. 상품 이름과 가격, 할인율을 입력 인자로 받습니다. 가격 접근자와 상품 정보 출력하는 메서드를 재정의합니다. 할인율의 접근자 메서드를 제공합니다. 형식 내부에서만 접근할 수 있는 할인율 설장자가 있습니다. *2019년 공주대에서 Product.cs using System; namespace 상품과_할인_상품 { class Product { /*..

[C#] 상속과 다형성 실습 - 밴드(음악가, 피아니스트, 드러머)

실습) 다음 시나리오에 맞게 프로그램을 작성하시오. * 목적: 상속과 다형성 기초 밴드를 생성 후에 피아니스트와 드러머를 멤버로 추가한다. 그리고 연주를 준비한다. 그리고 연주를 수행한다. 연주를 준비할 때 멤버 중에 피아니스트는 튜닝을 수행한다. 연주할 때 모든 멤버는 연주한다. 만약 드러머일 때는 폴링도 수행한다. *2019년도 공주대에서 소스 코드 예) Musician.cs using System; namespace 상속과_다형성_실습1 { class Musician { string name; protected string Name { get { return name; } } public Musician(string name) { this.name = name; } public void Play()..

반응형