Download presentation
Presentation is loading. Please wait.
1
비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목
2
1주차 1회 2.27
3
순서 수업계획서 검토 개인 블로그 비주얼 C# 프로그램 why .NET? C/C++ 잘 모르는 사람 프로그램 연습
비주얼프로그래밍 ACE leader에게 주소 송부 C# 문법 블로그 주소록 비주얼프로그램(Form, WPF) why .NET? C/C++ 잘 모르는 사람 프로그램 연습 버려!!! C# 최소단위 C#으로 새 인생 출발 class VS로 프로그램 작성 자동완성기능 Solution Project 시작 프로젝트 Ace leader – 박수현 카톡방
4
C 패밀리 C C++ C# .NET Framework 사용 객체지향언어 닷넷 class 를 쓰느냐 아니냐 프로그램이 쉽다
포인터 없다 .NET이 해준다 Garbage Collection 객체지향언어 class 를 쓰느냐 아니냐 포인터가 있다 비주얼프로그램 -> MFC 빠르다 포인터 => 정교한 프로그램 => 어렵다
5
VS 프로젝트 생성 템플릿 = visual C# -> Console App Solution File… Project1
시작 프로젝트로 설정 File…
8
파일탐색기 파일 구조
9
가장 작은 C#의 프로그램 class myClass { static void Main() } 자동 완성 기능 TAB 2번
10
Why .NET? JAVA – 1995, SUN -> Oracle One Source, Multi Platform
.C, .C++ .OBJ .EXE 링크 컴파일 라이브러리
11
JAVA Source .C, .C++ .OBJ JIL 링크 자바 중간언어 컴파일 JVM 자바 가상 머신 .EXE
12
C#.NET 2000년 Source .C, .C++ .OBJ 중간언어 링크 컴파일 .NET Framework
JIT : Just in Time Compile .EXE 플랫폼 = HW + OS
13
1주차 2일 3월2일
14
Contents Windows Form 다음 시간 BMI 계산기 textBox1.Text
double w = Double.Parse(textBox1.Text); // Convert.ToDouble() label3.Text = bmi.ToString(); 다음 시간 WPF – BMI 계산기 기본문법
15
Windows Programming 절차
Design WinForm WPF 속성(Property) 크기, 위치, Text… Event 설정 Coding Event 처리 함수 C# Form 1. Design 4. Coding/Code Behind C# 코딩 Event 함수 3. Event Controls 2. 속성
16
BMI 계산기 BMI 지수 = 몸무게(kg) ÷ (신장(m) × 신장(m))
17
디자인
18
이벤트 함수 등록
19
수치의 계산 연산자 산술연산자 : + - * / % -> 숫자의 계산 a + b a와 b가 숫자여야 한다 TextBox에 써있는 글자는 숫자가 아니고 문자열(string) 그래서 숫자로 바꾸어주어야 한다 Convert.ToDouble(); Double.Parse() 논리연산자 관계연산자 비트연산자 3항연산자 …
20
계산식 만들기 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);
21
실행결과 // 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() + "입니다"; }
22
복습으로 다시 프로그램해본다 솔루션 -> 마우스 오른쪽 버튼 -> 추가 -> 새프로젝트
23
오늘 작업한 파일 솔루션 탐색기 -> 마우스 오른쪽 버튼 -> 파일 탐색기에서 폴더열기
24
2주차 1일 3월6일(월)
25
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
26
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() + "입니다"; }
27
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
28
C#의 기본 문법 변수 상수 연산자로 묶으면 식(expression)이 된다
3항연산자(조건연산자) a = (a>b) ? a : b; 상수 비트연산자 & | ~ ^ >> << 정수, 실수, 문자, 문자열(string) 연산자로 묶으면 식(expression)이 된다 대입연산자 = += -= *= /= Lvalue(set)와 RValue(get) 산술연산자 + - * / % 논리연산자 && || ! 관계연산자 > >= < <= == !=
29
기본 데이터타입 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 = // 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억
30
2주차 2일 3월9일(목)
31
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);
32
2장 기본 sizeof() : p.81 자료형 변환(p.99)
숫자 문자열 ToString() (10).ToString() (52.273).ToString() 자료형의 크기를 바이트 단위로 리턴 sizeof(int) sizeof(double) sizeof(char) ToString()으로 소수점 표시 double x = ; 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()
33
간단한 계산기 4칙연산으로 확장해보자
34
간단한 4칙 계산기 Title TextBox Button
35
과제(간단한 4칙계산기)
36
========================== <다음 시간에는 여기부터> ==========================
선언문 대입문 조건문 반복문
37
3주차 1일 3월13일(월) 수시 1차
38
수시 1차(간단계산기) Label TextBox (Name: txtNo1) Label TextBox (Name: txtNo2)
Button (Name: btnPlus) Button (Name: btnMinus) Button (Name: btnTimes) Button (Name: btnDivide) Label (Name: lblResult) TextBox (Name: txtResult)
39
코딩 private void btnPlus_Click(object sender, EventArgs e) { var r = double.Parse(txtNo1.Text) + double.Parse(txtNo2.Text); txtResult.Text = r.ToString(); lblResult.Text = "(+) 결과"; } private void btnMinus_Click(object sender, EventArgs e) var r = double.Parse(txtNo1.Text) - double.Parse(txtNo2.Text); lblResult.Text = "(-) 결과"; private void btnTimes_Click(object sender, EventArgs e) var r = double.Parse(txtNo1.Text) * double.Parse(txtNo2.Text); lblResult.Text = "(*) 결과"; private void btnDivide_Click(object sender, EventArgs e) var r = double.Parse(txtNo1.Text) / double.Parse(txtNo2.Text); txtResult.Text = r.ToString("0.00"); // 소수점 2자리까지 표시 lblResult.Text = "(/) 결과";
40
수시1차 - 3월 13일(월) WPF로 작성하면 가산점 학번이름.zip으로 프로젝트 압축 bikang@konyang.ac.kr
레이블
41
3장 조건문 if 조건문의 기본적인 사용 방법을 익힌다. if 조건문과 논리 연산자를 함께 사용하는 방법을 익힌다.
switch 조건문을 이해한다
42
if 문 기본예제 3-1 홀수 짝수 구분(1)(교재 117p)
43
DateTime 구조체(struct) p.119 DateTime.Now DateTime.Now.Year
DateTime.Now.Hour 기본예제 3-2 오전과 오후 구분(1)(교재 119p) 3/13 오늘 여기까지 (문제) 입력한 숫자에 소수점이 있는지 체크하는 프로그램 string.Contains() 메서드 사용 (교재 p.133)
44
3월16일(목) 조건문(if~else, switch)
3주차 2일 3월16일(목) 조건문(if~else, switch)
45
if else 기본예제 3-3 홀수 짝수 구분(2)(교재 117p)
46
String.Contains() 메서드 // string.Contains() 메소드 string a = "abcde";
string b = "cd"; if(a.Contains(b) == true) Console.WriteLine("포함하고 있습니다"); else Console.WriteLine("포함하고 있지 않습니다"); 계산기에서 소수점 표시에 사용!
47
중첩조건문 조건문 안에 조건문 DateTime.Now.Hour을 사용하여 아침, 점심, 저녁 먹을 시간을 체크하는 프로그램을 작성하라 (11시 이전 -> 아침, 그렇지 않고 15시 이전 -> 점심, 아니면 저녁)
48
if ~ else if ~else (문제)점수를 입력하면 학점을 계산해 주는 프로그램
49
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월 -> 겨울
50
학점 계산 주의할 점: switch~case 문의 값은 정수, 문자, 문자열만 가능하다
// switch~case~default 문 Console.Write("점수 입력 : "); int score = int.Parse(Console.ReadLine()); switch (score / 10) { case 10: case 9: Console.WriteLine("A"); break; case 8: Console.WriteLine("B"); case 7: Console.WriteLine("C"); case 6: Console.WriteLine("D"); default: Console.WriteLine("F"); } 주의할 점: switch~case 문의 값은 정수, 문자, 문자열만 가능하다
51
삼항연산자 [조건식] ? [참] : [거짓] (문제) 삼항연산자를 사용하여 홀수, 짝수를 판단하는 프로그램을 작성하라
(문제) 입력받은 정수값이 자연수인지 아닌지를 삼항연산자를 사용하여 작성하라
52
정답 // 삼항연산자 ? : 로 홀수 짝수 판단 Console.Write("숫자 입력 : ");
int num = int.Parse(Console.ReadLine()); Console.WriteLine((num % 2 == 1) ? "홀수" : "짝수"); // 삼항연산자로 자연수인지 아닌지 판단 Console.Write("숫자 입력 : "); int n = int.Parse(Console.ReadLine()); Console.WriteLine((n > 0) ? "자연수" : "자연수 아님");
53
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("다른 키"); }
54
3월20일(월) 수시 2차(조건문 Paper 시험)
4주차 1일 3월20일(월) 수시 2차(조건문 Paper 시험)
55
인덱스변수를 루프안에서 변경시키면 절대 안됨
반복문 (for) // 10번 반복한다 for(int i=0; i<10; i++) Console.WriteLine(i); for(int i=0; i<10; i++) Console.WriteLine(“{0} 출력”, i + 1); // 15부터 50까지 5씩 증가한다 for(int i=15; i<=50; i+=5) Console.WriteLine(i); for(int i=1; i<=9; i++) Console.WriteLine(i); 인덱스 변수 인덱스변수를 루프안에서 변경시키면 절대 안됨
56
반복문 연습 2,4,6,8,10 출력 1,2,4,8,16,32,….,1024 출력 1~10000 사이의 7의 배수만 출력
1,2,4,8,16,32,….,1024 출력 1~10000 사이의 7의 배수만 출력 정수 n을 입력받아 1~n까지 출력 정수 두개(n1, n2)를 입력받아 n1~n2까지 출력 구구단(3단) i 가 1~9까지 변화할 때, 3 x i = 곱한 결과를 출력 3 x 1 = 2 6 9 4 12 5 15 18 7 21 8 24 27
Similar presentations