디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형님들~도서대여관리프로그램만드는중인데 간단한질문하나만요~!

흐규흐규(210.125) 2012.12.10 15:58:02
조회 46 추천 0 댓글 0

#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

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45425 65
2871320 진지하게 중소어케다니냐 [7] 프갤러(106.101) 09:15 53 0
2871318 바이브 타기보단 정량적으로 정해놓는게 좋음 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 08:59 8 0
2871316 강아지 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:34 7 0
2871314 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:26 6 0
2871312 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:23 6 0
2871310 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 08:16 12 0
2871308 자바 입문 떼려는데 자바의 정석 vs 자바의 신 [5] ㅇㅇ갤로그로 이동합니다. 08:02 34 0
2871306 격투기 할 때 한명이 아무리 챔피언이라도 아마추어 두명이 대들면 [1] 발명도둑잡기(118.235) 07:56 18 0
2871304 촘스키 "미국은 부자에게는 사회주의, 가난한 사람에게는 자본주의" 발명도둑잡기(118.235) 07:11 19 0
2871303 코딩 입문자 자바 위주로 하려는데 [3] 프갤러(49.167) 07:11 46 0
2871301 영업기밀은 열린사회의 적인가 발명도둑잡기(118.235) 07:03 19 0
2871300 부가가치를 높이기 위해 영업기밀을 숨겨서 정보비대칭을 만들며 독과점을 만 발명도둑잡기(118.235) 07:01 16 0
2871298 소니가 고장없는 제품 만들기를 목표로 하다가 고장 잘 나도 AS 수리로 [2] 발명도둑잡기(118.235) 06:55 25 0
2871297 소니가 고장없는 제품 만들기를 목표로 하다가 고장 잘 나도 AS 수리로 [1] 발명도둑잡기(118.235) 06:55 21 0
2871295 사회주의 기술 장인과 자본주의 기술 장인 차이점 [1] 발명도둑잡기(118.235) 06:50 15 0
2871293 제이콥 닐슨의 10가지 사용성 평가 기준 [1] 발명도둑잡기(118.235) 06:33 21 0
2871291 음기 충전 발명도둑잡기(118.235) 06:28 15 0
2871289 C 메모리 실수 발명도둑잡기(118.235) 06:18 17 0
2871286 vala 메모리 실수 발명도둑잡기(118.235) 06:10 18 0
2871284 carbon 메모리 실수 [1] 발명도둑잡기(118.235) 06:07 22 0
2871282 C++ 20 이상 메모리 실수 [1] 발명도둑잡기(118.235) 06:05 36 0
2871281 rust 메모리 실수 [1] 발명도둑잡기(118.235) 06:03 22 0
2871280 vale 언어 메모리 실수 [1] 발명도둑잡기(118.235) 06:02 25 0
2871279 nim 언어 메모리 실수 [1] 발명도둑잡기(118.235) 06:01 23 0
2871277 D 언어 메모리 실수 [1] 발명도둑잡기(118.235) 06:00 21 0
2871276 odin 메모리 관리 실수 줄이기 [1] 발명도둑잡기(118.235) 05:58 25 0
2871274 zig 언어 메모리 수동관리 c보다 실수 적게 만들었나 [3] 발명도둑잡기(118.235) 05:54 27 0
2871272 디씨 극우 등신새끼들은 assembl-y를 차단어로 설정해 국회 청원을 [2] 발명도둑잡기(118.235) 05:39 29 0
2871270 si 이상으로 에이전시는 더 별루야 [1] 피치피(183.101) 05:37 28 0
2871269 인터프리터 아니고 컴파일 되는 자바스크립트나 타입스크립트 문법 언어 [2] 발명도둑잡기(118.235) 05:37 29 0
2871267 git이 SVN을 능가하는 최고 장점이 수익화하기 편하다는거 [8] ㅆㅇㅆ(124.216) 05:33 55 0
2871266 그놈이 느려진 이유가 자바스크립트 많이 써서인가 [5] 발명도둑잡기(118.235) 05:31 30 0
2871264 난 정말 뭐할까 ㅠ [3] 피치피(183.101) 05:22 41 0
2871263 git이 표준이 된 이유는 github 소셜이 큰거 같음 [8] ㅆㅇㅆ(124.216) 05:21 60 0
2871262 나는 암만 생각해도 SVN이 더 편한거 같은데 [2] ㅆㅇㅆ(124.216) 05:13 32 1
2871261 svn에서 깃 전환하고 느낀것인데 [7] ㅆㅇㅆ(124.216) 05:10 42 0
2871260 환자가 천천히 나을수록 의사는 돈을 더 번다는 역설 [1] 발명도둑잡기(118.235) 05:06 22 0
2871258 근데 삼촌 빡고수라던데 왜 프갤 탈퇴한거냐 [4] ㅆㅇㅆ(124.216) 04:49 43 0
2871256 computer란 사라진 직업 [1] 발명도둑잡기(118.235) 04:40 31 0
2871254 문화계 만난 이 대통령 “예술인 기본소득 필요” 발명도둑잡기(118.235) 04:21 14 0
2871252 방금 전 뜬 9GAG 릴스 혼자 하는 테니스 릴스 영상 보니 발명도둑잡기(118.235) 04:02 17 0
2871251 삼촌이 100% 자동화 백엔드 도구 만들었던데 [1] 프갤러(183.101) 03:59 42 0
2871250 동양철학:남에게 받은건 바위에 새기고, 도운것은 모래에 새겨라 ㅇㅇ(183.101) 03:57 14 0
2871249 오늘의 소설, 영화 실마리: 일제와 나치의 동맹과 몰락 이야기 발명도둑잡기(118.235) 03:45 20 0
2871247 '노동존중' 이재명 정부와 최저임금법 제1조[노동TALK] 발명도둑잡기(118.216) 03:29 20 0
2871246 히틀러에게 훈장을 받은 일본 해군장교 발명도둑잡기(118.216) 03:27 13 0
2871243 오늘의 영상 기획 실마리: 컴퓨터 팬으로 드론 발명도둑잡기(118.235) 02:51 19 0
2871242 탑골공원은 일제의 압제를 뚫고 기미독립선언을 했던 장소임 발명도둑잡기(118.235) 02:28 19 0
2871240 냥덩이 똥구멍 찢길 예정 발명도둑잡기(118.235) 02:22 28 0
뉴스 밀레나, 오늘(11일) 첫 정규앨범 'Where to Begin' 발매! 전곡 작사·프로듀싱 참여 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2