|
@@@출력이 안되요.... 뭐가 잘못 된건지 모르겠어요...
#include<iostream>
using std::endl;
using std::cout;
using std::cin;
class Account
{
protected:
int id;
public:
Account(){}
Account(int _id);
int Getid();
virtual char * Getbook(){return 0;}
virtual char * Getname(){return 0;}
virtual char * Getname1(){return 0;}
virtual void showperson(){}
virtual void showbook(){}
};
Account::Account(int _id)
{
id=_id;
}
int Account::Getid()
{
return id;
}
////////////////////////////////
class person : public Account
{
char *name;
char *name1;
public:
person(int _id , char * name , char * name1);
person(const person & p);
~person();
char * Getname();
char * Getname1();
void showbook();
};
person::person(int _id , char *_name , char *_name1):Account(_id)
{
name=new char[strlen(_name)+1];
strcpy(name,_name);
name1=new char[strlen(_name1)+1];
strcpy(name1,_name1);
}
person::person(const person & p)
{
name=new char[strlen(p.name)+1];
strcpy(name,p.name);
name1=new char[strlen(p.name1)+1];
strcpy(name1,p.name1);
}
person::~person()
{
delete []name;
delete []name1;
}
char * person::Getname(){return name;}
char * person::Getname1(){return name1;}
void person::showbook()
{
cout<<"****도서조회****"<<endl;
cout<<"도 서 I D: "<<id<<endl;
cout<<"도 서 이 름: "<<name<<endl;
cout<<"도 서 출판사: "<<name1<<endl;
}
/////////////////////////////////////////
class Book : public Account
{
char * name;
public:
Book(int _id,char * _name);
Book(const Book & b);
~Book();
char * Getbook();
void showperson();
};
Book::Book(int _id , char * _name):Account(_id)
{
name=new char[strlen(_name)+1];
strcpy(name,_name);
}
Book::Book(const Book & b)
{
name=new char[strlen(b.name)+1];
strcpy(name,b.name);
}
Book::~Book()
{
delete []name;
}
char * Book::Getbook(){return name;}
void Book::showperson()
{
cout<<"****고객조회****"<<endl;
cout<<"고 객 ID: "<<id<<endl;
cout<<"고객이름: "<<name<<endl;
}
///////////////////////////////////////////////
class Control : public Account
{
Account * List[10];
int index;
public:
Control():index(0) {}
void print();
void Accountmake();
void Bookmake();
void personlist();
void booklist();
};
void Control::print()
{
cout<<"*****메뉴*****"<<endl;
cout<<"1.고객등록"<<endl;
cout<<"2.도서등록"<<endl;
cout<<"3.고객조회"<<endl;
cout<<"4.도서조회"<<endl;
}
void Control::Accountmake()
{
char name[20];
int id;
cout<<"****고객등록****"<<endl;
cout<<"I D: "; cin>>id;
cout<<"이름: "; cin>>name;
List[index++]=new Book(id,name) ;
}
void Control::Bookmake()
{
int id;
char name[20];
char name1[20];
cout<<"****도서등록****"<<endl;
cout<<"책 번 호: ";cin>>id;
cout<<"도서이름: ";cin>>name;
cout<<"출 판 사: ";cin>>name1;
List[index++]=new person(id,name,name1);
}
void Control::personlist()
{
for(int i=0; i<index; i++)
{
List[i]->showperson();
}
}
void Control::booklist()
{
for(int j=0; j<index; j++)
{
List[j]->showbook();
}
}
////////////////////////////////////////////
enum{MAKE=1, BMAKE , PLIST , BLIST , EXIT};
int main(void)
{
int choice;
Control acc;
while(1)
{
acc.print();
cout<<"선택: ";cin>>choice;
switch(choice)
{
case MAKE:
acc.Accountmake();
break;
case BMAKE:
acc.Bookmake();
break;
case PLIST:
acc.showperson();
break;
case BLIST:
acc.showbook();
break;
case EXIT:
return 0;
default:
cout<<"다시선택하세요"<<endl;
break;
}
}
return 0;
}
|