<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84%2F%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%2F%EC%A1%B0%ED%98%84%ED%83%9C</id>
	<title>C++스터디 2005여름/도서관리프로그램/조현태 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84%2F%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%2F%EC%A1%B0%ED%98%84%ED%83%9C"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84/%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EC%A1%B0%ED%98%84%ED%83%9C&amp;action=history"/>
	<updated>2026-05-15T20:39:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84/%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=29946&amp;oldid=prev</id>
		<title>imported&gt;qa22ahj at 19:13, 8 January 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84/%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=29946&amp;oldid=prev"/>
		<updated>2014-01-08T19:13:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:13, 8 January 2014&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-29945:rev-29946 --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;qa22ahj</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84/%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=29945&amp;oldid=prev</id>
		<title>imported&gt;qa22ahj at 19:13, 8 January 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=C%2B%2B%EC%8A%A4%ED%84%B0%EB%94%94_2005%EC%97%AC%EB%A6%84/%EB%8F%84%EC%84%9C%EA%B4%80%EB%A6%AC%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=29945&amp;oldid=prev"/>
		<updated>2014-01-08T19:13:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 느낀점 및 설명 ==&lt;br /&gt;
이 더운 무더위에 나처럼 판타지나 보면서 뒹굴..이 아닌 열심히 공부하는 학생들을 위해서~&lt;br /&gt;
이렇게 짜면 망한다는 사실을 보여주려고..(뭐냐! 원래는 그럴의도가 전혀 없었..짜다보니~ ~_~) 짜버렸다.ㅎ&lt;br /&gt;
(거기다 이페이지 [[LittleAOI]]를 링크하고 있는걸로 봐서 관계있는듯..해서..ㅎ 난몰라~ &amp;gt;ㅁ&amp;lt;;;)&lt;br /&gt;
뭐.. 참고 할만한 부분은 참고하길 바란다..(만은 짜놓고 보니 도움이 안될듯..)&lt;br /&gt;
일단 내용을 읽어보면 데이터를 &amp;#039;추가&amp;#039; 는 하지만 &amp;#039;삭제&amp;#039;는 하지않는다. (아싸아~)&lt;br /&gt;
이로써 배열을 사용해도 빈공간이 생겨 자료를 땡긴다거나 하는 고생은 하지 않아도 된다는..(어이 그렇다고 배열로 짜냐;;)&lt;br /&gt;
(사실 트리구조를 이용해서 적어도 이름만이라도 정렬을 하면 검색속도를 향상할 수 있으나..귀찮았다.....)&lt;br /&gt;
C++의 특성이 많이 드러나지 않지만..(아마 본인이 C에 익숙한 탓..지뢰파인더는 그나마 C++적인데..//광고는 금물.)&lt;br /&gt;
나름대로 자료구조를 분리 시켰다. (그래도 C++답지는 않은듯..느낌탓인가..)&lt;br /&gt;
(참가하고 싶으나 참가를 못하고..C++도 배운적이 없는탓에.(2학기에 한다니까) 전혀 C++답지 않지만 알고리즘은 있으니.ㅎ그거라도)&lt;br /&gt;
&lt;br /&gt;
다른 작성하시는 분들은 이 무더위에 고생하시는데 잘 짜시길 바라며..&lt;br /&gt;
&lt;br /&gt;
그럴일 없겠지만 필요하면 참고하라고..그럼..&lt;br /&gt;
&lt;br /&gt;
== 소스 ==&lt;br /&gt;
=== main.cpp ===&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;class.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int input_book();&lt;br /&gt;
 int book_process(int);&lt;br /&gt;
 &lt;br /&gt;
 book_database* datas;&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	int select=0;&lt;br /&gt;
 	datas=new book_database();&lt;br /&gt;
 	while (4!=select)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;1.자료입력 2.대여 3. 반납 4.종료\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; select;&lt;br /&gt;
 		fflush(stdin);&lt;br /&gt;
 		if (1==select)&lt;br /&gt;
 			input_book();&lt;br /&gt;
 		else if (2==select || 3==select)&lt;br /&gt;
 			book_process(select-2);&lt;br /&gt;
 	}	&lt;br /&gt;
 	delete datas;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void print_line(char* temp_name, char* temp_writer, char* temp_isbn)&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 이름 : &amp;quot; &amp;amp;lt;&amp;amp;lt; temp_name &amp;amp;lt;&amp;amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 저자 : &amp;quot; &amp;amp;lt;&amp;amp;lt; temp_writer &amp;amp;lt;&amp;amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 ISBN : &amp;quot; &amp;amp;lt;&amp;amp;lt; temp_isbn &amp;amp;lt;&amp;amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int input_book()&lt;br /&gt;
 {&lt;br /&gt;
 	char temp_name[256];&lt;br /&gt;
 	char temp_writer[256];&lt;br /&gt;
 	char temp_isbn[256];&lt;br /&gt;
 	char y_n=0;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 이름을 입력해주세요&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin.getline(temp_name,256);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 저자를 입력해주세요&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin.getline(temp_writer,256);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책의 ISBN을 입력해주세요&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin.getline(temp_isbn,256);&lt;br /&gt;
 	print_line(temp_name,temp_writer,temp_isbn);&lt;br /&gt;
 	while (y_n!=&amp;#039;n&amp;#039; &amp;amp;amp;&amp;amp;amp; y_n!=&amp;#039;N&amp;#039;)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\n맞습니까?(Y/N)? &amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; y_n;&lt;br /&gt;
 		fflush(stdin);&lt;br /&gt;
 		if (&amp;#039;y&amp;#039;==y_n || &amp;#039;Y&amp;#039;==y_n )&lt;br /&gt;
 		{&lt;br /&gt;
 			datas-&amp;amp;gt;input_data(temp_name,temp_writer,temp_isbn);&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int book_process(int select)&lt;br /&gt;
 {&lt;br /&gt;
 	int selected=0, where;&lt;br /&gt;
 	const char output_data[2][5]={&amp;quot;대여&amp;quot;,&amp;quot;반납&amp;quot;};&lt;br /&gt;
 	char temp_char[256], temp_name[256], temp_writer[256], temp_isbn[256];&lt;br /&gt;
 	char y_n=0;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; output_data[select] &amp;amp;lt;&amp;amp;lt; &amp;quot;하실 책을 무엇으로 검색하시겠습니까? (1.이름 2.ISBN)\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	while (selected&amp;amp;lt;1 || selected&amp;amp;gt;2)&lt;br /&gt;
 	{&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; selected;&lt;br /&gt;
 	}&lt;br /&gt;
 	fflush(stdin);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;검색어를 입력해 주세요.\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin.getline(temp_char,256);&lt;br /&gt;
 	where=datas-&amp;amp;gt;such(temp_char,selected);&lt;br /&gt;
 	if (-1==where)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;검색어를 찾을 수 없습니다.\n&amp;quot;;&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	datas-&amp;amp;gt;return_line(where, temp_name, temp_writer, temp_isbn);&lt;br /&gt;
 	print_line(temp_name,temp_writer,temp_isbn);&lt;br /&gt;
 	while (y_n!=&amp;#039;n&amp;#039; &amp;amp;amp;&amp;amp;amp; y_n!=&amp;#039;N&amp;#039;)&lt;br /&gt;
 	{&lt;br /&gt;
 		fflush(stdin);&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\n맞습니까?(Y/N)? &amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; y_n;&lt;br /&gt;
 		if (&amp;#039;y&amp;#039;==y_n || &amp;#039;Y&amp;#039;==y_n )&lt;br /&gt;
 		{&lt;br /&gt;
 			if (-1==datas-&amp;amp;gt;data_process(where, (select+1)%2))&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; output_data[select] &amp;amp;lt;&amp;amp;lt; &amp;quot;에 실패하였습니다.\n&amp;quot;;&lt;br /&gt;
 			else&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; output_data[select] &amp;amp;lt;&amp;amp;lt; &amp;quot;을 완료하였습니다.\n&amp;quot;;&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return -2;&lt;br /&gt;
 }&lt;br /&gt;
=== class.cpp ===&lt;br /&gt;
 #include &amp;quot;class.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int book_database::get_size(char* target)&lt;br /&gt;
 {&lt;br /&gt;
 	int i=0;&lt;br /&gt;
 	while (0!=target[i])&lt;br /&gt;
 		++i;&lt;br /&gt;
 	return i+1;&lt;br /&gt;
 }&lt;br /&gt;
 void book_database::str_copy(char* target, char* original)&lt;br /&gt;
 {&lt;br /&gt;
 	for (register int i=0; 0!=original[i];++i)&lt;br /&gt;
 		target[i]=original[i];&lt;br /&gt;
 	target[i]=0;&lt;br /&gt;
 }&lt;br /&gt;
 int book_database::str_cmp(char* target_a, char* target_b)&lt;br /&gt;
 {&lt;br /&gt;
 	for (register int i=0; 0!=target_a[i];++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (target_a[i]!=target_b[i])&lt;br /&gt;
 			return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	if (target_a[i]!=target_b[i])&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 book_database::book_database()&lt;br /&gt;
 {&lt;br /&gt;
 	number_data=0;&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 		datas[i]=0;&lt;br /&gt;
 }&lt;br /&gt;
 book_database::~book_database()&lt;br /&gt;
 {&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;number_data; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j=0; j&amp;amp;lt;MAX_HANGMOK; ++j)&lt;br /&gt;
 			delete datas[j][i];&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 		delete datas[i];&lt;br /&gt;
 }&lt;br /&gt;
 void book_database::input_data(char* input_name, char* input_writer, char* input_isbn)&lt;br /&gt;
 {&lt;br /&gt;
 	char **temp_datas[MAX_HANGMOK];&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 		temp_datas[i]=new char*[number_data+1];&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(register int j=0; j&amp;amp;lt;number_data; ++j)&lt;br /&gt;
 			temp_datas[i][j]=datas[i][j];&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 		delete datas[i];&lt;br /&gt;
 	temp_datas[0][number_data]=new char[get_size(input_name)];&lt;br /&gt;
 	str_copy(temp_datas[0][number_data],input_name);&lt;br /&gt;
 	temp_datas[1][number_data]=new char[get_size(input_writer)];&lt;br /&gt;
 	str_copy(temp_datas[1][number_data],input_writer);&lt;br /&gt;
 	temp_datas[2][number_data]=new char[get_size(input_isbn)];&lt;br /&gt;
 	str_copy(temp_datas[2][number_data],input_isbn);&lt;br /&gt;
 	temp_datas[3][number_data]=new char;&lt;br /&gt;
 	temp_datas[3][number_data][0]=0;&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;MAX_HANGMOK; ++i)&lt;br /&gt;
 		datas[i]=temp_datas[i];&lt;br /&gt;
 	++number_data;&lt;br /&gt;
 }&lt;br /&gt;
 int book_database::such(char* target, int select_menu)&lt;br /&gt;
 {&lt;br /&gt;
 	for (register int i=0; i&amp;amp;lt;number_data; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		char* temp_target;&lt;br /&gt;
 		if (1==select_menu)&lt;br /&gt;
 			temp_target=datas[0][i];&lt;br /&gt;
 		else&lt;br /&gt;
 			temp_target=datas[2][i];&lt;br /&gt;
 		if (0==str_cmp(temp_target,target))&lt;br /&gt;
 			return i;&lt;br /&gt;
 	}&lt;br /&gt;
 	return -1;&lt;br /&gt;
 }&lt;br /&gt;
 void book_database::return_line(int number, char* temp_name, char* temp_writer, char* temp_isbn)&lt;br /&gt;
 {&lt;br /&gt;
 	str_copy(temp_name,datas[0][number]);&lt;br /&gt;
 	str_copy(temp_writer,datas[1][number]);&lt;br /&gt;
 	str_copy(temp_isbn,datas[2][number]);&lt;br /&gt;
 }&lt;br /&gt;
 int book_database::data_process(int data_number, int state_number)&lt;br /&gt;
 {&lt;br /&gt;
 	if (state_number==*datas[3][data_number])&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	*datas[3][data_number]=state_number;&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
=== class.h ===&lt;br /&gt;
 const int MAX_HANGMOK=4;&lt;br /&gt;
 &lt;br /&gt;
 class book_database{&lt;br /&gt;
 private:&lt;br /&gt;
 	int number_data;&lt;br /&gt;
 	char **datas[MAX_HANGMOK];&lt;br /&gt;
 	int get_size(char*);&lt;br /&gt;
 	void str_copy(char*, char*);&lt;br /&gt;
 	int str_cmp(char* , char* );&lt;br /&gt;
 public:&lt;br /&gt;
 	book_database();&lt;br /&gt;
 	~book_database();&lt;br /&gt;
 	void input_data(char* , char* , char* );&lt;br /&gt;
 	int such(char* , int );&lt;br /&gt;
 	void return_line(int , char* , char* , char* );&lt;br /&gt;
 	int data_process(int , int );&lt;br /&gt;
 };&lt;br /&gt;
== 나에게 할말 ==&lt;br /&gt;
----&lt;br /&gt;
[[LittleAOI]] [[C++스터디_2005여름/도서관리프로그램]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;qa22ahj</name></author>
	</entry>
</feed>