동영상 강의 14

[C++] 73. 최종 실습 – 확장 가능한 순차 배열

[C++] 최종 실습 – 확장 가능한 순차 배열 EhNara 프로그램에서는 EhNara 클래스, 학생 공장에서 학생 개체를 보관합니다. 그리고 장소에서는 사람 개체를 보관합니다. 여기에서는 순차적으로 보관할 수 있는 확장 가능한 배열을 템플릿으로 정의합시다. 확장 가능한 배열은 저장소가 꽉 차면 내부에서 저장소의 크기를 늘려 주어 사용하는 개발자가 저장소의 크기에 신경을 쓰지 않고 사용할 수 있는 동적 배열입니다. 여기에서는 순차 보관하는 기능과, 특정 인덱스의 요소를 제거, 특정 알고리즘이 참인 인덱스를 구하는 등의 기능을 제공하는 확장 가능한 배열을 만듭시다. template class SeqArray { 먼저 저장소와 저장소의 크기, 보관 개수를 기억하고 있어야 합니다. data *base; //저..

[C++] 58. 템플릿(TEMPLATE) 개요 59. 전역 템플릿 함수

[C++] 플릿(TEMPLATE) 개요 및 전역 템플릿 함수 58. 템플릿(TEMPLATE) 개요 이번에는 C++에서 제공하는 템플릿을 살펴보기로 해요. C++언어에서 템플릿은 다양한 프로그램에서 공통적으로 사용할 수 있는 라이브러리 형태의 형식이나 기능을 정의할 때 사용합니다. 대표적으로 표준 템플릿 라이브러리(STL, Standard Template Library)를 들 수가 있습니다. 템플릿(Template)의 사전적 의미는 틀, 모형자입니다. 무엇인가를 만들기 위한 틀을 템플릿이라 부르는 것이죠. C++언어에서 템플릿은 실제 코드를 만들기 위한 가짜 코드를 말합니다. 템플릿으로 형식이나 기능을 정의해도 실제 컴파일한 기계어 코드에는 반영하지 않습니다. 대신 템플릿으로 정의한 것을 사용하는 부분이 ..

[C++] 43. 상속과 다형성 최종 실습 – 파생 클래스

[C++] 상속과 다형성 최종 실습 – 파생 클래스 이제 파생 형식인 학사 학생, 운동학생, 마법학생과 진입점 main 부분을 구현합시다. 먼저 학사 학생 클래스에 필요한 멤버들을 고민해 보기로 해요. class SStudent : public Student { 학사 학생은 더미 뇌가 멤버 필드로 필요합니다. int dummy; 그리고 더미 뇌는 공부한 횟수가 5이 배수일 때마다 1씩 증가해야 하므로 공부한 횟수도 기억해야죠. int total_scnt; public: SStudent(string name); “공부하다.”, “강의받다.”, “잠자다.”, “휴식하다.”, “음료마시다.”, “노래하다.” 메서드를 재정의해야겠죠. virtual void Study(); virtual void ListenLe..

fread 함수 [C언어 표준 라이브러리 함수]

fread 함수 [C언어 표준 라이브러리 함수] size_t fread ( void * base, size_t size, size_t count, FILE * fp); 파일 스트림에서 데이터를 읽는 함수 입력 매개 변수 리스트 base 데이터를 읽어올 버퍼 size 읽어올 데이터 하나의 크기 count 읽어올 데이터 개수 fp 입력 파일 스트림 반환 값 읽어온 데이터 개수 fread 함수는 요청한 데이터 개수보다 반환 값이 작다고 오류가 아니며 파일에 데이터를 모두 읽어온 것입니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //size_t fwrite ( const void * base, size_t size, size_t count, FILE * fp); 파일 스트림에 데이터를 쓰는 함수 //회..

fwrite 함수 [C언어 표준 라이브러리 함수]

fwrite 함수 [C언어 표준 라이브러리 함수] size_t fwrite ( const void * base, size_t size, size_t count, FILE * fp); 파일 스트림에 데이터를 쓰는 함수 입력 매개 변수 리스트 base 기록할 데이터가 있는 주소 size 기록할 데이터 하나의 크기 count 기록할 데이터 개수 fp 출력 파일 스트림 반환 값 성공하면 쓰기 요청한 count, count 보다 작은 값을 반환하면 에러 fwrie 함수는 메모리에 있는 내용을 그대로 파일에 덤프하는 것입니다. 따라서 메모장과 같은 텍스트 편집기로 확인하면 글자가 깨진 것처럼 보입니다. 메모장과 같은 프로그램으로 출력 파일을 열어서 확인하였을 때 글자가 깨졌다고 문제가 있는 것이 아닙니다. 사용 예..

fprintf 함수 [C언어 표준 라이브러리 함수]

fprintf 함수 [C언어 표준 라이브러리 함수] int fprintf(FILE *fp, const char * format, …); 파일 스트림에 포멧을 지정하여 출력하는 함수 입력 매개 변수 리스트 fp 출력 파일 스트림 format 포멧 문자열, 출력 포멧은 printf 함수와 같습니다. … 가변 인자 리스트 반환 값 성공 시 출력 문자 개수, 실패 시 음수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fprintf(FILE *fp, const char * format, ...); 파일 스트림에 포멧을 지정하여 출력하는 함수 //다양한 포멧 지정을 사용하여 파일에 출력 #pragma warning(disable:4477) #include #include #include int mai..

fputs 함수 [C언어 표준라이브러리 함수]

fputs 함수 [C언어 표준라이브러리 함수] int fputs ( const char * str, FILE * fp ); 파일 스트림에 문자열을 출력하는 함수 입력 매개 변수 리스트 str 출력할 문자열 fp 파일 스트림 반환 값 실패 시 EOF, 성공 시 음수가 아닌 정수 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fputs ( const char * str, FILE * fp ); 파일 스트림에 문자열을 출력하는 함수 //원본 파일 내용을 출력 파일에 라인 번호를 추가하여 복사 #include #include int main(int argc, char **argv) { FILE * sfp, *dfp; int line_no = 1; char buffer[256]; if (argc !=..

fputc 함수, putc 매크로 함수 [C언어 표준 라이브러리 함수]

fputc 함수 [C언어 표준 라이브러리 함수] int fputc(int ch,FILE *fp); 파일 스트림에 하나의 문자를 출력하는 함수 입력 매개 변수 리스트 ch 출력할 문자 , 함수 내부에서 unsigned char로 변환해서 출력 fp 파일 스트림 반환 값 실패 시 EOF, 성공 시 출력한 문자 fputc 함수 사용할 때 다음을 주의해야 합니다. 한글을 포함한 파일의 데이터를 fgetc함수로 하나의 문자씩 읽어와서 fputc로 출력할 때 오류가 발생합니다. 이러한 문제를 해결하려면 setlocale 함수를 이용하여 지역을 설정해야 합니다. 사용 예 //C언어 표준 라이브러리 함수 가이드 //int fputc(int ch,FILE *fp); 파일 스트림에 하나의 문자를 출력하는 함수 //파일을 ..

Part 32. 도서 관리 프로그램 IV - 저장 및 로드

Part 32. 도서 관리 프로그램 IV - 저장 및 로드 113. 도서 관리 프로그램 – 저장 C언어 도서 관리 프로그램 - 저장 기능 구현 이번에는 데이터를 파일에 저장하는 기능의 시퀀스 다이어그램을 작성하기로 해요. 먼저 App에서는 파일을 쓰기 모드로 열어야겠죠. 그리고 App의 정보를 파일에 저장해요. 프로그램의 데이터를 다른 물리 매체에 선형으로 보내는 것을 직렬화라고 불러요. 직렬화 함수에서는 마지막 부여한 장르 번호와 배열에 보관한 장르 개수를 저장하세요 그리고 배열에 보관한 장르들의 정보를 파일에 직렬화하세요. 장르의 정보를 직렬화하는 함수에서도 장르번호, 장르명, 마지막 부여한 도서 번호를 파일에 저장하고 배열에 보관한 도서 개수를 저장하세요. 그리고 배열에 보관한 모든 장르를 파일에 ..

Part 29. 도서 관리 프로그램 I - 시나리오 및 기본 메뉴 구현

Part 29. 도서 관리 프로그램 I - 시나리오 및 기본 메뉴 구현 101. 도서 관리 프로그램 실습 시나리오 도서 관리 프로그램 시나리오 - C언어 전산 기술은 빠르게 발전하고 새로운 기술과 개발 공정이 나오고 있어요. 여기에서는 시나리오를 소개한 후에 요구 분석하고 설계한 후에 구현하는 공정으로 진행할게요. 요구 분석에서는 프로그램의 외부 요소와 프로그램 사이의 상호 작용을 분석해요. 외부 요소가 언제 프로그램을 사용하는지 혹은 프로그램이 외부 요소를 언제 사용하는지 파악하죠. 그리고 분석 결과를 유즈케이스(Usecase) 다이어그램으로 작성할거예요. 설계 단계에서는 역할에 따라 사용자 정의 형식을 결정하고 형식 간의 관계를 정의해요. 그리고 유크케이스 별로 시퀀스를 정의하죠. 사용자 정의 형식과..

Part 28. main 함수 매개 변수

Part 28. main 함수 매개 변수 main 함수 매개 변수 100. main 함수 매개변수 이번에는 main 함수 매개 변수를 사용하는 방법을 살펴보아요. main 함수는 프로그램 진입점 함수로 프로그램의 개발자가 작성한 코드 중에서 제일 먼저 수행하죠. main 함수는 시작하면서 인자와 환경 변수를 받아 사용할 수 있고 종료 결과를 반환할 수 있어요. int main(int argc,char **argv, char **env); main 함수는 전달한 인자와 환경변수를 선택적으로 사용할 수 있어서 개발자는 다양한 형태의 원형을 갖는 main 함수 중에 한 가지 형태로 정의하여 사용할 수 있어요. int main(int argc, char **argv, char **env); void main(i..

Part 14. 배열과 포인터 그리고 산술 연산 [디딤돌 C언어]

Part 14. 배열과 포인터 그리고 산술 연산 45. 배열과 포인터 개요 배열과 포인터 개요 및 배열 선언문 동영상 강의 C언어에서는 같은 형식의 여러 데이터를 효과적으로 사용할 수 있는 배열을 제공하고 있어요. C언어에서 제공하는 기본 형식들은 변수가 관리하는 데이터가 하나여서 변수 이름은 갖고 있는 값을 의미하죠. 하지만 배열은 관리하는 데이터가 여러 개이므로 배열 이름이 특정 값을 대표할 수 없어요. C언어에서는 배열 이름은 관리하는 특정 값이 아닌 배열에 할당한 메모리의 시작 주소를 의미한답니다. 배열의 원소에 접근할 때는 배열 이름과 상대적 거리를 의미하는 인덱스 값을 사용하는 것이 일반적이예요. 예를 들어 3번째 원소를 접근하려면 시작 위치에서 거리 2이므로 인덱스 2를 사용해요. 따라서 상..

[C#] 미디 분석 프로그램 만들기 – 1. 프로젝트 소개

1. 유튜브 동영상 강의 미디 분석 프로그램 유튜브 동영상 강의 2. 프로그램 소개 미디 파일은 여러 개의 청크들로 구성합니다. 청크는 청크 타입과 청크 길이와 데이타로 구성하고 있는데 헤더 청크와 트랙 청크가 있어요. 이 외에 자세한 사항은 프로젝트를 진행하면서 하나 하나 설명하기로 할게요. 프로젝트 제작 순서는 다음과 같습니다. 청크 분석 헤더 청크 분석 트랙 청크 분석 메타 이벤트 분석 미디 이벤트 분석 시스템 이벤트 분석 미디 분석 프로그램 미디 분석 프로그램은 C# 언어와 Windows Forms 기술을 사용하여 구현합니다. 프로젝트를 진행하면서 미디 파일의 구조와 의미를 설명하기로 할게요. 그럼 다음 강의에서 만나요.

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기 4. 최종 번역 나래이터 구현[ WPF]

유튜브 동영상 강의 번역 나래이터 구현 화면 배치 MainWindow.xaml.cs 소스 코드 using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using WrapKakaoLib; using WrapSpeechLib; namespace 번역_나래이터_v0._1 { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btn_speek_Click(object sender, RoutedEventArgs ..