U E D R , A S I H C RSS

손동일/Telephone Book

Describe 손동일/TelephoneBook here.

Coding ..

~cpp 
#include <iostream>
using namespace std;

class TelephoneBook
{
private:
	char tel_num[14];
	char name[20];
	char group[20];
	char memo[50];
	int count;				// 등록되는 전화번호의 개수 ( 한명 등록시 1씩 증가 )
	int mode;				// 항목 선택시에 사용되는 변수
	int menu_num;			// menu 선택시에 사용되는 변수
	char compare[20];
	char compare2[14];
//	char *compare2;
//	char *compare3;
//	char *compare4;
//	char *compare5;

	char compare3[20];
	char compare4[20];
	char compare5[50];

public:

	TelephoneBook();
	~TelephoneBook();
	void show();			// 보여주는 것을 파일을 직접? 아니면 값을 옮겨서 옮긴 값을..
	void input();			// 전화번호부에 적을 수 있는 환경을 만든다.
	void save();			// 적은 내용들을 파일에 저장한다.
	void menu();
	void check();			// 검색 항목을 선택하는 함수
	void check_search();	// 
	int mnreturn();			// menu_num 리턴해주는 함수
	void change();			// 수정메뉴 선택시
	void remove();			// 삭제메뉴 선택시
};

한칸띄고

~cpp 


두번째 장소

~cpp 
#include <iostream>  
using namespace std;  
#include <fstream>  
#include "TelephoneBook.h"  
#include <cstring>  
 
ofstream fout;    
ifstream fin;   
  
const char *filename = "text.txt";  
const int base_save = 4;                        // 처음 기본으로 저장되어있는 전화번호 숫자.  
  


TelephoneBook::TelephoneBook()
{  
//	compare2 = new char[14];
//	compare3 = new char[20];
//	compare4 = new char[20];
//	compare5 = new char[50];
	count = 0;
	menu_num = 0;
};  
  
TelephoneBook::~TelephoneBook()  
{
};  
  
void TelephoneBook::input()                     // 전화번호부에 적을 수 있는 환경을 만든다.  
{  

        cout << "전화번호 : " ;
        cin >> tel_num;
        cout << "이름 : ";  
        cin >> name;  
        cout << "그룹명 : ";  
        cin >> group;  
        cout << "메모 : ";  
        cin >> memo;  
        save();  
}  
  
void TelephoneBook::save()                      // 적은 내용들을 파일에 저장한다.  
{  
        fout.open(filename, ios::app);  
          
        fout << tel_num << endl;  
        fout << name << endl;  
        fout << group << endl;  
        fout << memo << endl;  
  
        count = count + 1;  
  
        fout.close();  
}  
  
  
void TelephoneBook::menu()  
{  
        cout << "> 전화번호부 (입력:1, 검색:2, 끝내기:3)" << endl;   
        cin >> menu_num;
        if(menu_num == 1)  
        {  
                input();  
        }  
        else if(menu_num == 2)  
        {  
                check();
// 확인하기 위한 문장
//				cout << "메뉴 들어갑니다. " << endl;
//                show();  
        }
        else   
        {  
                exit(0);  
        }  
}  
  
void TelephoneBook::check_search()  
{  
		fin.open(filename);

/*
		if(check_num >= 1)		// 구문체크를 위해서..
		{
			cout << compare << endl;

			cout << compare2 << endl << compare3 << endl << compare4<<endl<<compare5<< endl;
		}
*/
	    for(int i=0; i<(base_save+count)*4; i++)
		{  
                fin.getline(compare2, 14, '\n');
                fin.getline(compare3, 20, '\n');  
                fin.getline(compare4, 20, '\n');  
                fin.getline(compare5, 50, '\n'); 
				
				if(mode == 1)
                {  
                        if(!strcmp(compare, compare2))                  // 두개가 같다면 0을 리턴한다.  
                        {  
                                show();
                        }  
                }  
                else if(mode == 2)  
                {  
                        if(!strcmp(compare, compare3))                  // 두개가 같다면 0을 리턴한다.  
                        {  
                                show();
//								check_num = check_num + 1;		// 구문 체크를 위해서
						// break 를 안써서.. ㅡㅜ;;
						// compare 들이 값을 가지지 못해버렸다.. 

								break;
                        }  
                }  
                else if(mode == 3)  
                {  
                        if(!strcmp(compare, compare4))                  // 두개가 같다면 0을 리턴한다.  
                        {  
                                show();  
                        }  
                }  
        }
//		cout << "for 문이 끝났습니다. " << endl;
		fin.close();
//		cout << compare2 << endl << compare3 << endl << compare4 << endl << compare5 << endl;
		
}  
  
void TelephoneBook::check()                     // 검색 항목을 선택하는 함수  
{    
        cout << "> 검색항목선택 (전화번호:1, 이름:2, 그룹명:3)" << endl;   
        cin >> mode;
  
        if(mode == 1)  
        {  
                cout << "전화번호 : ";  
                cin >> compare;  
                  
                check_search();   					
        }  
        else if(mode == 2)  
        {  
                cout << "이름 : ";  
                cin >> compare;
//				cout << compare;

                check_search();
        }  
        else if(mode == 3)  
        {  
                cout << "그룹명 : ";  
                cin >> compare;  
  
                check_search();  
        }  

}  
  
void TelephoneBook::show()   
{  
    cout << "전화번호 : " << compare2 << endl;   
    cout << "이름 : " << compare3 << endl;   
    cout << "그룹명 : " << compare4 << endl;   
    cout << "메모 : " << compare5 << endl;   

}

void TelephoneBook::change()
{
	cout << "아직 미완성 입니다." <<endl;
//	cout << compare2 << endl << compare3 << endl << compare4 << endl << compare5 << endl;
//	fout.open(filename, ios::in | ios::out | ios::app );

//	strcpy(compare2, "             ");

//	fout.seekp(compare2);
//	fout << compare2;

}

void TelephoneBook::remove()
{
	cout << "아직 미완성 입니다." <<endl;

//	cout << compare2 << endl << compare3 << endl << compare4 << endl << compare5 << endl;

}

 
// 코드의 문제점
// 계속적으로 돌리는 것을 통해서 여러개의 것들이 계속 돌게되는 ㅡㅡ ㅋ;; 

int TelephoneBook::mnreturn()
{
	return menu_num;
}
 
 
int main()  
{  
//	TelephoneBook *a = new TelephoneBook();

	int ddd;

	TelephoneBook a;

	do
	{
		a.menu();
		if(a.mnreturn() == 2)
		{
			cout << "(수정:1, 삭제:2, 상위메뉴:3) " << endl;
			cin >> ddd;
			if(ddd != 3)
				break;
		}
	}while(a.mnreturn() == 2);

	if(ddd == 1)
		a.change();
	if(ddd == 2)
		a.remove();
	
		cout << "끝났습니다." << endl;
 
        return 0;  
}  
 






Think about it..

~cpp 
6/4 토토토토토토

포인터를 이용할 수 있는 방법일 듯.. 

	compare2 = new char [4];

		cin >> compare;
//		int ok;
		fin.getline(compare2, 30, '\n');
//		fin >> compare2[0];
		cout << compare2;





Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:14
Processing time 0.0124 sec