프로그래밍/C

C언어 22주차 과제

yooongs 2021. 3. 11. 18:13

# 제출안내

 1. 방법 : 본인 블로그에 작성 후 본 게시판에 링크를 업로드

           또는 본 게시판에 작성. 제목은 '투자노트 금융공학 퀀트 프로그래밍 과정 x주차과제' 등으로 작성 

           (※ 본 게시판에 작성한 내용은 주기적으로 삭제 및 정리되오니 강의 내용을 가지고

              있으시려면 본인 블로그에 작성하시오)

 2. 양 : 최종과제 스크린샷 1장 이상 첨부. 스크린샷을 반드시 첨부하시오.

 3. 기한 : 매주 일요일 오후 12시 전까지

 

 

# 기본과제 및 제출 양식

 1. 파일 편집을 위해 윈도우 바탕화면에서 오른쪽 버튼을 눌러 '새로만들기'를 선택하고, '텍스트 문서' 파일(txt)을 생성하고, 파일을 적당한 디렉터리에 넣은 후 아래 문항에 답하시오. (3시간 소요)

 

  가. 텍스트 파일을 열고 다음 값을 넣고 저장하시오. 자료는 이름,키,몸무게,혈액형 이다.

    

    오리,160,70,A

    염소,170,80,B

    돼지,180,70,A

    소,150,50,O

 

  나. 위 값을 불러와 저장할 적당한 자료구조를 만들고, 오리 염소 돼지 소의 데이터를 저장하기 위해 4개의 배열을 만드시오. 0은 DUCK, 1은 GOAT, 2는 PIG, 3은 COW 로 define 하여 가독성을 높여보시오.

  다. fscanf 의 용법은 아래와 같다.

 

    fscanf(파일포인터,속성값,변수들주소);

 

   이를 암기하시오. 또, 이는 scanf 와 매우 비슷함을 확인하시오. 이를 이용하여 텍스트 파일의 '이름'은 char*또는 char[]으로, '키'와 '몸무게'는 int로, '혈액형'은 char로 받아보시오. https://wikidocs.net/12742#4-fprintf-fscanf 를 참조하시오. 이를 파일의 끝까지 받아오도록 해 보시오.

  라. '다'에서 받아온 내용을 printf 해보시오. 이를 파일의 끝까지 출력하도록 해 보시오.

  마. 돼지의 혈액형이 'AB'형인데 잘못 기록되었다고 한다. 이를 받아오기 위해 코드를 적당히 수정하고, 제대로 불러져 왔는지 printf 해 보시오. 즉, 혈액형을 2글자까지 받아오게 해 보시오.

실행 코드

  

실행 결과
실행 결과 (돼지 혈액형 수정)

 2. fopen을 이용하여, 파일이 없다면 'test.csv'를 생성하고, 있다면 덮어쓰는 모드로 불러오는 알고리즘 1줄을 구현하시오. https://blockdmask.tistory.com/392 를 참조하시오. (3시간 소요)

 

FILE *fp = fopen("test.csv", "w");

 

  가. fprintf 의 용법은 아래와 같다.

 

    fprintf(파일포인터,속성값,변수들);

 

  이를 암기하시오. 또, 이는 printf와 매우 비슷함을 확인하시오.

 

 

  나. 다음 내용을 담을 적절한 자료구조를 설계하고 값을 넣으시오. 자료는 이름,1인분무게,가격,고기등급 이다.

 

   오리고기, 100, 10000, A

   염소고기, 200, 20000,B

   돼지고기, 150,5000,A

   소고기, 200, 30000,B

 

  다. 설계한 자료구조와 입력한 자료를 바탕으로 다음과 같은 양식으로 fprintf 해보시오.

   무게의 단위:~g,  가격:~원,  고기등급:~등급과 같이 기록하시오.

   예를들어, "오리고기, 100g, 10000원, A등급" 과 같이 출력되도록 하고, 이를 데이터의 끝까지 진행해보시오.

 

  라. scanf로 이름,무게,가격,고기등급을 입력받으시오. 닭고기,300,15000,A를 입력 받은 뒤 아까 만든 자료에 추가하여 넣고 이를 바탕으로 "닭고기, 300g, 15000원, A등급"을 파일에 써 보시오.

실행 코드
실행 결과
temp.txt 파일에 내용이 추가됨

 

# 심화과제 제출 양식( 안해도 됨 )

 1. 다음은 2020 수능 수학 정답표와 문항별 배점 자료이다.

    http://www.suneung.re.kr/boardCnts/fileDown.do?fileSeq=a783e596b99cf626c295f8ba697f48fc

 가. 이를 적당한 자료구조를 만들고 값을 넣으시오. 또는, 파일로 만든 뒤 읽어오시오

 

 나. 다음은 응시자의 제출 답안 현황이다. 각 응시자별 텍스트 파일로 제출 답안 자료를 만드시오. 아래 자료를 그대로 복사 붙여넣기 하여 사용하시오.

    오리.csv : 5 3 2 5 4 3 2 5 3 4 4 2 1 4 2 3 5 1 5 1 1 4 15 2 137 5 8 450 29 64

    염소.csv : 5 3 2 5 4 3 3 5 3 4 4 3 1 3 2 3 3 1 1 1 3 4 15 2 37 5 8 450 30 32

    돼지.csv : 4 3 2 5 4 3 3 5 3 3 4 2 1 4 3 3 5 1 5 1 5 4 15 2 137 8 5 450 29 60

    소.csv    : 5 3 2 5 4 3 2 5 3 4 4 2 1 4 2 3 4 1 5 1 5 4 15 2 100 5 8 45 29 32

 

