디시인사이드 갤러리

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

갤러리 본문 영역

c++도와주세요 형들.ㅠㅠ 힘들어용

도와주세요형(165.246) 2011.12.11 17:57:52
조회 123 추천 0 댓글 3




여기서 한개만 삭제하고싶은데요

형들 아래 코딩입니다..
도와주세요 막혀서 삭제하는게 안되요.
저는 버로우 텍스트파일에있는걸 다시 읽은후에 삭제하고자하는 부분만 제외하고 포문을 두번을 돌려서
다시 텍스트파일에 써주는 방식으로 하려고 했는데 에러가나더라구요.
어떻게 다른방법은없을까요?
에러좀 해결해주세요ㅠㅠ
아래 해당부분 코딩입니다.

#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
#include<string>
#include<fstream>
using namespace std;
//********************************************************************
class guest
{
 protected:
  char name[20];
  char phone[20];
  char birth[20];
 public:
  guest();
  guest(char *rname, char *rphone, char *rbirth);
  friend istream &operator>>(istream &is, guest a);
  char *getname();
  char *getphone();
  char *getbirth();
};

guest::guest()
{}
guest::guest(char *rname, char *rphone, char *rbirth)
{
 strcpy(name,rname);
 strcpy(phone,rphone);
 strcpy(birth,rbirth);
}

char* guest::getname()
{
 return name;
}

char* guest::getphone()
{
 return phone;
}

char* guest::getbirth()
{
 return birth;
}
//********************************************************************
class book
{
 protected:
  char name[20];
  int number;
 public:
  book();
  book(char *rname, int rnumber);
  char *getname();
  int getnumber();
};


book::book()
{}
book::book(char *rname, int rnumber)
{
 strcpy(name, rname);
 number =rnumber;
}

int book::getnumber()
{
 return number;
}

char *book::getname()
{
 return name;
}
//********************************************************************

class book_br
{
 private:
  char name[20];
  int number;
  char gname_br[20];
 public:
  book_br();
  book_br(char *bname_br, int bn, char *gname_br);
  char *getgname();
  char *getname();
  int getnumber();
  book_br & operator = (book_br & temp);
  friend ostream &operator<<(ostream &os, book_br &a);
};

book_br::book_br(char *bname_br, int bn, char *gname_br)
{
 strcpy(this->name, bname_br);
 number =bn;
 strcpy(this->gname_br,gname_br);
}

book_br &book_br::operator=(book_br & temp)

 
 strcpy(name, temp.name);
 number = temp.number;
 strcpy(gname_br, temp.gname_br);
 return *this;
}

book_br::book_br()
{}

int book_br::getnumber()
{
 return number;
}

char *book_br::getname()
{
 return name;
}
char *book_br::getgname()
{
 return gname_br;
}


ostream &operator<<(ostream &os, book_br &a)
{
 os<<a.getname<<a.getnumber<<a.getgname<<endl;
 return os;
}

 

//********************************************************************
class management
{
 private:
  guest *glist[50];  // 회원정보
  book *blist[50];  // 기본책정보
  book_br *blist_br[50];  //빌린책
  int bn, gn, br;
 
 public:
  management();
  void borrow();  //대여 프로그램
  void turn(); //반납 프로그램
  void showguest(); //회원정보 조회
  void showbook(); //책정보 조회
  void addbook(book *bl); //책 db추가
  void addguest(guest *gl); //회원 db 추가
  void addbook_br(book_br *bl);
  void init();
  friend istream &operator>>(istream &is, management &a);
}; 

istream &operator>>(istream &is, management &a)
{
 int i;
 char c;
 is>>i>>c;
 return is;
}

void management::init()
{
 bn=0;
 gn=0;
 br=0;
}

void management::addguest(guest *gl)
{
 glist[gn++] = gl; 
}

void management::addbook(book *bl)
{
 blist[bn++] = bl;
}

void management::addbook_br(book_br *bl)
{
 blist_br[br++] = bl;
}

