비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목
1주차 1회 2.27
순서 수업계획서 검토 개인 블로그 비주얼 C# 프로그램 why .NET? C/C++ 잘 모르는 사람 프로그램 연습 비주얼프로그래밍 ACE leader에게 주소 송부 C# 문법 블로그 주소록 비주얼프로그램(Form, WPF) why .NET? C/C++ 잘 모르는 사람 프로그램 연습 버려!!! C# 최소단위 C#으로 새 인생 출발 class VS로 프로그램 작성 자동완성기능 Solution Project 시작 프로젝트 Ace leader – 박수현 카톡방
C 패밀리 C C++ C# .NET Framework 사용 객체지향언어 닷넷 class 를 쓰느냐 아니냐 프로그램이 쉽다 포인터 없다 .NET이 해준다 Garbage Collection 객체지향언어 class 를 쓰느냐 아니냐 포인터가 있다 비주얼프로그램 -> MFC 빠르다 포인터 => 정교한 프로그램 => 어렵다
VS 프로젝트 생성 템플릿 = visual C# -> Console App Solution File… Project1 시작 프로젝트로 설정 File…
파일탐색기 파일 구조
가장 작은 C#의 프로그램 class myClass { static void Main() } 자동 완성 기능 TAB 2번
Why .NET? JAVA – 1995, SUN -> Oracle One Source, Multi Platform .C, .C++ .OBJ .EXE 링크 컴파일 라이브러리
JAVA Source .C, .C++ .OBJ JIL 링크 자바 중간언어 컴파일 JVM 자바 가상 머신 .EXE
C#.NET 2000년 Source .C, .C++ .OBJ 중간언어 링크 컴파일 .NET Framework JIT : Just in Time Compile .EXE 플랫폼 = HW + OS
1주차 2일 3월2일
Contents Windows Form 다음 시간 BMI 계산기 textBox1.Text double w = Double.Parse(textBox1.Text); // Convert.ToDouble() label3.Text = bmi.ToString(); 다음 시간 WPF – BMI 계산기 기본문법
Windows Programming 절차 Design WinForm WPF 속성(Property) 크기, 위치, Text… Event 설정 Coding Event 처리 함수 C# Form 1. Design 4. Coding/Code Behind C# 코딩 Event 함수 3. Event Controls 2. 속성
BMI 계산기 BMI 지수 = 몸무게(kg) ÷ (신장(m) × 신장(m))
디자인
이벤트 함수 등록
수치의 계산 연산자 산술연산자 : + - * / % -> 숫자의 계산 a + b a와 b가 숫자여야 한다 TextBox에 써있는 글자는 숫자가 아니고 문자열(string) 그래서 숫자로 바꾸어주어야 한다 Convert.ToDouble(); Double.Parse() 논리연산자 관계연산자 비트연산자 3항연산자 …
계산식 만들기 BMI 지수 = 몸무게(kg) ÷ (신장(m) × 신장(m)) textBox1.Text => 문자열(string) textBox2.Text => 문자열(string) 계산 결과(double)을 label.Text에 표시 : ToString() 사용 label3.Text = bmi.ToString(); string + string => string을 합쳐준다 textBox1 textBox2 double h = Convert.ToDouble(textBox1.Text); double w = Double.Parse(textBox2.Text);
실행결과 // BMI계산 버튼을 누르면 수행되는 이벤트 함수 // BMI 지수 = 몸무게(kg) ÷ (신장(m) × 신장(m)) private void button1_Click(object sender, EventArgs e) { //주석(commnet)처리: ^K - C, 풀어줄 때는 ^K - U //MessageBox.Show("BMI 계산 버튼 눌렸습니다"); double h = Convert.ToDouble(textBox1.Text); double w = Double.Parse(textBox2.Text); double bmi = w / (h * h); label3.Text = "당신의 BMI는 " + bmi.ToString() + "입니다"; }
복습으로 다시 프로그램해본다 솔루션 -> 마우스 오른쪽 버튼 -> 추가 -> 새프로젝트
오늘 작업한 파일 솔루션 탐색기 -> 마우스 오른쪽 버튼 -> 파일 탐색기에서 폴더열기
2주차 1일 3월6일(월)
WPF BMI계산기 – 1. 디자인 Form : Label.Text WPF : Label.Content <Window x:Class="_003_WPFBMI.MainWindow" Title="MainWindow" Height="350" Width="350"> <Grid Background="Orange"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <StackPanel Margin="10" Orientation="Horizontal"> <Label Width="100">키(m)</Label> <TextBox Name="txtHeight" Width="150"></TextBox> </StackPanel> <Label Width="100">체중(kg)</Label> <TextBox Name="txtWeight" Width="150"></TextBox> <Button Name="btnBMI" Margin="110, 10,10,10" Width="100" Height="30">BMI계산</Button> <Label Name="lblResult" Margin="10" Width="250">결과는 : </Label> </Grid> </Window> Form : Label.Text WPF : Label.Content
WPF BMI 계산기 – code behind private void btnBMI_Click(object sender, RoutedEventArgs e) { // 여기에 BMI 계산 코드 삽입 //MessageBox.Show("BMI 계산 버튼 눌렸습니다"); double h = Convert.ToDouble(txtHeight.Text); double w = Double.Parse(txtWeight.Text); double bmi = w / (h * h); // Form에서는 Label.Text 인데, WPF에서는 label.Content lblResult.Content = "당신의 BMI는 " + bmi.ToString() + "입니다"; }
WPF 프로그래밍 WPF는 XAML 파일에서 디자인을 한다 Extensible Application Markup Language(자멜) Tag 를 사용한다 <Button>abcd</Button> <Button Content=“abcd”/> 속성 : Name, Margin, HorizontalAlignment, VerticalAlignment, Backgound, Width, Height, FontSize, Foreground… // 모든 속성은 대문자로 시작한다 <Button Name=“btn1” Margin=“10” …> 이벤트도 Xaml에서 만들어준다. 또는 컨트롤을 선택하고 속성창에서 만들거나, 더블클릭해서 만들 수 있다 주의할 점: Form하고 WPF는 90% 같지만 다른 것도 있다. Label.Text / Label.Content abcd
C#의 기본 문법 변수 상수 연산자로 묶으면 식(expression)이 된다 3항연산자(조건연산자) a = (a>b) ? a : b; 상수 비트연산자 & | ~ ^ >> << 정수, 실수, 문자, 문자열(string) 연산자로 묶으면 식(expression)이 된다 대입연산자 = += -= *= /= Lvalue(set)와 RValue(get) 산술연산자 + - * / % 논리연산자 && || ! 관계연산자 > >= < <= == !=
기본 데이터타입 int x = 10; long a = 100L; short w = 32767 // 16비트 double y = 10.5; char z = 'a'; string s = "abcde"; // C에서는 char[40] Console.WriteLine(123); Console.WriteLine(123.45); Console.WriteLine('a'); Console.WriteLine("abc"); Console.WriteLine(x); Console.WriteLine(y); Console.WriteLine(z); Console.WriteLine(s); int x = 10; long a = 100L; short w = 32767 // 16비트 2^10 = 1K(천) 2^20 = 1M(백만) 2^30 = 1G(십억) 2^40 = 1T(일조) int는 32비트 2^32 개를 표현 +-를 한 비트가 쓰면 -2^31 ~ +2^31 2^31 = 2^30*2 = 약 20억
2주차 2일 3월9일(목)
2장 기본 자료형 검사(p.92) var : 자료형을 자동으로 저장 (p.94) 입력(p.97) GetType() a.GetType() (1.1).GetType() var : 자료형을 자동으로 저장 (p.94) var number = 100; local 변수에서만 사용가능(메서드 안에서만) 초기화해야 함 입력(p.97) string Console.ReadLine() // 한 줄의 문자열을 입력 string input = Console.ReadLine(); int x = Convert.ToInt32(input); Console.Write("Enter Input : "); string input = Console.ReadLine(); int val = Convert.ToInt32(input); Console.WriteLine(val);
2장 기본 sizeof() : p.81 자료형 변환(p.99) 숫자 문자열 ToString() (10).ToString() (52.273).ToString() 자료형의 크기를 바이트 단위로 리턴 sizeof(int) sizeof(double) sizeof(char) ToString()으로 소수점 표시 double x = 52.273103; x.ToString(“0.0”) x.ToString(“0.000”) 자료형 변환(p.99) 강제 형변환(casting) var a = (int)10.0; int x = (int)y; 문자열 덧셈 “123”+45 “12345” 즉, 문자열 덧셈이 우선 문자열 숫자로 int.Parse() long.Parse() Convert.ToInt32()
간단한 계산기 4칙연산으로 확장해보자
간단한 4칙 계산기 Title TextBox Button
과제(간단한 4칙계산기)
========================== <다음 시간에는 여기부터> ========================== 선언문 대입문 조건문 반복문
3주차 1일 3월13일(월) 수시 1차
수시1차 - 3월 13일(월) WPF로 작성하면 가산점 학번이름.zip으로 프로젝트 압축 bikang@konyang.ac.kr 레이블
3장 조건문 if 조건문의 기본적인 사용 방법을 익힌다. if 조건문과 논리 연산자를 함께 사용하는 방법을 익힌다. switch 조건문을 이해한다
if 문 기본예제 3-1 홀수 짝수 구분(1)(교재 117p)
DateTime 구조체(struct) p.119 DateTime.Now DateTime.Now.Year DateTime.Now.Hour 기본예제 3-2 오전과 오후 구분(1)(교재 119p) 3/13 오늘 여기까지 (문제) 입력한 숫자에 소수점이 있는지 체크하는 프로그램 string.Contains() 메서드 사용 (교재 p.133)
if else 기본예제 3-3 홀수 짝수 구분(2)(교재 117p)
중첩조건문 조건문 안에 조건문 DateTime.Now.Hour을 사용하여 아침, 점심, 저녁 먹을 시간을 체크하는 프로그램을 작성하라 (11시 이전 -> 아침, 그렇지 않고 15시 이전 -> 점심, 아니면 저녁)
if ~ else if ~else (문제)점수를 입력하면 학점을 계산해 주는 프로그램
switch 문 switch(비교값) { case 값1: 문장 break; case 값2: 문장 break; … default: 문장 break; } (문제) 입력한 숫자가 홀수인지 짝수인지 판단하는 프로그램을 switch 문으로 작성하라 (문제) (break없는 case문) 3,4,5월 -> 봄 6,7,8월 -> 여름 9,10,11월 -> 가을 12,1,2월 -> 겨울
삼항연산자 [조건식] ? [참] : [거짓] (문제) 삼항연산자를 사용하여 홀수, 짝수를 판단하는 프로그램을 작성하라 (문제) 입력받은 정수값이 자연수인지 아닌지를 삼항연산자를 사용하여 작성하라
Console.ReadKey() ConsoleKeyInfo info = Console.ReadKey(); switch(info.Key) { case ConsoleKey.UpArrow: Console.WriteLine("위"); break; case ConsoleKey.DownArrow: Console.WriteLine("아래"); case ConsoleKey.LeftArrow: Console.WriteLine("왼쪽"); case ConsoleKey.RightArrow: Console.WriteLine("오른쪽"); default: Console.WriteLine("다른 키"); }