리펙토링 해야 하는데 귀찮아서리.....ㅡ.ㅡ;;;; {{{~cpp #include #include #include #include using namespace std; #include class UserInfo { private: string szName; // User's name unsigned int nSchoolNumber; // User's school number public: UserInfo() {} UserInfo( string szN, unsigned int nSN ) { szName = szN; nSchoolNumber = nSN; } unsigned int getSchoolNumber() { return nSchoolNumber; } string getName() { return szName; } }; class BookInfo { private: int nBookNumber; string szBookName; string szWriter; string szPublishingCompany; bool bLone; UserInfo * pLendPeople; public: BookInfo() {} BookInfo( int nBN, string szBName, string szW, string szPC ) { nBookNumber = nBN; szBookName = szBName; szWriter = szW; szPublishingCompany = szPC; bLone = false; } int getBookNumber() { return nBookNumber; } string getBookName() { return szBookName; } string getWriter() { return szWriter; } string getPublishingCompany() { return szPublishingCompany; } void lendBook(UserInfo * pUi) { pLendPeople = pUi; bLone = true; } }; class DataBase { private: int nNextBookNumber; vector userinfo; vector bookinfo; public: DataBase() { // Read the number of Book... ifstream f; f.open("BookNumber.dat"); string szNextNum; while (!f.eof()) getline(f, szNextNum); unsigned int nTNN; double nTNN2; for (int k = 0 ; k < szNextNum.size() ; k++) // convert 'char' into 'int' { nTNN += ( szNextNum[k] - 48 ) * pow(10.0, nTNN2); nTNN2--; } nNextBookNumber = nTNN; f.close(); // end // Read data from UserData file... ifstream fin; fin.open("UserData.dat"); string szTemp; vector nT; unsigned int nTempNum = 0; double nTempNum2 = 0.0; while (!fin.eof()) { getline(fin, szTemp); for (int i = 0 ; i < szTemp.size() ; i++) { if ( szTemp[i] == ',' ) nT.push_back(i); } string szTempNum(szTemp.begin(), szTemp.begin() + nT[0]); string szTempName(szTemp.begin() + nT[0] + 1, szTemp.size()); nTempNum2 = szTempNum.size() - 1; for (int j = 0 ; j < szTempNum.size() ; j++) // convert 'char' into 'int' { nTempNum += ( szTempNum[j] - 48 ) * pow(10.0, nTempNum2); nTempNum2--; } UserInfo * ui = new UserInfo(szTempName , nTempNum); userinfo.push_back(ui); } fin.close(); // end // Read data from BookData file... ifstream fin2; fin2.open("BookData.dat"); string szTemp2; vector nT2; nTempNum = 0; nTempNum2 = 0.0; while (!fin2.eof()) { getline(fin2, szTemp2); for (int i = 0 ; i < szTemp2.size() ; i++) { if ( szTemp2[i] == ',' ) nT2.push_back(i); } // string 변수(배열 시작, 배열 마지막); string szTemp2BookNum(szTemp2.begin(), szTemp2.begin() + nT2[0]); string szTemp2BookName(szTemp2.begin() + nT2[0] + 1, szTemp2.begin() + nT2[1]); string szTemp2Writer(szTemp2.begin() + nT2[1] + 1, szTemp2.begin() + nT2[2]); string szTemp2PublishingCompany(szTemp2.begin() + nT2[2] + 1, szTemp2.size()); nTempNum2 = szTemp2BookNum.size() - 1; for (int j = 0 ; j < szTemp2BookNum.size() ; j++) // convert 'char' into 'int' { nTempNum += ( szTemp2BookNum[j] - 48 ) * pow(10.0, nTempNum2); nTempNum2--; } BookInfo * bi = new BookInfo(nTempNum , szTemp2BookName , szTemp2Writer , szTemp2PublishingCompany); bookinfo.push_back(bi); } fin2.close(); // end } void insertUserData(UserInfo * ui) { userinfo.push_back(ui); } void deleteUserData(int nUserNum) { for (int i = 0 ; i < userinfo.size() ; i++) { if ( userinfo[i]->getSchoolNumber() == nUserNum ) { userinfo.erase(userinfo.begin()+i); return; } } } void insertBookData(BookInfo * bi) { bookinfo.push_back(bi); } void deleteBookData(int nBookNum) { for (int i = 0 ; i < bookinfo.size() ; i++) { if ( bookinfo[i]->getBookNumber() == nBookNum ) { bookinfo.erase(bookinfo.begin()+i); return; } } } int getNextBookNumber() { nNextBookNumber++; return nNextBookNumber; } void showAll() { } }; }}} = 잡담 = 음. 근데 이거 스펙대로 한건가? 스펙에는 linked list 아니면, array 쓰라고 한것 같은뎅..-_-a - 임인택 그거 대신 STL을 썼죠.. vector 도 linked list 로 되어있잖아요^^;; -- 상욱(["whiteblue"]) 음. 정확히 linked list 라고는 말할수 없고.. 친척 정도라고 말할수 있으려나. 두개 사이에 교집합이 존재하지만, 어떤것이 다른 하나에 속한것은 아니니 - 임인택 벡터 링크드 리스트 아닌데;; list가 링크드 리스트다. 벡터는 내부적으로 동적 배열 씀. --인수 그런가요?.. 디버그 모드 돌려보니깐 링크드 리스트처럼 되던디.... 아니었군요... -- 상욱(["whiteblue"])