C# 실력 늘리기 11일차 196~198. 채팅하기: 채팅 프로그램을 만들어보자 Server (Console): Listener의 IP를 IPAdress.Any로 수정 using System; using System.Collections; using System.IO; using System.Text; using System.Threading; using System.Net; using System.Net.Sockets; namespace ConsoleServer { class Program { static void Main(string[] args) { Server server = new Server(); server.Echo(); } public class Server { public const int PORT = 5555; .. C# 실력 늘리기 10일차 188~190. 최단거리 구하기(플로이드): 지하철을 이용하여 최단거리로 가는 방법을 구하자. 플로이드 알고리즘을 구현하여 지하철 역 사이의 최단경로를 보여주는 문제인데, 사실 가장 큰 복병은 데이터 입력이다. 모든 역마다 다른 역에 대한 거리 정보를 입력해줘야 되기 때문에 (역의 개수)^2 크기의 배열을 노선도를 보면서 입력해야 한다.심지어 교차되는 역은 따로 고려해야 되기 때문에 반복도 제한적으로만 사용가능하다. (아래의 코드도 역은 16개인데 예외가 10개이다...) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System... C# 실력 늘리기 9일차 181~182. 원형 시계를 만들어 보자. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace Clock { public partial class Form1 : Form { Matrix matrix = new Matrix(); PointF[] hf = new PointF[4]; PointF[] mf = n.. C# 실력 늘리기 8일차 171~172. 게임 가능한 16 퍼즐 만들기: 게임을 할 수 있는 16 퍼즐을 만들어보자. 172를 푸는데 171의 내용이 들어가서 결과적으로 둘 다 푼 셈이 되었다. 풀 수 있는 퍼즐의 조건 = (행의 개수 + 뒤집힌 개수 + 0이 있는 행 %2 != 0) using System; using System.Collections; using System.IO; using System.Text; using System.Collections.Generic; namespace ConsoleApplication1 { public class Program { public static void Main(String[] args) { int row=4; int []m=new int[row*row]; SixTeenIn.. C# 실력 늘리기 7일차 154~155. 하노이 타워 만들기: 재귀를 이용하여 하노이 타워를 구현하자. 옛날에 이해 못하고 끙끙대던 추억이 있어서 윈폼 프로젝트로 만들었다. ※ 구현 기능 ○ 하노이의 탑의 해결과정을 단계별로 확인 가능함 ○ 진행 단계 되돌리기 기능 ○ 진행 단계 초기화 기능 사실 판의 개수를 선택하는 기능도 만들어서 1개~6개중 하나를 선택하게 만들려 했었다. (윈폼이 쓸데없이 크고 위에 사용안된 판들이 떠있는 이유) 그런데 윈폼에서 판을 만들기 위해 사용한 RectangleShape가 타입이 없다? (그림판에 그린 그림 느낌) 그래서 배열이나 리스트, 스택으로 반복해서 조작하는게 불가능함...Object로 만들고 Control 써도 안됨 그럼 케이스를 다 만들어 줘야 하는데...판 n개를 사용하는 경우 하나당.. C# 실력 늘리기 6일차 141~145. RSA를 이용한 암호화: 문자열을 암호화하고 암호화된 숫자를 해독하자. RSA 알고리즘은 평소에 관심이 있어서 공부도 할겸 윈폼 프로젝트로 만들었다. ※ 구현 기능 ○ 할당된 공개 키와 개인 키 확인 기능 ○ 암호화 버튼 클릭 시 문자열을 유니코드로 변환 후 암호화 ○ 해독 버튼 클릭 시 암호를 해독하여 유니코드를 얻은 후 유니코드를 문자열로 재변환 ○ 리셋 버튼 클릭 시 공개 키와 개인 키를 새로 할당 isPrime 메서드의 파라미터가 num으로 되어있었는데 진짜 겨우 찾음 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us.. C# 실력 늘리기 5일차 129~130. 데이터베이스와 테이블 만들기, ADO.NET 사용하기: StudentDataBase와 Student 테이블을 만들고 학생 목록을 보여주자. 생성 과정이 많이 복잡해서 결과만 올림 테이블 정의 쿼리 (다중 INSERT 사용 불가) INSERT INTO Student VALUES ('ID1', 'NAME1', '1111-1111', 'AD1', 'N', GETDATE()); INSERT INTO Student VALUES ('ID2', 'NAME2', '2222-2222', 'AD2', 'N', GETDATE()); INSERT INTO Student VALUES ('ID3', 'NAME3', '3333-3333', 'AD3', 'N', GETDATE()); INSERT INTO Studen.. C# 실력 늘리기 4일차 113~114. 쓰레드와 Wait( ), PulseAll( ) 메서드, Monitor: 필요한 자원이 준비될 때까지 쓰레드 작업을 지연해 보자. using System; using System.Collections; using System.IO; using System.Text; using System.Threading; namespace ConsoleApplication1 { public class Program { public static void Main(String[] args) { Plate plate = new Plate(); Cake cake = new Cake(plate); Eat eat = new Eat(plate); cake.start("maker"); eat.start("eater").. 이전 1 2 다음 목록 더보기