management::management()
{
 bn = 0;
 gn = 0;
 br=0;
}

void management::borrow()
{
 int choice;
 int bnumber;
 char bname[20];
 char gbirth[20],gname[20];

 [...];
 cout<<"┏━━━━━━━━━━━━━┓"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃      책방 관리시스템     ┃"<<endl;
 cout<<"┃         -대여-           ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃1. 책제목 입력            ┃"<<endl;
 cout<<"┃2. 회원정보 입력          ┃"<<endl;
 cout<<"┃3. 대    여               ┃"<<endl;
 cout<<"┃4. 메뉴로 돌아가기        ┃"<<endl;
 cout<<"┗━━━━━━━━━━━━━┛"<<endl;
 while(1)
 {
  cout<<"입력하실 번호를 입력하세요 : ";
 
  cin>>choice;
  if(choice==4)
  {
   break;
  }

  switch(choice)
  {
  case 1: 
   {
    aa:
    int n=0;
    cout<<"책 제목을 입력하세요  : ";
    cin>>bname;
    cout<<"몇번째 권을 빌리시겠습니까? : ";
    cin>>bnumber;
    cout<<endl;
    for(int i=0;i<50;i++)
    {
     if(strcmp(bname,blist[i]->getname())==0 && bnumber==blist[i]->getnumber())
     {
      n=n+1;
      strcpy(bname,blist[i]->getname());
     }
    }
    if(n==0)
    {
     cout<<"책에 대한 정보가 없습니다 다시입력해 주세요"<<endl;
     goto aa;

    }
    break;
   }
  case 2:
   {
    bb:
    int k=0;
    cout<<"회원의 이름을 입력하세요 : "; cin>>gname;
    cout<<"회원의 생년월일을 입력하세요 : ";cin>>gbirth;
    cout<<endl<<endl;

    for(int i=0;i<50;i++)
    {
     if(strcmp(gname,glist[i]->getname())==0 && strcmp(gbirth,glist[i]->getbirth())==0)
     {
      k=k+1;
      strcpy(gname,glist[i]->getname());
      strcpy(gbirth,glist[i]->getbirth());
     }
    }
    if(k==0)
    {
     cout<<"회원정보를 잘못입력하였습니다."<<endl<<endl;
     goto bb;
    }
    break;
   }
  case 3:
   {
    for(int i=0;i<50;i++)
    {
     if(strcmp(bname,blist[i]->getname())==0 && bnumber==blist[i]->getnumber())
     {
      for(int j=0;j<50;j++)
      {
       if(strcmp(gname,glist[j]->getname())==0 && strcmp(gbirth,glist[j]->getbirth())==0)
       {
        ofstream fout;
        fout.open("borrow.txt",ios::app);
        fout<<blist[i]->getname()<<"\\t"<<blist[i]->getnumber()<<"\\t"<< glist[j]->getname()<<endl;
        fout.close();

        cout << blist[i]->getname()<<"의 "<<blist[i]->getnumber()<<"번째 권이 ";
        cout<<glist[j]->getname()<<"회원님에게 대여되었습니다."<<endl;
        cout<<endl;
        break;
       }
      }
      break;
     }
    }
    
   }
  case 4:
   break;
  }
 }
}

