#include "bookmanage.h"
int i,j;
book::book()
{
rent = -1; // 책을 대출할경우 맴버의 번호를 저장 합니다. -1이면 빌려가지 않은책
}
void book::bookchange() // 도서 번호 이름 저자명 입력
{
cout << "책 번호를 입력하세요 : ";
cin >> number;
if(cin.fail()) // 도서번호에 int값에 정수가 아닌 값이 들어올때 오류 메시지를 띄우고 다시 입력
{
cin.clear();
cin.ignore(512,'\n');
cout<<"잘못된 입력 "<<endl;
cout<<"올바른 숫자로 다시 입력"<<endl;
cin>>number;
}
cout << "책 이름을 입력하세요 : ";
cin >> bookname;
cout << "저자를 입력하세요 : ";
cin >> bookwriter;
rent = -1; // 도서 등록시 대여가능 으로 -1을 rent값에 입력
}
void book::rentbook(int _rent)
{
rent = _rent;
}
void book::returnbook() // 도서 반납시 -1로 빌려가지 않은책
{
rent = -1;
}
void book::setbook(int _number, string _name, string _writer) // 매개변수로 도서명 저자명 도서번호를 전달 받음
{
number = _number;
bookname = _name;
bookwriter = _writer;
}
string book::getbook()
{
return bookname;
}
string book::getwriter()
{
return bookwriter;
}
int book::getnumber()
{
return number;
}
void book::booklist() //도서 번호 이름 저자명 출력
{
cout << "번호 : " << number << "\t" << "책이름 : " << bookname << "\t" << " 저자 : " << bookwriter;
cout << "\t";
if(rent == -1)//책을 빌려갔는지 검사후 출력
cout << "대여가능" << endl;
else
cout << "대여중" << endl;
}
library::library() //count를 0으로 초기화 한다.
{
count = 0;
mcount =0;
}
void library::addbook() //책을 추가시킬때마라 count1증가
{
book[count].bookchange();
count++;
}
void library::listbook() //모든도서목록을 출력
{
for(i = 0 ; i < count ; i++)
{
book[i].booklist();
}
}
void library::booksearch() // 책 제목으로 도서정보 찾기
{
string bname;
cout << "책 제목 입력 : ";
cin >> bname;
for(i = 0 ; i < count ; i++)
{
if(book[i].getbook() == bname)
{
book[i].booklist();
}
}
}
void library::booksearch2() // 책 저자명으로 도서정보 찾기
{
string bwriter;
cout << "책 저자 입력 : ";
cin >> bwriter;
for(i = 0 ; i < count ; i++)
{
if(book[i].getwriter() == bwriter)
{
book[i].booklist();
}
}
}
void library::booksearch3(int asd) //int asd 값이 0일때 책 번호로 도서정보 찾기
{
int bnum;
cout << "책 번호 입력 : ";
cin >> bnum;
for(int i = 0 ; i < count ; i++)
{
if(book[i].getnumber() == bnum)
{
book[i].booklist();
if(asd==1) // int asd 값이 1일때 도서삭제 실행
{
cout<<"삭제합니다."<<endl;
for(int j=i;j<count;j++)
book[j]=book[j+1];
count-=1;
}
}
}
}
void library::rentbook() // 도서 대여 함수
{
string a, b;
int chk = 0;
cout << "회원이름 :";
cin >> a;
cout << "책 이름:";
cin >> b;
for(i=0;i < mcount;i++)
{
if(member[i].getmmember() == a)
{
chk++;
break;
}
}
if(chk == 0)
{
cout << "회원을 찾을 수 없습니다." << endl;
return;
}
chk = 0;
for(j=0;j < mcount;j++)
{
//책이있고 않빌려 갔다면
if(book[j].getbook() == b && !book[j].isRent())
{
chk++;
break;
}
}
if(chk == 0)
{
cout << "책을 찾을 수 없습니다." << endl;
return;
}
book[j].rentbook(member[i].getmnumber());
cout << "도서 대여 OK" << endl;
}
void library::returnbook() // 도서 반납 함수
{
string b;
int chk = 0;
cout << "반납할 책 이름:";
cin >> b;
for(i=0;i < count;i++)
{
//책이있고 빌려간 책이라면
if(book[i].getbook() == b && book[i].isRent())
{
chk++;
break;
}
}
if(chk == 0)
{
cout << "책을 찾을 수 없습니다." << endl;
return;
}
book[i].returnbook();
cout << "도서 반납 OK" << endl;
}
void library::loaddata() // 정보 로드
{
ifstream fp("member.txt");
ifstream fp2("book.txt");
string bbname, mmname, mmphone, bbwriter;
int bbnumber=0;
int mmnumber=0;
if(fp == NULL) return;
if(fp2 == NULL) return;
while(1)
{
fp >> mmnumber;
if(fp.eof()) break;
fp >> mmname;
fp >> mmphone;
member[mcount].setmember(mmnumber,mmname,mmphone);//파일에서 읽어온 데이타를 입력
mcount++;//멤버의 수를 증가
}
while(1)
{
fp2 >> bbnumber;
if(fp2.eof()) break;
fp2 >> bbname;
fp2 >> bbwriter;
book[count].setbook(bbnumber,bbname, bbwriter);
count++;//책의 갯수를 증가
}
fp.close();
fp2.close();
}
void library::savedata() // 정보 세이브
{
ofstream fp("member.txt");
ofstream fp2("book.txt");
for(i=0;i < mcount;i++)//멤버의 수만큼 파일에 저장
{
fp << member[i].getmnumber() << endl;
fp << member[i].getmmember() << endl;
fp << member[i].getmphone() << endl;
}
for(i=0;i < count;i++)//책의 갯수 만큼 파일에 저장
{
fp2 << book[i].getnumber() << endl;
fp2 << book[i].getbook() << endl;
fp2 << book[i].getwriter() << endl;
}
fp.close();
fp2.close();
}
위에 소스는 전체소스중에 책 class 부분인데여
여기서 책등록할때 마지막에 "책을 등록하시겠습니까? 등록=1/취소=2" 이뜨면서
1을 누르면 등록되고, 2를 누르면 메뉴로 돌아고도록 추가하고 싶은데어떻게 하졍 ㅠ.ㅠ
댓글 0