CS

#include #include #include #define CAPACITY 100 #define BUFFER_LENGTH 100 typedef struct person { char* name; char* number; char* email; char* group; } Person; Person directory[CAPACITY]; int n = 0; char delim[] = " "; int readline(FILE * fp, char str[], int lim) { int ch, i = 0; while ((ch = fgetc(fp)) != '\n' && ch != EOF) if (i < lim) str[i++] = ch; str[i] = '\0'; return i; } void add(char* n..
이 버전은 저장된 사람의 수가 배열의 용량을 초과하는 경우, 배열의 크기를 확장한다. 또 잘못된 명령이 있다면 적절하게 반응하도록 한다. 예시 $ read File name required. $ read directory.txt $ status David 0517778888 Henry 0243737788 John 01034523747 Sean 01012345678 $ add Anderson Number required. $ add Anderson 01032452587 Anderson was added successfully. $ save directory.txt $ exit #include #include #include #define INIT_CAPACITY 3 #define BUFFER_SIZE 50..
앞선 v1.0과는 동일하지만 전화번호부 v2.0은 파일로부터 데이터를 읽어오며 데이터를 알파벳 순으로 정렬한다. 데이터를 정렬된 상태로 유지하기 위해서는, 1) Sorting 알고리즘을 사용하거나 2) 새 데이터가 추가될 때마다 자릴 찾아 삽입 하는 방법이 있다. 이 버전은 알파벳 순서대로 정렬해야 하므로 2번으로 프로그래밍한다. #include #include #define MAX 100 #define BUFFER_SIZE 100 char* names[MAX]; char* numbers[MAX]; int n = 0; void add(); void find(); void status(); void remove(); void save(); void load(); int main() { char com[BU..
프로그램을 실행하면 화면에 프롬포트($)를 출력하고 사용자의 명령을 기다린다. 1. 새로운 사람을 추가한다. $ add John 01079799898 John was added successfully. 2. 이름으로 전화번호를 검사한다. $ find Henry No person named 'Henry' exists. $ find David 0517778888 3. 전화번호부에 등록된 모든 사람을 출력한다. $ status John 01076769898 David 0517778888 Total 2 persons. 4. 전화번호부에서 삭제한다. $ delete Jim No person named 'Jim' exists. $ delete John John was deleted successfully. 5. 프..
1. 리턴을 제외한 입력문장을 그대로 출력한 후 문장의 길이를 출력한다. (단, 공백문자도 포함해 카운트하며 문장의 앞뒤에 붙은 공백까지 그대로 출력한다.) #include #include #define BUFFER_SIZE 20 int readline(char str[], int lim) { int ch, i = 0; while ((ch = getchar()) != '\n') // 한 문자씩 입력 받음 if (i < lim - 1) str[i++] = ch; str[i] = '\0'; return i; } int main() { char buffer[BUFFER_SIZE]; while (1) { printf("$ "); //fgets(buffer, BUFFER_SIZE, stdin); // 라인 단위의..
* SQL SCHEMA - SQL에서의 스키마는 테이블을 포함한 각종 데이터베이스 객체들을 그룹핑하는 단위 - java의 package, C++의 namespace와 같음 - 테이블의 전체 이름은 . - 사용자에게 자신의 이름에 해당하는 schema 생성 1. 테이블 생성 명령어 create table ( 컬럼1 자료형1 [constraint 제약조건명] [제약조건], 컬럼2 자료형2 [constraint 제약조건명] [제약조건], . . . ); * not null : 해당 컬럼이 null 값을 가져서는 안됨을 나타냄 sname nchar(3) constraint snmae_always_exists not null 혹은 snmae nchar(3) not null * primary key 제약 조건 - ..
1. insert : 테이블에 레코드를 컬럼 순서대로 삽입 - 테이블에 레코드를 컬럼 순서대로 삽입insert into values ( . . . ) - 컬럼명을 지정해 삽입insert into (, , ... , )values (, , ... , ) - select 결과 삽입insert into select 문 2. update : 레코드 값 변경 update set , ..., [where 조건식] 3. delete : 테이블 내의 행을 삭제하고 테이블 정의 유지 - 테이블 내의 모든 행 삭제delete  - 조건에 해당하는 행들만 삭제delete where 조건식 delete : 행만 삭제, 정의 그대로drop : 행과 정의 모두 삭제  * commit / rollback 1) commit..
DML ? 데이터 조작 언어로, CRUD 연산이 가능해야 한다. - CREATE - READ - UPDATE - DELETE 1. select : 조건에 맞는 데이터 검색 select [컬럼명] from [where 조건식] ex) '산공'과 4학년 학생들의 이름을 찾아라 select sname from STUDENT where dept = '산공' and year = '4'; 기말고사 또는 중간고사의 성적이 90점 이상인 학생들의 학번을 찾아라 select sno from enrol where MIDTERM >= 90 or finterm >= 90; 기말고사 성적이 중간고사 성적보다 좋은 학생들의 학번을 찾아라 select sno from enrol where midterm < finterm; * se..
SQL : DDL, DML, DCL 모두 포함 1) 테이블 생성 create table ( 컬럼1 자료형1, 컬럼2 자료형2 ); * 자주 쓰이는 자료형 - char(n) : 길이가 n인 고정길이 문자열, n보다 짧게 입력된 값은 공백으로 채워짐 - varchar(n) : 길이가 최대 n인 가변길이 문자열, 입력된 길이만큼 저장 - nvarchar2(n) : 길이가 최대 n인 가변길이 유니코드 문자열 2) 테이블 삭제 drop table ; 3) 테이블 삽입 insert into values (컬럼1, 컬럼2, 컬럼3); 4) 테이블 검색 select * from [where ]; ex) create table STUDENT ( sno number(3), sname nvarchar2(4) constrai..
1. 릴레이션 조작을 위한 연산의 표현 방법 1) 절차 언어 - 관계 대수 2) 비절차 언어 - 투플/도메인 관계해석 2. 관계 대수 1) 릴레이션 = Set of tuples · 릴레이션에 대한 연산결과 -> 릴레이션 2) 연산자의 종류 · 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트 · 순수 관계 연산자 : 실렉트, 프로젝트, 조인, 디비전 3. 기본 연산자 릴레이션 R, S에 대해 모두 같은 스키마일 때, 1) 합집합 (∪) · R∪S = { t | t ∈ R ∨ t ∈ S } · |R∪S| ≤ |R| + |S| · 합집합 원소의 개수(Cardinality) ≤ 각 원소 개수의 합 2) 교집합 (∩) · R∩S = { t |t ∈ R ∧ t ∈ S } · |R∩S| ≤ min(|..
소-은
'CS' 카테고리의 글 목록 (8 Page)