Ejemplo n.º 1
0
/*====================================================================================
// Function : search the Clients information in list.
// Pre		: list has to have one Clients at least.
// Post		: display the Clients information if found.
=====================================================================================*/
int Application::SearchList(ClientData &Clients)
{
	ClientData Client;	// 검색하고자하는 부품 생성
	ClientData temp;	// 리스트 내의 Client값
	int index = 0;		// 인덱스 초기화
	bool found= false;	// 검색 스위치정의
	y = 4;
	CW.ShowCW();
	cout << "\t┌──────────────────┐" << endl;
	cout << "\t│             메    뉴               │" << endl;
	cout << "\t│  1. 주민등록번호    검 색          │" << endl;
	cout << "\t│  2. 이 름   검 색                  │" << endl;
	cout << "\t│  3. 전 화 번 호   검 색            │" << endl;
	cout << "\t│  4. 주 소   검 색                  │" << endl;
	cout << "\t└──────────────────┘" << endl;
	cout << "\t  입력 : 키보드 방향키(위, 아래) & 엔터" << endl;
	gotoxy(42,y);
	cout << "◀";
	for(;;){
		key=0;
		do if(kbhit()) key=getch();
		while(key==224);
		gotoxy(42,y);
		cout <<" ";
		if(key==up && y>=5)y--;
		if(key==down && y<=6)y++;
		if(key==13)break;
		gotoxy(42,y);
		cout <<"◀";
		Sleep(100);
	}
	system("cls");
	/*	cout << endl << endl;
	cout << "\t********************************"<<endl;
	cout << "\tInput selecting number"<< endl;
	cout << "\t1 : Selecting by Number "<< endl;
	cout << "\t2 : Selecting by Name "<< endl;
	cout << "\t3 : Selecting by Phone "<< endl;
	cout << "\t4 : Selecting by Address "<< endl;
	cout << "\t********************************"<<endl;
	cout <<"\t select number --->";
	cin>> select;
	*/
	y -= 3;
	m_ClientList.ResetList();
	switch(y)
	{

	case 1:							//부품 번호 검색시
		Client.GetNumberFromKB();		//부품 번호 입력
		for(int i =0;i<m_ClientList.LengthIs();i++)
		{
			m_ClientList.GetCurrentItem(temp);//리스트 내의 데이터 정보를 차례대로 불러옴
			if(*temp.GetNumberlist()==*Client.GetNumberlist())//리스트번호과 검색되는 부품 번호 확인 
			{
				Clients = temp;						//동일할 경우 부품 정보 복사
				found = true;							// 검색스위치 트루
				index = i;
				break;
			}
		}
		if(found == false)								//검색에 실패했을 경우
		{
			cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl;
			return false;
		}
		break;
	case 2:
		Client.GetNameFromKB();								//부품 이름 검색시
		for(int i =0;i<m_ClientList.LengthIs();i++)
		{
			m_ClientList.GetCurrentItem(temp);
			if(temp.GetNamelist()==Client.GetNamelist())		//리스트이름과 검색되는 부품 이름 확인 
			{
				Clients = temp;				//동일할 경우 부품 정보 복사
				found = true;								// 검색스위치 트루
				index = i;
				break;
			}

		}
		if(found == false)									//검색에 실패했을 경우
		{
			cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl;
			return false;
		}
		break;
	case 3:	
		Client.GetPhoneFromKB();							//부품 규격  검색시
		for(int i =0;i<m_ClientList.LengthIs();i++)
		{
			m_ClientList.GetCurrentItem(temp);
			if(temp.GetPhonelist().compare(Client.GetPhonelist()))//리스트이름과 검색되는 부품 이름 확인
			{
				Clients = temp;								//동일할 경우 부품 정보 복사
				found = true;									// 검색스위치 트루
				index = i;
				break;
			}
		}
		if(found == false)										//검색에 실패했을 경우
		{
			cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl;
			return false;
		}
		break;
	case 4:
		Client.GetAddressFromKB();						//부품 규격  검색시
		for(int i =0;i<m_ClientList.LengthIs();i++)
		{
			m_ClientList.GetCurrentItem(temp);
			if(temp.GetAddresslist()==Client.GetAddresslist())//리스트이름, 규격 번호과 검색되는 부품 이름, 규격 번호 확인
			{
				Clients = temp;
				found = true;
				index = i;
				break;
			}
		}
		if(found == false)						//검색에 실패했을 경우
		{
			cout << "\t !! 고객을 찾을 수 없습니다 !!" << endl;
			return false;
		}
		break;

	default:									//잘못된 명령어처리
		cout << "\tWrong choice"<< endl;
		break;
	}

	if(found == true)
	{
		return 1;
	}

	return 0;
}