다. '2'에서 만든 제출답안을 적절한 방법으로 불러와 변수에 담으시오.

 

라. '3'에서 불러온 답안을 정답표와 비교하여 채점하고, 총점을 변수에 담은 후 화면에 출력하시오.

 

마. 채점시 정오표를 오리정오표.csv, 염소정오표.csv ... 등으로 만들고 어떤 문항이 맞고 어떤 문항이 틀렸는지 파일로 만들어 보시오. 문항번호와 정오여부(O,X)를 파일로 출력하시오.

  예) 1 O, 2 O, 3 O, 4 X, 5 O

       6 X, 7 O, 8 X, 9 O, 10 O

       11 O, 12 X .........

 

바. 92점 이상이면 1등급, 84점 이상이면 2등급, 76점 이상이면 3등급, 60점 이상이면 4등급으로 판단하여 등급을 변수에 담은 후 화면에 출력하시오.

 

   

 2. 환차익이란 무엇인지 조사한 후, 다음 문항에 답하시오.

  가. 'USD.txt' 파일을 만든 후, https://finance.naver.com/marketindex/exchangeDetail.nhn?marketindexCd=FX_USDKRW 에 접속하여 하단에 있는 '일별시세'10개 전체를 복사하여 붙여넣으시오. 또한, 2페이지로 가서 복사하여 붙여넣으시오. 3페이지로 가서 복사하여 붙여넣으시오. 이를 10페이지까지 계속하시오.

  나. 만든 파일을 c에서 한줄씩 불러와 적절한 자료구조를 만든 뒤 입력하시오.

  다. 현찰거래에 대해 매수일자와 매수량을 입력받고, 매도일자를 정하면 환차익이 얼마인지 계산하시오. 단, 매수일은 매수환율(현찰) 매도일은 매도환율(현찰)을 이용하시오. 매수량 전체를 매도일에 한꺼번에 판다고 가정하시오.

  라. 페이퍼거래에 대해 매수일자와 매수량을 입력받고, 매도일자를 정하면 환차익이 얼마인지 계산하시오. 단, 매수일은 매수환율(송금) 매도일은 매도환율(송금)을 이용하시오. 매수량 전체를 매도일에 한꺼번에 판다고 가정하시오.

  마. 'JPY.txt'파일을 만든 후, https://finance.naver.com/marketindex/exchangeDetail.nhn?marketindexCd=FX_JPYKRW 에 접속하여 하단에 있는 '일별시세'10개 전체를 복사하여 붙여넣으시오. 또한, 2페이지로 가서 복사하여 붙여넣으시오. 3페이지로 가서 복사하여 붙여넣으시오. 이를 10페이지까지 계속하시오.

  바. 만든 파일을 c에서 한줄씩 불러와 적절한 자료구조를 만든 뒤 입력하시오.

  사. 'USDJPY.txt'파일을 만든 후, https://finance.naver.com/marketindex/worldExchangeDetail.nhn?marketindexCd=FX_USDJPY 에 접속하여 우측 하단에 있는 '일별시세'7개 전체를 복사하여 붙여넣으시오. 또한, 2페이지로 가서 복사하여 붙여넣으시오. 3페이지로 가서 복사하여 붙여넣으시오. 이를 100개가 될때까지 계속하여 'JPY.txt'와 양이 같도록 하시오.

  아. 만든 파일을 c에서 한줄씩 불러와 적절한 자료구조를 만든 뒤 입력하시오.

  자. 매일매일의 원 -> 엔-> 달러 환율과 원 -> 달러 환율을 비교하여 보시오. 원->엔 구간은 매수환율(송금)을 이용하고, 엔->달러 구간은 엔달러를 그대로 적용하시오.

  차. 매일매일의 원 -> 달러 -> 엔 환율과 원 -> 엔 환율을 비교하여 보시오. 원->달러 구간은 매수환율(송금)을 이용하고, 달러->엔 구간은 달러엔을 그대로 적용하시오.

  카. '자~차'를 100일간에 대해 구한 후 비교하여 보시오. 특히, 이익이 나는 때와 그 양(%)이 얼마나 되는지 계산해 보시오.

  타. 아비트라지와 환가료율에 대해 조사하고, '자~카'와 같은 차익거래를 방지하려면 엔->달러의 환가료율을 최대 얼마로 하여야 하는지 결정해 보시오. 단, 엔->달러 환가료율과 달러->엔 환가료율은 같다고 가정함.

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

C언어 21주차 과제  (0) 2021.03.02
C언어 20주차 과제  (0) 2021.03.02
C언어 18주차 과제  (0) 2021.02.14
C언어 16주차 과제  (0) 2021.01.29
C언어 15주차 과제  (0) 2021.01.12