도서관리시스템

Download Report

Transcript 도서관리시스템

도서관리시스템
‘오늘도 무사히’팀 프로젝트 최종보고서
조장 : 안근창
조원 : 박혜림
송수현
dddddddddddddddddddddd
이현진
Ⅰ.프로그램 소개
1.1 개요
1.2 구현방법
Ⅱ.수정사항
2.1 변경사항
2.2 소스소개
2.3 실행화면
Ⅱ.결론
3.1 결론
3.2 참고문헌
프로그램 소개
프로젝트 개요
• 도서관 관리자
- 대량의 도서를 보다 효율적이고 편리하게 관리하기 위함
• 회원
- 빠른 도서 검색과 편리한 대출서비스를 받을 수 있도록 하기 위함
구현방법
회원관리
대여관리
도서관리
신규회원 등록
도서 대출
신규도서 등록
회원정보 조회
도서 반납
도서정보 조회
회원정보 검색
대여목록 조회
도서정보 검색
회원정보 수정
대여기간 연장
도서정보 수정
회원정보 삭제
연체자 조회
도서정보 삭제
회원관리 구조체
struct bookcard{
int membernum;
char name[10];
/**< char[]
회원이름*/
char memberkey[20];
/**< char[]
주민번호*/
char address[20];
/**< char[]
주소
*/
char phone[13];
/**< char[] 연락처
*/
char gender[10];
/**< char[] 성별
*/
unsigned int grade;
/**< uint
등급
*/
unsigned int rentedcnt;
도서 관리 구조체
struct _book{
unsigned int bookNum;
/**< uint
도서번호
char bookname[64];
/**< char*
도서명
char arthor[30];
/**< char*
작가명
char publisher[30];
/**< char*
출판사명
unsigned int cost;
/**< uint
가격
char genre[10];
/**< char*
장르
char publishDay[9];
dddddddddddddddddddddd
/**< char*
출간일
*/
*/
*/
*/
*/
*/
*/
대여관리 구조체
struct _bookrent{
int booknum;
/**< int도서번호
*/
/**< int회원번호
*/
int cardnum;
char rentday[9];
/**< char[]
대여일 */
/**< char[]
반납일 */
};
char returnday[9];
dddddddddddddddddddddd
회원관리 함수
void getMemberMenu();
int insertNewMember();
int inquiryMember();
int memberfind();
int memberupdate();
int memberdelete();
dddddddddddddddddddddd
도서관리 함수
void insertNewBook();
void bookinquiry ();
void getBookMenu();
void booksearch();
void bookupdate();
void bookdelete();
void namesel();
void publishsel();
void genresel();
//도서"등록"
//도서조회후"출력"
//"도서관리_메뉴"
//도서"검색"
//도서자료"수정"
//도서"삭제"
//검색=> 이름검색
//검색=> 출판사검색
//검색=> 장르검색
dddddddddddddddddddddd
대여관리 함수
int IsRegist(int);
int GetBOOKRentState(int);
int IsValidmember(int);
void writeTimeTable(int);
void inquryRentList();
void extendRental();
void showOverdue();
void getRentMenu();
void rentbook();
void returnbook();
//등록된책인지의유효성검
사
//책의대여중임을체크
//등록된회원인지유효성검
사
//현재일,반납일을기록한다.
//대여리스트를조회한다.
//반납일을연장한다
//연체자를보여준다
dddddddddddddddddddddd
회원관리
int find()
{
char a;
char name[10];
int count;
system("cls");
printf("회원성명을입력하세요: ");
fflush(stdin);
gets(name);
fflush(stdin);
for(count=0;count<membercnt; count++)
{
if(strcmp(members[count].name,name)==0)
dddddddddddddddddddddd
{
도서관리
void booksearch() //검색실행부분
{
int i=0,cnt=0;
while(1)
{
do{
system("cls");
printf("어느것으로검색하시겠습니까?");
printf("선택메뉴책이름(0), 출판사(1) ,장르
(2)");
scanf("%d", &cnt); // cnt 값입력
}while(cnt<0 || cnt>2);
dddddddddddddddddddddd
if(cnt==0) //cnt값이0과일치할때이름검색함수실행
도서관리
void namesel() //문자열로입력받아임시변수hone과일치하는
books.bookname데이터내부를검색한다
{
int i,j=0,cnt=0;
char hone[30];
printf("검색하실도서명을입력>>");
scanf("%s", hone);
for(i=0;i<bookcnt;i++){ // -1부터존재하는도서번호에도
달할때까지실행한다.
cnt=strcmp(hone,books[i].bookname); //cnt변
수에서strcmp hone와도서명의문자열을비교하여일치하는항목이있
을시에
if (cnt==0){
dddddddddddddddddddddd
// 0값을내어놓아cnt에대입한다.
대여관리
void rentbook(void) // 도서대여-> 대여할책번호입력및검증.
{
int inputnum;
printf("대여할책의번호를입력하세요:");
scanf("%d",&inputnum);
fflush(stdin);
if(!IsRegist(inputnum)) // 입력번호가등록되지않은번호이
면,
{
}
printf("등록되지않은번호입니다\n");
system("pause");
return; dddddddddddddddddddddd
대여관리
void writeTimeTable(int days)
{
char arr1[9], arr2[9], temp[9];
time_t rawtime = time(NULL);
time_t rtime;
struct tm *t=localtime(&rawtime);
//현재날짜를문자열로arr1에기록ex)20111102
sprintf(temp,"%d",t->tm_year+1900);
strcpy(arr1,temp);
sprintf(temp,"%02d",t->tm_mon+1);
strcat(arr1,temp);
sprintf(temp,"%02d",t->tm_mday);
strcat(arr1,temp);
//현재시간에입력받은날을더한후문자열로arr2에기록
dddddddddddddddddddddd
printf("before : %d\n",rawtime);
도서관리 함수선언
수정 사항
변경사항
수정
보안
에러 검출
• 철자 부분
메뉴 꾸미기
• 괄호 부분
무한 리드 방지
• While문
• 서브메뉴함수
대여 구조체 첨부
소스소개
회원관리
도서관리
대여관리
실행 화면
결론