한 눈에 끝내는 고랭 기초
    • 01
      시작하기에 앞서
    • 강의대상
      Go란?
      실습 환경 구축 - 구름IDE
      Hello goorm! 출력해보기
    • 02
      변수와 상수
    • 콘솔 출력 함수의 기본
      변수의 선언과 초기화
      상수의 선언과 초기화
      간단한 덧셈
      잘못된 신상정보
    • 03
      연산자
    • 연산자 종류
      연산자 우선순위
      콘솔 입력 함수의 기본
      간단한 덧셈과 곱셈
      몫과 나머지
    • 04
      자료형
    • 자료형의 종류와 특징
      문자열의 표현
      자료형의 변환
      강제 형 변환
    • 05
      콘솔 출력과 입력 함수
    • 콘솔 출력 함수(Print)
      콘솔 입력 함수(Scan)
      정돈된 표
      신상정보 입력과 출력
    • 06
      반복문 - for
    • 오로지 for
      구구단
      빛나는 이등변삼각형
    • 07
      조건문 - if/else
    • 조건에 따른 실행과 흐름 분기
      7과 9의 배수
      두 수의 차
    • 08
      분기문 - switch
    • swich문에 의한 선택적 실행
      안좋은 계산기
    • 09
      제어문
    • break, continue, goto문
      구구단2
      두 수를 더하면 99
    • 10
      컬렉션
    • 배열(Array)
      슬라이스(Slice)
      맵(Map)
      역행렬
      가장 긴 이름
      중간고사 평균 점수
    • 11
      함수
    • Go언어에서의 함수
      전역변수와 지역변수
      매개변수
      반환값(리턴값)
      익명 함수
      오름차순 정렬
      아이패드를 사주는 조건
      역학적 에너지
    • 12
      클로저
    • 외부 변수 접근 : 클로저
      동전 정리
    • 13
      구조체와 메소드
    • 구조체
      메소드
      성적 저장 프로그램
      역학적 에너지2
    • 14
      인터페이스(interface)
    • 메소드의 집합 인터페이스
      직육면체와 원기둥
    • 15
      defer와 panic()
    • 지연 처리 defer
      종료하는 panic(), 복구하는 recover()
      엘리베이터
      중간고사 평균 점수2
    • 16
      에러 처리
    • 에러 처리의 기본
      에러 출력 및 처리
      중간고사 평균 점수3
    • 17
      고루틴(Goroutine)
    • 비동기 프로세스의 기본
      고루틴의 활용
      고루틴 실습
    • 18
      채널(Channel)
    • 고루틴의 데이터 통로 : 채널
      비동기 채널과 버퍼
      동기 채널
      채널 닫기
      송신 전용, 수신 전용 채널
      채널 select문
      고루틴 실습2
      메시지 전송
      동기 채널 실습
      비동기 채널 실습
    • 19
      패키지(package)
    • 패키지의 개념
    • 20
      실전 프로젝트 - 마일리지 상점
    • 프로젝트를 시작하기 앞서
      실습모드에서 실습
      마일리지 상점의 주요 기능
      필수 구조체와 매인 메뉴
      잔여 수량, 잔여 포인트 구현
    • 21
      실전 프로젝트 - 주문하기, 장바구니 담기
    • 구매 구현(1)
      구매 구현(2)
      장바구니에 담기
      장바구니 확인(1)
      장바구니 확인(2)
    • 22
      실전 프로젝트 - 고루틴으로 배송하기
    • 배송 상태 확인(1)
      배송 상태 확인(2)
      배송 상태 확인(3)
      최종 코드
    성적 저장 프로그램
    배우기
    13 구조체와 메소드
    성적 저장 프로그램

    구조체를 배우고 프로그램의 스케일이 커졌습니다. 예제로 쉽게 접할 수 있었던 성적 저장 프로그램을 한 단계 발전시키겠습니다. 지금까지는 개인 성적에 관한 프로그램만 실습했습니다. 그런데 이번 챕터에서 학습한 구조체를 활용하면 개인 정보를 객체로 사용해 다수 정보를 저장할 수 있습니다. 그래서 이번 실습으로 학급 전체 학생들의 정보와 시험 점수를 입력하고 출력해보겠습니다.


    구조체의 필드 값으로는 학생의 이름, 학생의 성별, 그리고 과목과 점수들입니다. 여기서 과목과 점수는 맵으로서 key 값은 과목, value 값은 점수로 저장합니다. 구조체를 이용해 학생 수만큼 객체를 만들고 슬라이스에 객체들을 저장합니다. 마지막으로 학생들의 정보를 모두 출력합니다.


    객체들을 슬라이스에 저장하는 것은 배우지 않았습니다. 하지만 구조체도 결국 int와 float32와 같이 똑같이 취급되는 자료형이라는 것을 생각하고 실습하기 바랍니다. 

    실습 내용
    • 학생 정보를 담는 구조체 student를 만듭니다.
    • student 구조체 안에는 학생 이름 정보를 담는 string형 변수, 학생 성별 정보를 담는 string형 변수, key 값으로 과목 이름, value 값으로 점수를 담는 맵형 컬렉션이 필드값으로 선언됩니다.
    • 생성자를 선언합니다.
    • 사용자에게 입력받는 정보는 학생 수, 과목 수, 이름, 성별, 과목 이름, 점수이고, 각각 int, int, string, string, string, int형으로 선언합니다.
    • student 구조체의 객체들을 담는 student형 슬라이스를 생성합니다.
    • 사용자에게 입력받는 학생 수와 과목 수에 따라 입력받는 개수가 다릅니다.
    • 출력할 때는 학생마다 '----------'를 표시해 구분합니다.
    • 성별은 여자는 F, 남자는 M으로 입력 받습니다.


    입력


    첫 번째 줄에 학생 수와 과목 수를 띄어쓰기 해서 양의 정수로 입력합니다.

    두 번째 줄부터 입력한 학생 수와 과목 수만큼 학생 이름 학생 성별을 띄어쓰기 해서 입력하고 개행해서 과목 이름 과목 점수를 띄어쓰기 해서 입력합니다.

    출력


    ----------과 ---------- 사이에 입력한 학생 정보들이 출력됩니다. 

    입/출력 예시
    :
    공백
    :
    줄바꿈
    :
    예시 1
    입력
    54
    kimF
    kor57
    math90
    eng60
    science50
    leeF
    kor78
    math45
    eng80
    science100
    yunM
    kor67
    math40
    eng83
    science97
    namM
    kor88
    math91
    eng80
    science31
    kimM
    kor42
    math29
    eng100
    science100
    출력
    ----------
    kimF
    science50
    kor57
    math90
    eng60
    ----------
    leeF
    kor78
    math45
    eng80
    science100
    ----------
    yunM
    science97
    kor67
    math40
    eng83
    ----------
    namM
    math91
    eng80
    science31
    kor88
    ----------
    kimM
    kor42
    math29
    eng100
    science100
    ----------
    ⋇ 입출력 형식을 잘 지켜주세요
    질문하기