소개글
c언어를 이용한 학생 주소록 관리 프로그램입니다.
학생의 정보를 입력받아 삽입, 삭제, 수정, 검색이 가능한 프로그램이다.
학생 정보(record)에는 학번, 이름, 학과, 주소를 입력 할 수 있다.
학번은 10자, 이름은 20자, 학과는 20자, 주소는 40자를 입력할 수 있으며(enter포함) 만일 지정된 글자 수를 초과할 경우 오류메시지가 나타나며, 재입력을 요구한다.
학생정보 입력 순서는 학번, 이름, 학과, 주소 순이며 검색은 학번 또는 이름으로 할 수 있다.
학생 정보를 지우거나 수정하는 일은 한 학생씩 할 수 있으며, 삭제(2)나 수정(3)를 선택했을 경우, 먼저 그러한 학생이 존재하는지 검색한 후에 삭제나 수정을 할 수 있다. 만약 학번이나 이름으로 검색했을 때, 일치하는 학생의 정보가 존재하지 않는다면 오류메시지가 나타나며, 메인 메뉴로 돌아간다.
레포트 안에 프로그램에 대한 설명, 프로그램과 캡쳐 화면이 모두 들어있습니다.
목차
1. 과제 내용
2. 프로그램 소개
(1) System I
(2) System II
3. System I
(1) Capture 화면과 실행 예
(2) Source Code & 설명
4. System II
(1) Capture 화면과 실행 예
(2) Source Code & 설명
5. System II의 수정 내역서
본문내용
S_No(학번), S_NAME(이름), DEPT(학과), ADDR(주소) DB용 구조체를 만든다.
파일에 구조체의 내용을 기록하는 reprintf함수와, 저장된 파일에서 구조체에 내용을 불러오는 rescanf함수를 정의한다.
출력하는 화면은 printData함수로,
void printData(User data)
{
fprintf(stdout, "| %10s | %20s | %20s | %40s |n", data.S_NO, data.S_NAME, data.DEPT, data.ADDR);
}
각각의 공간을 위와 같이(%10s, %20s 등) 지정하여 프린트 할 수 있도록 한다.
검색을 할 때, 번호 또는 이름으로 검색을 해야 하므로 둘 중 하나를 선택하는 것을 condition으로 정의하여 번호를 선택했을 경우 1, 이름을 선택했을 경우 0을 반환하도록 했다.
사용자가 입력하는 데이터를 받는 함수로 write를 썼고, 사용자의 입력을 char배열로 받아 하나씩 저장하는 형태를 취하고 있다. write함수를 쓸 때는 limit을 사용해야 하는데, 이것을 이용해서 학번은 10자, 이름은 20자, 학과는 20자, 주소는 40자 이내로 쓰게 하라는 요구사항을 지킬 수 있도록 했다. 만약 사용자가 정해진 글자수를 초과하여 입력 할 경우 ‘글자수 초과입니다.’라는 문구가 출력되며 다시 입력할 수 있도록 한다.
데이터의 삽입은 insert, 삭제는 delete함수를 이용하였다. 데이터를 삭제하였을 때는 그에 ^표시를 해주어 나중에 정리하여 파일로 저장할 때(Commit) 무시할 수 있도록 하였다.
참고 자료
없음