책소개
현대 프로그래밍 언어의 특징을 가장 잘 구현한 C#다년간 강의를 통해 학생들이 쉽게 배울 수 있는 방법을 찾아 집필한 책이다. 그렇기 때문에 스스로 흥미 있는 프로그램을 만들기 위해 배울 수 있도록 입문자를 배려하고 있다. 텍스트 기반의 콘솔 프로그램에 대한 설명부터 기본기를 익히고, 비주얼 프로그래밍을 통해 재미있는 프로그램을 직접 만들며 학습해 볼 수 있는 기회가 될 것이다. 책에 수록된 모든 예제는 비주얼 스튜디오 2019에서 작성하고 실행하였다. 소스 코드는 정보문화사 홈페이지(infopub.co.kr) 자료실과 저자의 깃허브(github.com/BeeEyeDmu/CSharp200)에서 다운받아 활용할 수 있다. 또한 Q&A 게시판을 운영하고 있으니 학습 중 궁금한 사항은 저자의 블로그(post.naver.com/kquddlr)에서 피드백 가능하다.
저자소개
한양대학교 전자공학과에서 학사, 석사, 박사 학위를 취득하고 미국 캘리포니아 산호세 주립대학교에서 방문 교수를 지냈다. 1991년부터 건양대학교 의료IT공학과 교수로 재직하며 30년 가까이 C, C++, C#, 알고리즘 등을 강의하고 있다. 현재 관심 분야는 스마트헬스케어와 IoT이다.
목차
PART 1 입문 C# 첫발 내딛기001 간단한 C# 프로그램을 명령줄에서 컴파일하기002 비주얼스튜디오 설치하고 출력003 콘솔에서 읽고 쓰기004 변수 선언 및 자료형(Type)005 문자와 문자열006 대입연산자와 대입문007 ConsoleWriteLine 메소드008 ConsoleWriteLine 메소드로 여러 개의 값을 출력009 두 변수를 출력하는 방법010 형식지정자를 사용한 ConsoleWriteLine 메소드011 형식지정자를 사용하는 StringFormat()과 ToString()012 실수를 표현하는 float, double, decimal013 캐스팅과 자료형 변환014 문자열과 숫자의 변환015 Convert 클래스와 2진수, 8진수, 16진수 출력016 C#의 연산자와 식017 산술연산자018 DivideByZeroException과 try~catch 문019 OverflowException과 checked 키워드020 관계연산자021 논리연산자022 비트연산자023 조건연산자(? :)024 증가연산자, 감소연산자와 대입연산자의 압축025 String 클래스026 StringSplit() 메소드를 사용한 문자열 구문 분석027 문자열을 연결하는 네 가지 방법028 문자열의 검색029 StringFormat의 날짜와 시간 형식 지정030 그룹 분리자를 넣는 방법031 String과 StirngBuilder의 차이점032 열거형 enum033 상수, const와 readonly034 값 형식과 참조 형식, ref 키워드035 배열과 객체를 메소드 매개변수로 전달036 Null 조건 연산자(?)037 변수의 초기화와 default038 Nullable형039 object 타입과 박싱, 언박싱040 if~else 조건문041 switch 문042 BMI 계산기043 반복문(1에서 100까지 더하기, 홀수의 합, 역수의 합)044 반복문으로 2진, 8진, 16진수 출력045 반복문으로 구구단 출력046 평균, 최소, 최대값 구하기047 x의 y승 구하기048 팩토리얼 구하기049 소수 판단하기050 원주율의 계산051 무한루프와 break 문052 합계가 10000이 넘는 순간053 이중 반복문으로 1~n까지의 팩토리얼과 합 구하기054 이중 루프를 이용하여 구구단 출력055 1000까지의 소수를 출력하고 몇 개인지 출력056 이중 루프와 피라미드 출력PART 2 초급 C# 기초 다지기057 배열의 초기화와 배열 요소의 출력058 배열과 Array 클래스059 다차원 배열060 이름을 배열에 저장하고 알파벳 순으로 정렬061 Random 클래스062 배열에서 최소, 최대, 평균 계산063 선형탐색과 이진탐색064 버블정렬065 클래스와 구조체066 클래스의 멤버, 필드와 상수067 인스턴스 메소드와 스태틱 메소드068 생성자 메소드069 속성(Property)070 세 개의 숫자 중 가장 큰 수를 찾는 정적 메소드071 소수인지를 알아내는 정적 메소드072 윤년인지 알아내는 정적 메소드073 생애계산기074 피라미드 메소드075 팩토리얼을 계산하는 메소드076 두 숫자 사이의 모든 정수 값을 더하는 메소드077 n의 m승을 계산하는 메소드078 원의 면적을 계산하는 메소드079 재귀메소드 Power(x, y)080 재귀메소드로 팩토리얼 계산081 재귀메소드로 역수의 합 계산082 하노이의 탑과 메르센 수083 재귀 이진탐색084 Stopwatch로 피보나치 수열의 실행 시간 측정085 DateTime 구조체086 TimeSpan 구조체의 사용 방법087 TimeSpan을 이용한 생애계산기088 DateTime Format089 메소드에 인수를 전달하는 세 가지 방법090 가변길이 매개변수 params의 사용 방법091 선택적 인수와 명명된 인수092 메소드 오버로딩PART 3 중급 C# 실력 다지기093 일반화 메소드(제네릭 메소드)094 일반화 클래스(제네릭 클래스)095 dynamic형을 사용하는 일반화 프로그램096 LinkedList의 구현097 LinkedList 클래스를 활용한 프로그램098 Stack〈T〉의 구현099 스택을 이용한 프로그램100 Queue〈T〉의 구현101 큐를 이용한 프로그램102 컬렉션, ArrayList의 사용103 List〈T〉 컬렉션104 List〈T〉와 배열의 정렬105 배열을 내림차순으로 정렬하는 방법106 두 개의 배열을 쌍으로 정렬107 IComparable 인터페이스를 이용한 객체의 정렬108 Queue〈T〉 컬렉션의 사용 방법109 Stack〈T〉와 Polish 계산기110 Hashtable과 Dictionary〈TKey, TValue〉111 SortedList와 SortedList〈TKey, TValue〉112 인덱서113 Delegate의 기본, 배열에서 홀수와 짝수 찾기114 이름 없는 델리게이트(Anonymous Delegate)115 Func와 Action으로 델리게이트를 더 간단히 만들기116 람다식(Lambda Expression) 117 람다식의 사용118 Predicate〈T〉 델리게이트119 List〈T〉에서 Predicate〈T〉 델리게이트 사용120 LINQ의 기초121 LINQ를 이용한 조건 검색과 정렬122 LINQ의 결과를 리스트나 배열로 반환123 쿼리의 결과를 새로운 객체 컬렉션으로 저장하는 방법124 Linq, Group By로 데이터를 분류PART 4 활용 C# 비주얼 프로그래밍125 WinForm 프로젝트의 생성126 윈폼 템플릿 없이 윈폼 프로그램을 만드는 방법127 WinForm으로 Hello World 프로그램 만들기128 솔루션 및 프로젝트 파일의 위치129 Form 클래스와 두 개의 폼 띄우기130 메시지박스131 텍스트박스, 레이블, 버튼 컨트롤132 레이블에서 여러 줄의 문자열 표시133 flag를 이용한 이벤트 처리134 체크박스135 라디오버튼과 그룹박스136 로그인 창 만들기137 성적계산기138 MaskedTextBox139 스크롤바(ScrollBar)로 RGB 컬러 조정140 리스트박스에 항목을 표시하는 세 가지 방법141 콤보박스를 이용한 식당 리스트의 추가, 삭제142 CheckedListBox를 이용한 희망 여행지 리스트143 콤보박스를 이용한 학점계산기144 리스트뷰를 이용한 상품 리스트 표시145 리스트뷰의 View 모드146 TreeView와 PictureBox를 이용한 역사공부 프로그램147 Timer 컨트롤을 이용한 디지털 시계148 TrackBar와 ProgressBar149 DateTimePicker를 이용한 날짜 계산기150 TabControl을 사용한 디지털 알람시계151 WindowsMediaPlayer를 이용한 소리나는 알람시계152 WMP 컨트롤을 이용한 동영상 플레이어153 OpenFileDialog을 이용해서 메모장에서 파일 열기154 메뉴와 대화상자(폰트, 컬러)155 GDI 와 ToolStrip, StatusStrip을 사용한 그래픽 프로그램156 WPF로 Hello World 프로그램 만들기157 WPF의 레이아웃158 WPF BMI 계산기159 WPF DispatcherTimer와 깜박이는 프로그램PART 5 실무 C# 응용 프로그램 작성하기160 WPF 간단한 계산기161 WinForm 윈도우 표준 계산기 ①162 WinForm 윈도우 표준 계산기 ②163 WPF 윈도우 표준 계산기의 디자인164 WPF 디지털 시계165 WinForm 아날로그 시계166 WPF 아날로그 시계167 RotateTransform을 이용한 WPF 아날로그 시계168 WPF 몬테카를로 시뮬레이션으로 원주율 찾기169 WPF에서 WinForm 컨트롤 사용170 Chart 컨트롤 사용171 두 개의 차트 영역, 두 개의 시리즈 사용172 Chart 컨트롤을 이용한 수학 함수 그래프 그리기173 메모장 프로그램 ①174 메모장 프로그램 ②175 이미지 뷰어176 WPF 매칭 게임 ① - 디자인과 초기화177 WPF 매칭 게임 ② - 게임의 구현178 WPF Snake Bite 게임179 WPF 로그인 프로그램 ① - 디자인과 DB180 WPF 로그인 프로그램 ② - 코딩181 Access 데이터베이스 프로그래밍 - 전화번호부 ①182 데이터베이스 프로그래밍 - 전화번호부 ②183 데이터베이스 프로그래밍 - 전화번호부 ③184 SQL Server 데이터베이스 프로그래밍 ① - 디자인185 SQL Server 데이터베이스 프로그래밍 ② - DB 작성186 SQL Server 데이터베이스 프로그래밍 ③ - C#187 오목 프로그램 ① - 디자인188 오목 프로그램 ② - 바둑판 그리기189 오목 프로그램 ③ - 바둑돌 그리기190 오목 프로그램 ④ - 바둑돌을 이미지로 그리기191 오목 프로그램 ⑤ - 자료구조192 오목 프로그램 ⑥ - 오목 판정193 오목 프로그램 ⑦ - 수순 표시194 오목 프로그램 ⑧ - 게임 정보의 저장195 오목 프로그램 ⑨ - 복기 기능196 오목 프로그램 ⑩ - 중복 제거197 아두이노 센서 모니터링 ① - 아두이노와 디자인198 아두이노 센서 모니터링 ② - 센서데이터 클래스199 아두이노 센서 모니터링 ③ - 시리얼 통신200 아두이노 센서 모니터링 ④ - 데이터베이스