ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [07강] 프로젝트 실습 - 스마트 밥솥
    프로그래밍/C# 2022. 5. 29. 22:17

    목차

    프로젝트 목표와 개요
    필수 클래스와 메서드
    기획서 작성
    프로그램 화면
    메뉴와 전체 구조
    전체 구조
    코드 보기
    정리

     

    프로젝트 목표와 개요

      프로젝트 목표

      - C# 기본 문법 활용

      - 프로그래밍에 대한 이해. 논리적 사고

      - 필요한 부분을 MSDN에서 검색. 스스로 찾아 학습하는 능력

     

      프로젝트 개요

      - 전기 밥솥에서 스마트 밥솥으로 업그레이드

      - 쌀, 물, 씻기 등을 자동화

      - 가전 제품 동작을 프로그래밍으로 구현

      - 역동적인 프로그래밍 구현 -> 시각 + 청각

     

    필수 클래스와 메서드

      콘솔창 관련 클래스와 메서트

      - 화면 출력 클래스 : Console

      - 화면 출력 메서드 : Console.Beep(), Console.Clear(), Console.SetCursorPosition(), Console,SetWindowSize(), Thread.Sleep()

      - 콘솔 색상 관련 속성 : Console.BackgroundColor, Console.ForegroundColor

      - 임의의 위치로 문자열을 출력해주는 프로그램

    예시 코드

    static void Main(string[] args)
    {
        Console.SetWindowSize(100, 40);
        Random rand = new Random();
        ConsoleColor[] colors =
        {
            ConsoleColor.Blue, ConsoleColor.Cyan, ConsoleColor.Red, ConsoleColor.Yellow, ConsoleColor.Green,
            ConsoleColor.Magenta, ConsoleColor.Gray
        };
    
        while (true)
        {
            Console.Clear();
            for (int i = 0; i < 30; i++)
            {
                Console.ForegroundColor = colors[rand.Next(7)];
                Console.SetCursorPosition(rand.Next(100), rand.Next(40));
                Console.Write("Hello World!");
            }
            Thread.Sleep(200);
        }
    }

     

    기획서 작성

      기획서

      - 생각을 정리하고 문서화

      - 세부적인 기획서는 코드를 간결하게 함

      - 업그레이드 되는 프로그램

      - 기획서 항목 : 개요, 기능, 개선 사항

     

    프로그램 화면

      프로그램 화면

      - 화면 디자인이 바뀌면 코드도 바뀜

      - 화면 디자인은 사용자 인터페이스임

      - 간결하지만 시각적으로 충분한 화면 구성

     

    메뉴와 전체 구조

      메뉴 형태

      - 배경색과 전경색 활용 : Console.BackgroundColor, Console.ForegroundColor

      - 키 입력에 따라 메뉴바 이동

     

    전체 구조

      메뉴에 따른 전체 처리 구조

      - 메뉴 처리 -> 선택

    while(true)
    {
    	menuIndex = Menu(); // 메뉴 출력
        switch(menuIndex)
        {
        	case 0: // 전원처리
            break;
            case 1: // 뚜껑 처리
            break;
            ..
        }
    }

     

    코드 보기

      밥솥 데이터 구조

      - 밥솥 상태 표현 -> 열거형

        enum CookerProcess { None, Reiceing, Watering, Washing, Droping, Cooking, Completion, Keeping };

     

      - 구조체

        struct RiceCookerInfo

        {

          public vool CoverOpenClose; // 뚜껑 열기닫기

          public bool Power; // 전원 On Off

          public CookerProcess State; // 밥솥 진행 상태

          public int Rice; // 쌀의 양 g기준, 출력 떄 환산

          public int Water; // 물의 양 미리리터 기준, 출력 때 환산

          public int Number; // 인원 수

        }

     

       - 사운드 출력

          SoundPlayer

          - using System.Media

          - wav 파일 출력

        - 코드

          SoundPlayer Sound = new SoundPlayer();

          Sound.SoundLocation = "xxx.wav";

          Sound.Load();

          Sound.Play(); // 또는 Sound.PlaySync();

     

      취사 코드

      - 취사 루프

      - 쌀 넣기 전에 조사하는 코드

        전원, 뚜껑, 인원 수, 쌀, 물

     

    정리

      - 프로젝트에서 제외된 항목

        예약 취사

      - 기초 문법만으로 C# 프로그래밍 경험

      - 다양한 소재의 프로젝트

        전기 장판, 전기 청소기, 스마트 침대, 일반적인 관리 프로그램

      - MSDN 사용과 예제 코드

      - C# 프로그래밍?

        기본 문법 + 기본 클래스 라이브러리 사용

     

    '프로그래밍 > C#' 카테고리의 다른 글

    [09강] 속성과 인덱서  (0) 2022.06.13
    [08강] 클래스  (0) 2022.05.31
    [06강] 파일 입출력  (0) 2022.05.02
    [05강] 배열  (0) 2022.04.24
    [04강] C# 기본 문법  (0) 2022.04.12
Designed by Tistory.