본문 바로가기

Visual Programming

Visual Programming #3-1

#1 C#의 출력 방법
 

  1. Console 프로그램
    1) Console.WriteLine() : ()안의 내용 출력(줄바꿈O)
    2) Console.Write(): ()안의 내용 출력(줄바꿈X)
    * 문자열은 그대로 출력하지만 문자열이 아닌 형식은 별도 형식 지정이나 문자열 변환이 필요함

  2. Format({ })
    Console.WriteLine(format, arg1, arg2 ...);
    예시) Console.WriteLine("2의 배수 = {0} {1} {2}", 2,4,6);
    ▶ {}을 통해 출력 가능 ({}안의 숫자는 출력하고자 하는 ,로 나열되는 데이터들의 출력 순서 지정)
    String.Format 이용
    string primes;
    primes = String.Format("2의 배수 = {0} {1} {2}", 2,4,6);
    Console.WriteLine(primes);
    lbl1.Text = primes;

  3. 두 변수 출력 방법
    예를 들어 'int a = 100; double b = 2.34;' 로 초기화한 경우 Console.Write(a, b); 할 시 에러가 발생한다.
    문자열로 출력해야하며 ','로 연결해서 출력할 수 없다. 그러하여 아래의 3가지 방법으로 출력할 수 있다.

    1) 문자열로 바꾸어 출력: '문자 + 숫자' 가 되면 숫자가 문자열로 변환된다
         ▶ Console.Write("a = " + a + ", b =" + b);
    2) 형식 문자열로 출력: {인덱스:형식 지정자}
         ▶ Console.Write("a = {0}, b = {1} , a,b);
    3) $ 기호 이용해 출력
         ▶ Console.Write($"a = {a}, b = {b});

  4. 형식지정자 <책p43, 입문10>
    - 형식지정자를 이용해 다양한 형태로 출력할 수 있다.
    - Console.WriteLine()과 String.Format(), ToString()에서도 사용 가능하다
    - {인덱스:형식지정자}
      ▷ 형식지정자 옆에 숫자가 붙으면 대게 소수자리수, 최소자릿수 등 자릿수를 의미한다.
    ※ 대표 형식지정자: C(통화) | N(천단위 구분 기호 숫자) | D(십진수(정수)) | F(소수(고정자릿수)) | E(지수(과학))
         예시: {0:F2}→소수점 2자리 까지  |  {0,C} → 첫 번째 인수를 통화형으로 표시
                  {2:N3} → 세 번째 인수에 천단위 구분 기호와 함께 소수자릿수 3자리를 포함한다.

    String.Format()과 ToString()의 차이점:
     - String.Format(): 문자열 템플릿 내에서 {인덱스:형식 지정자} 형태로 형식 지정
       ex) string name = "홍길동"; int age = 30;
             string formattedString = String.Format("이름: {0}, 나이: {1}", name, age);

    - ToString(): 객체 자체의 형식을 지정하므로 {} 사용하여 인덱스 지정할 필요 없음
       ex) int number = 1234;      string s = number.ToString("N");   >> 1,234
  5. 커스텀 지정자
    # 0 . , ; 사용한다
    #,#.## → 세 자리마다 콤마(,) 표시하고 소수점 두 자리까지 표시
    #.## → 소수점 아래 두 자리까지만 표시
      예시: Console.Write("{0:#,#.###}", 12345.6789); ▷ 12,345.679

 

 

 

#2 BMI 계산기 업그레이드

 

[ 업그레이드 부분 ]

  1. BMI에 따라 판정 기준 출력
  2. 판정 기준에 따른 pictureBox 색깔 변경

[컨트롤명]

체중(kg) : lblW  -  textbox: txtW
키(cm): lblH - textbox: txtH
bmi계산: btnBMI
BMI = 26.73: lblBMI
판정: 경도비만 :lblResult

 

 

[수정 사항]

  1. 판정기준: if-else문 이용 (이중 조건은 && 사용)
  2. pictureBox 색상 변경은 .BackColor 이용
 private void btnBMI_Click(object sender, EventArgs e)
 {
     double h = double.Parse(txtH.Text);
     double w = double.Parse(txtW.Text);
     h /= 100;

     double bmi = w / (h * h);


    lblBMI.Text = string.Format("BMI = {0:F2}", bmi);    //BMI 소수점 2자리수까지 표시하기
    

     //비만도 판정
     if (bmi >= 40)
     {
         lblResult.Text = "판정: 고도비만";
         pictureBox1.BackColor = Color.Red;
     }
     else if(bmi >= 30)                         //(30 <= bmi && bmi < 40)  *블록잡고 ctrl + kc : Comment
     {
         lblResult.Text = "판정: 비만";
         pictureBox1.BackColor = Color.OrangeRed;
     }
     else if (bmi >= 25)                       //(25 <= bmi && bmi < 30)
     {
         lblResult.Text = "판정: 경도비만";
         pictureBox1.BackColor = Color.YellowGreen;
     }
     else if (bmi >= 20)                        //(20 <= bmi && bmi < 25)
     {
         lblResult.Text = "판정: 정상체중";
         pictureBox1.BackColor = Color.Green;
     }
     else {
         lblResult.Text = "판정: 저체중";
         pictureBox1.BackColor = Color.Blue;
     }
 }

 

 

 

 

#2 로그인 창 만들기

id가 abcd 이고 pw가 1234 이면 '로그인 성공' 아니면 '로그인 실패' 출력

 

[컨트롤명]

아이디: lblid - textbox: txtid
패스워드: lblpw - textbox; txtpw
로그인: btnlogin
로그인성공/실패: txtResult

 

[확인 요인]
입력받는 값은 string으로 받기 때문에, 별도 형식 변환 필요 없음

private void btnlogin_Click(object sender, EventArgs e)
{
    if (txtid.Text == "abcd" && txtpw.Text == "1234")
    {
        txtResult.Text = "로그인 성공";
    }
    else
    {
        txtResult.Text = "로그인 실패";
    }
}

'Visual Programming' 카테고리의 다른 글

WPF  (0) 2025.05.12
Visual Programming과 Firebase 연동  (0) 2025.04.28
Visual Programming #4  (0) 2025.03.17
Visual Programming #3-2  (0) 2025.03.16
Visual Programming #1-#2  (0) 2025.03.11