★ 「2019학년도 1학기」 수/업/노/트 ★
by. 동동매니저 >_<
▶ 일자 : 2019년 03월 05일 (화)
▶ 과목 : 자료구조 1 실습
▶ 담당 교수님 : SCH 성낙준 교수님
※ 실습 내용을 요약해보면?
▶ C언어로 간단한 프로그램을 만들어보기 (개강 첫 주라서 어렵지는 않았죠... 하지만, 다른 친구들이 배우지 않은 파일 입출력...)
※ 오늘 실습한 문제!!
▶ 문제 1
0~99 범위 내의 난수를 10개 생성하고, data.txt 파일에 출력하시오.
(단, Seed 값은 매 번 다르게 하며, 표준 출력(화면)으로도 같이 출력할 것!!)
★ 입력 예시 (stdin)
없음
★ 출력 예시 (stdout)
0 = 41
1 = 12
2 = 74
3 = 7
4 = 92
5 = 46
6 = 75
7 = 92
8 = 52
9 = 89
★ 출력 예시 (data.txt)
41
12
74
7
92
46
75
92
52
89
▶ 문제 2
출력한 data.txt 파일을 읽어서, 순서대로 출력하시오.
★ 입력 예시 (data.txt)
41
12
74
7
92
46
75
92
52
89
★ 출력 예시 (stdout)
0 = 41
1 = 12
2 = 74
3 = 7
4 = 92
5 = 46
6 = 75
7 = 92
8 = 52
9 = 89
※ 문제를 풀어보면? (소스 코드)
★ 문제 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 생성할 난수의 개수
#define RAND_COUNT 10
int main(void){
int i; // 반복 루프 제어 변수
FILE *fp=fopen("data.txt","wt"); // 파일을 쓰기 모드로 열기
srand(time(NULL)); // 난수의 seed 값을 현재 시각으로 설정
for(i=0;i<RAND_COUNT;i++){ // RAND_COUNT 만큼 반복
int rnd=rand()%100; // 난수 생성 (0~99)
printf("%d = %d\n",i,rnd); // 표준 출력으로 출력
fprintf(fp,"%d\n",rnd); // data.txt 파일에 출력
}
return 0;
}
★ 문제 2
#include <stdio.h>
// 읽을 수의 개수
#define READ_COUNT 10
int main(void){
int i; // 반복 루프 제어 변수
FILE *fp=fopen("data.txt","rt"); // 파일을 읽기 모드로 열기
for(i=0;i<READ_COUNT;i++){ // READ_COUNT 만큼 반복
int read; // 읽은 수를 저장
fscanf(fp,"%d",&read); // 파일에서 수를 읽기
printf("%d = %d\n",i,read); // 표준 출력으로 출력
}
return 0;
}
※ 수업을 듣고 나서 느낀 점!!
오늘 실습 때 자료구조 진도를 빨리 진행했으면 하는 학생에서 손을 들었는데,
교수님께서 10분의 시간을 주시면서 오늘의 문제를 풀어보라고 하셨음.
내가 문제를 풀고 난 후 교수님께서, 실력은 인정하지만, 그래도 진도는 같이 나가는 것이 더 좋을 것 같다고 하셔서,
방학 때 미리 예습을 했어도 다시 배우는 느낌으로!! 친구들과 진도를 맞출 예정!!
※ 기타 참고 사항!!
▶ 중간 및 기말고사 (각각 30%씩), 과제 30%, 출석 10% 반영
▶ Cheating(부정행위) 적발 시 무조건 'F'학점 처리
▶ 성적 산출 시, A/B반 상관 없음 (따로 산출)
▶ 지각 2번 = 결석 1번, 전체의 1/3 이상 결석 = 무조건 'F'
▶ 시험은 오픈북 형태로, 문제가 주어지면 직접 코딩하는 문제 3개 출제
▶ 실습 시간에 푼 문제는 다음 시간까지 Report 형태로 출력 후 제출!!
★ Report 양식!!
▶ 표지 (제출 일자 기재 필수!!)
▶ 목차
▶ 문제 분석
▶ 소스 코드
▶ 소스 설명 (꼼꼼히 작성!!)
▶ 실행 창 (문제 별 최소 2개)
▶ 느낀 점 (문제 별 + 종합)