void management::turn()
{
 char bname[20];
 int bnumber;
 int choice;

 [...];
 cout<<"┏━━━━━━━━━━━━━┓"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃      책방 관리시스템     ┃"<<endl;
 cout<<"┃         -반납-           ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃ 1. 책 제목               ┃"<<endl;
 cout<<"┃ 2. 반납                  ┃"<<endl;
 cout<<"┃ 3. 메뉴로 돌아가기       ┃"<<endl;
 cout<<"┗━━━━━━━━━━━━━┛"<<endl;
 while(1)
 {
  cout<<"입력하실 번호를 입력하세요 : ";
  cin>>choice;
  if(choice==3)
  {
   break;
  }

  switch(choice)
  {
  case 1: 
   {
    aaa:
    int n=0;
    cout<<"반납하실 책 제목을 입력하세요  : ";
    cin>>bname;
    cout<<"몇번째 권을 반납하시겠습니까? : ";
    cin>>bnumber;
    cout<<endl;
    for(int i=0;i<50;i++)
    {
     if(strcmp(bname,blist_br[i]->getname())==0 && bnumber==blist_br[i]->getnumber())
     {
      n=n+1;
      strcpy(bname,blist_br[i]->getname());
      bnumber=blist_br[i]->getnumber();
     }
     
    }
    if(n==0)
    {
     cout<<"책에 대한 정보가 없습니다 다시입력해 주세요"<<endl;
     goto aaa;
    }
    break;  
   }

  case 2: 
   {
    book_br *list_br[50];
    for(int i=0;i<50;i++)
    {
     if(strcmp(bname,blist_br[i]->getname())==0 && bnumber==blist_br[i]->getnumber())
     {
      
      /*
      if(i==0)
      {
       for(i=1;i<50;i++)
       {
        list_br[i-1]=blist_br[i];
       }
      }
      else*/
       for(int j=0;j<i;j++)
       {
        list_br[j]=blist_br[j+1];
       }
       for(j=i+1;j<50;j++)
       {
        list_br[i-1]=blist_br[i];
       }

      }
     for(int k=0;k<50;k++)
     {
       ofstream fout;
       fout.open("borrow.txt");
       fout<<list_br[k]->getname()<<"\\t"<<list_br[k]->getnumber()<<"\\t"<< list_br[k]->getname()<<endl;
       fout.close();
       break;
     }
    }
   }
  
         
      
  case 3: 
   {
    break;
   }
  }
 }
}

void  management::showbook()
{
 [...];
 cout<<"┏━━━━━━━━━━━━━┓"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃      책방 관리시스템     ┃"<<endl;
 cout<<"┃         -책정보-         ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃  1. 소설책               ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┃  2. 만화책               ┃"<<endl;
 cout<<"┃                          ┃"<<endl;
 cout<<"┗━━━━━━━━━━━━━┛"<<endl;

}

void  management::showguest()
{
 int a;
 int n;
 char gbirth[20];
 char gname[20]; 
 char gphone[20]; 
 strcpy(gname,"NULL");
 while(1)
 {
  
  [...];
  bbb:
  n=0;
  cout<<"회원의 이름을 입력하세요 : "; cin>>gname;
  cout<<"회원의 생년월일을 입력하세요 : ";cin>>gbirth;
  for(int i=0;i<50;i++)
  {
   if(strcmp(gname,glist[i]->getname())==0 && strcmp(gbirth,glist[i]->getbirth())==0)
   {
    n=n+1;
    strcpy(gname,glist[i]->getname());
    strcpy(gphone,glist[i]->getphone());
    strcpy(gbirth,glist[i]->getbirth());
   }
  }
  if(n==0)
  {
   cout<<endl;
   cout<<"회원정보를 잘못입력하였습니다."<<endl<<endl;
   goto bbb;
  }
  cout<<"┏━━━━━━━━━━━━━┓"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┃      책방 관리시스템     ┃"<<endl;
  cout<<"┃        -회원정보-        ┃"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┃";cout<<"회원이름 : ";cout<<gname<<"         ┃"<<endl;
  cout<<"┃";cout<<"회원번호 : ";cout<<gphone<<"  ┃"<<endl;
  cout<<"┃";cout<<"생년월일 : ";cout<<gbirth<<"         ┃"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┗━━━━━━━━━━━━━┛"<<endl; 
  
  
  cout<<"┏━━━━━━━━━━━━━┓"<<endl;
  cout<<"┃      책방 관리시스템     ┃"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┃ 1. 다른회원조회          ┃ "<<endl;
  cout<<"┃ 2. 메뉴로 돌아가기       ┃"<<endl;
  cout<<"┗━━━━━━━━━━━━━┛"<<endl;
  cout<<"번호를 입력하시오 : ";
  cin>>a;
  if(a==1)
  {
   [...];
   goto bbb;
  }
  else if(a==2)
   break;

 }
}
//********************************************************************
int main()
{
 management bs;
 
 ifstream fin;
 fin.open("book.txt");

 char bname[20];
 int n;
 for(int i = 0 ; i< 50; i++)
 {
  fin >> bname >> n;
  bs.addbook(new book(bname, n));
 }

 fin.close();


 ifstream afin;
 afin.open("guest.txt");

 char gname[20];
 char gphone[20];
 char gbirth[20];
 for(i=0;i<50;i++)
 {
  afin>>gname>>gphone>>gbirth;
  bs.addguest(new guest(gname,gphone,gbirth));
 }

 afin.close();
 
 while(1)
 {
  [...];
  int choice;
  cout<<"┏━━━━━━━━━━━━━┓"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┃      책방 관리시스템     ┃"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┃  1. 대여                 ┃"<<endl;
  cout<<"┃  2. 반납                 ┃"<<endl;
  cout<<"┃  3. 회원정보 조회        ┃"<<endl;
  cout<<"┃  4. 책정보 조회          ┃"<<endl;
  cout<<"┃                          ┃"<<endl;
  cout<<"┗━━━━━━━━━━━━━┛"<<endl;
  cin>>choice;
  
  switch(choice)
  {
  case 1:
   bs.borrow();
   break;

  case 2:
   {
    bs.init();
    ifstream bfin;
    bfin.open("borrow.txt");   

    int n_br;
    char bname_br[20];
    char gname_br[20];
    

    for(i=0;i<50;i++)
    {
     bfin>>bname_br>>n_br>>gname_br;
     bs.addbook_br(new book_br(bname_br, n_br,gname_br));
    }
    
    bfin.close();
    bs.turn();
    break;
   }

  case 3:
   bs.showguest();
   break;
  case 4:
   bs.showbook();
   break;
  }

 }
  return 0;
}

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48769 65
2904896 ai나와서 이제 ㅆㅇㅆ같은애들 대거 양산될거 생각하니 무섭네 ㅋㅋ 프갤러(121.139) 12:52 7 0
2904894 세글자닉 우울증갤러리에서 활동한것도 [1] 프갤러(121.139) 12:37 26 1
2904891 속보 ) 윈도우12 2026년에 출시 연기, 윈도우12 사실상 개발 중 타이밍뒷.통수한방(1.213) 12:28 13 0
2904890 호캉스 좋다 543543갤로그로 이동합니다. 12:20 11 0
2904888 븍쪽도아니고남쪽에서 태어나서 좇같은새끼들일수록 잘살더라 [2] 타이밍뒷.통수한방(1.213) 11:57 23 0
2904885 인지과학조져라 [1] 손발이시립디다갤로그로 이동합니다. 11:01 18 0
2904883 진짜 오늘 딸라 쎄일하네 [5] chironpractor갤로그로 이동합니다. 09:54 64 0
2904881 가치를 인정해주지 않는 사람에겐 그만큼만 해주면 된다. [13] 프갤러(221.149) 09:17 103 0
2904880 프로그래머는 티 나는 쪽 아닌가? ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 09:09 59 0
2904877 뱀 가족 ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 08:58 20 0
2904876 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:52 18 0
2904875 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:51 24 0
2904874 프로그래머는 뭐를 해도 티가 안나. [1] 프갤러(59.16) 08:38 57 0
2904871 스타크래프트와 같은 RTS 게임에서 가장 치명적인 문제는 책사풍후갤로그로 이동합니다. 07:06 30 0
2904868 나님 달러 추가매수중 재명이 때문에 국가부도사태 터질듯 [2] ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 06:42 63 0
2904867 계산이랑 증명이란것도 결국 원숭이를 위해서 존재함 [2] RyuDOG갤로그로 이동합니다. 06:29 48 0
2904865 음기 충전 발명도둑잡기(118.216) 05:59 44 0
2904864 영국 산업혁명 때 빈곤층은 아동착취 찬성 발명도둑잡기(118.216) 05:45 19 0
2904863 X 계정 국적표기 업뎃 됐었구나 ㅇㅅㅇ [1] ㅇㅇ(112.157) 05:06 46 0
2904860 유튜브 타고 퍼지는 '1020 조폭' 실태 살펴보니 발명도둑잡기(118.216) 03:35 29 0
2904858 요즘 연애 발명도둑잡기(118.216) 03:23 49 0
2904857 진지하게 지금 이재명정부 잘하고 있냐? [1] ㅇㅇ(125.129) 03:23 53 0
2904856 당신이 아는 빅뱅은 틀렸다 발명도둑잡기(118.216) 03:19 25 0
2904849 위시캣이란 만화가 있나보네 발명도둑잡기(118.216) 02:58 16 0
2904847 X윈도우 프로그래밍 갤러리 개설 [2] FreePascal갤로그로 이동합니다. 02:55 51 0
2904846 "SM 이수만 파워 통했다" 이달의 소녀, '해시' 아이튠즈 발명도둑잡기(118.216) 02:27 19 0
2904844 레스토랑 메뉴판에 숨은 꼼수들 발명도둑잡기(118.216) 02:16 23 0
2904843 전처리 친구들을 그려봤어요 [2] ㅇㅇ(1.247) 02:13 72 1
2904842 환율 진짜 개 에바다. Move갤로그로 이동합니다. 02:11 44 0
2904840 const는 상수 아니냐? [3] ㅇㅇ갤로그로 이동합니다. 01:49 61 0
2904839 아 걍 취업하지 말고 농사나 지을까 [4] 프갤러(121.152) 01:45 52 0
2904838 퇴직하고 나니까 드는 생각인데 주 3일제 해야한다. [5] 프갤러(110.8) 01:45 56 0
2904837 진보당 뽑으면 주4일제 된다 발명도둑잡기(118.216) 01:35 23 0
2904836 크레마 루팅 검색하다가 이 블로그가 나왔는데 [1] 발명도둑잡기(118.216) 01:34 32 0
2904835 출근하기싫다 [4] 노력갤로그로 이동합니다. 01:27 42 0
2904834 책사풍후 난중일기 책사풍후갤로그로 이동합니다. 01:26 19 0
2904833 백수라 가난 때문에 고민이 많다 발명도둑잡기(118.216) 01:23 26 0
2904831 나는 8년쯤전 영화 '슈퍼사이즈미' 보고 햄버거 끊었다 발명도둑잡기(118.216) 01:21 21 0
2904828 크레마 전자책 단종됐는데 발명도둑잡기(118.216) 01:16 25 0
2904827 내일부터 버거킹 대신 라면 먹어야겠다. 프갤러(110.8) 01:12 28 0
2904826 이제 슬슬 대가리 깨지지? RyuDOG갤로그로 이동합니다. 01:11 75 0
2904824 결국 내 말중 틀린게 없잖아 [5] RyuDOG갤로그로 이동합니다. 01:09 85 1
2904823 광장시장 바가지를 욕하지만 엔비디아 지피유 독과점 바가지는 침묵 발명도둑잡기(118.216) 01:08 19 0
2904819 법원행정처, '법정 모욕' 극우 변호사들 고발‥"법치주의 훼손" 발명도둑잡기(118.216) 00:59 21 0
2904818 후 남의 돈 날로 처먹고 싶다. [5] 프갤러(110.8) 00:56 53 0
2904817 Hello world도 모르는 컴맹인데 이거 ai가 앰뒤진거임? 라그네파갤로그로 이동합니다. 00:54 38 0
2904816 "대만 문제 이해한다고"…트럼프가? 일본 난처해진 상황 발명도둑잡기(118.216) 00:54 32 0
2904814 냥덩이도 발명도둑잡기(118.216) 00:44 25 0
2904813 그 세글자 닉 우울증갤러리 출신이잖아 [4] 프갤러(106.101) 00:40 59 2
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2