<?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%EB%AC%B8%EB%B3%B4%EC%B0%BD</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%EB%AC%B8%EB%B3%B4%EC%B0%BD"/>
	<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/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;action=history"/>
	<updated>2026-05-15T17:49:21Z</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/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=29944&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</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/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=29944&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:46Z</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;
Book 클래스와 ManageBook 클래스로 나눠서 각자 맡은바 임무를 잘 해 주도록 일을 분담했다. 스터디 시간에 Null 포인터에 자꾸 노드를 삽입했기 때문에 노드가 추가 되지 않았다. 그 전에도 그런 실수를 했는데 똑같은 실수를 반복하다니... &lt;br /&gt;
&lt;br /&gt;
우선 스터디 시간에 버벅대서 마무리 짓지 못한거 미안하게 생각합니다. 자신이 꼭 스스로 프로그램을 짜시고, 그런 후에 제 코드와 비교해 보시기 바랍니다. 저보다 여러분이 잘한 점, 혹은 제가 잘한 점이 무엇인지 생각해 보시기 바랍니다. 어떤게 더 확장성과 재사용성에 유리한지 곰곰히 생각해보세요.&lt;br /&gt;
&lt;br /&gt;
== 코드 ==&lt;br /&gt;
==== book.h ====&lt;br /&gt;
 #ifndef BOOK_H_&lt;br /&gt;
 #define BOOK_H_&lt;br /&gt;
 &lt;br /&gt;
 class Book&lt;br /&gt;
 {&lt;br /&gt;
 private:&lt;br /&gt;
 	char name[20];&lt;br /&gt;
 	char writer[20];&lt;br /&gt;
 	char ISBN[20];&lt;br /&gt;
 	bool isBorrow;&lt;br /&gt;
 public:&lt;br /&gt;
 	Book * next;&lt;br /&gt;
 &lt;br /&gt;
 	Book();&lt;br /&gt;
 	char * get_name();&lt;br /&gt;
 	char * get_writer();&lt;br /&gt;
 	char * get_ISBN();&lt;br /&gt;
 	bool get_state();&lt;br /&gt;
 &lt;br /&gt;
 	void set_state(bool state);&lt;br /&gt;
 	void input();&lt;br /&gt;
 	void operator=(Book &amp;amp;amp; a);&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 #endif&lt;br /&gt;
==== book.cpp ====&lt;br /&gt;
 #include &amp;quot;book.h&amp;quot;&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;cstring&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 Book::Book()&lt;br /&gt;
 {&lt;br /&gt;
 	name[0] = writer[0] = ISBN[0] = NULL;&lt;br /&gt;
 	isBorrow = false;&lt;br /&gt;
 	next = NULL;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Book::input()&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책 명 : &amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; name;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;작가 : &amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; writer;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;ISBN : &amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; ISBN;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char * Book::get_ISBN()&lt;br /&gt;
 {&lt;br /&gt;
 	return ISBN;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char * Book::get_name()&lt;br /&gt;
 {&lt;br /&gt;
 	return name;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char * Book::get_writer()&lt;br /&gt;
 {&lt;br /&gt;
 	return writer;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 bool Book::get_state()&lt;br /&gt;
 {&lt;br /&gt;
 	return isBorrow;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Book::set_state(bool state)&lt;br /&gt;
 {&lt;br /&gt;
 	isBorrow = state;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void Book::operator =(Book &amp;amp;amp; a)&lt;br /&gt;
 {&lt;br /&gt;
 	strcpy(name, a.name);&lt;br /&gt;
 	strcpy(writer, a.writer);&lt;br /&gt;
 	strcpy(ISBN, a.ISBN);&lt;br /&gt;
 	next = a.next;&lt;br /&gt;
 }&lt;br /&gt;
==== manageBook.h ====&lt;br /&gt;
 #ifndef MANAGEBOOK_H_&lt;br /&gt;
 #define MANAGEBOOK_H_&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;book.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 class ManageBook&lt;br /&gt;
 {&lt;br /&gt;
 private:&lt;br /&gt;
 	Book * book_list;&lt;br /&gt;
 public:&lt;br /&gt;
 	ManageBook();&lt;br /&gt;
 	void regist();&lt;br /&gt;
 	void insert_list(Book &amp;amp;amp; b);&lt;br /&gt;
 	void borrow();&lt;br /&gt;
 	void restore();&lt;br /&gt;
 	void search(Book &amp;amp;amp; b, bool kind_order);&lt;br /&gt;
 	void show_list();&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 #endif&lt;br /&gt;
==== manageBook.cpp ====&lt;br /&gt;
 #include &amp;quot;manageBook.h&amp;quot;&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;cstring&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 ManageBook::ManageBook()&lt;br /&gt;
 {&lt;br /&gt;
 	book_list = NULL;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::regist()&lt;br /&gt;
 {&lt;br /&gt;
 	Book * b = new Book[1];&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;등록할 도서정보를 입력하세요. \n&amp;quot;;&lt;br /&gt;
 	(*b).input();&lt;br /&gt;
 	insert_list(*b);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::insert_list(Book &amp;amp;amp; b)&lt;br /&gt;
 {&lt;br /&gt;
 	if (!book_list)&lt;br /&gt;
 	{&lt;br /&gt;
 		book_list = &amp;amp;amp;b;&lt;br /&gt;
 		return;&lt;br /&gt;
 	}&lt;br /&gt;
 	Book * temp = book_list;&lt;br /&gt;
 	while (temp-&amp;amp;gt;next != NULL)&lt;br /&gt;
 		temp = temp-&amp;amp;gt;next;&lt;br /&gt;
 	temp-&amp;amp;gt;next = &amp;amp;amp;b;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::borrow()&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;찾을 도서정보를 입력하세요. \n&amp;quot;;&lt;br /&gt;
 	Book b;&lt;br /&gt;
 	b.input();&lt;br /&gt;
 	search(b, false);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::search(Book &amp;amp;amp; b, bool kind_order)&lt;br /&gt;
 {&lt;br /&gt;
 	Book * temp = book_list;&lt;br /&gt;
 	while (temp != NULL)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (strcmp((*temp).get_ISBN(), b.get_ISBN()) == 0 &amp;amp;amp;&amp;amp;amp; &lt;br /&gt;
 			strcmp((*temp).get_name(), b.get_name()) == 0)&lt;br /&gt;
 		{&lt;br /&gt;
 			if ((*temp).get_state() == kind_order)&lt;br /&gt;
 			{&lt;br /&gt;
 				(*temp).set_state(!kind_order);				&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; &amp;quot;성공\n&amp;quot;;&lt;br /&gt;
 			}&lt;br /&gt;
 			else&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; &amp;quot;실패\n&amp;quot;;&lt;br /&gt;
 			return;	&lt;br /&gt;
 		}&lt;br /&gt;
 		temp = temp-&amp;amp;gt;next;&lt;br /&gt;
 	}&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;없는 도서입니다.\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::restore()&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;반납할 도서정보를 입력하세요. \n&amp;quot;;&lt;br /&gt;
 	Book b;&lt;br /&gt;
 	b.input();&lt;br /&gt;
 	search(b, true);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void ManageBook::show_list()&lt;br /&gt;
 {&lt;br /&gt;
 	Book * temp = book_list;&lt;br /&gt;
 	cout.width(10);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;책 이름&amp;quot;;&lt;br /&gt;
 	cout.width(10);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;저자&amp;quot;;&lt;br /&gt;
 	cout.width(10);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;ISBN\n&amp;quot;;&lt;br /&gt;
 	while (temp != NULL)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout.width(10);&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; (*temp).get_name();&lt;br /&gt;
 		cout.width(10);&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; (*temp).get_writer();&lt;br /&gt;
 		cout.width(10);&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; (*temp).get_ISBN() &amp;amp;lt;&amp;amp;lt; endl;	&lt;br /&gt;
 		temp = temp-&amp;amp;gt;next;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
==== useProgram.cpp ====&lt;br /&gt;
 #include &amp;quot;manageBook.h&amp;quot;&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	ManageBook test;&lt;br /&gt;
 	int command;&lt;br /&gt;
 	while (1)&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;1. 책 등록\n&amp;quot;;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;2. 책 대여\n&amp;quot;;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;3. 책 반납\n&amp;quot;;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;4. 책 목록\n&amp;quot;;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;5. 종료\n&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; command;&lt;br /&gt;
 		switch (command)&lt;br /&gt;
 		{&lt;br /&gt;
 		case 1:&lt;br /&gt;
 			test.regist();&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 2:&lt;br /&gt;
 			test.borrow();&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 3:&lt;br /&gt;
 			test.restore();&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 4:&lt;br /&gt;
 			test.show_list();&lt;br /&gt;
 			break;&lt;br /&gt;
 		case 5:&lt;br /&gt;
 			return 0;&lt;br /&gt;
 		default:&lt;br /&gt;
 			break;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return 1;&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
[[C++스터디_2005여름/도서관리프로그램]]&lt;br /&gt;
&lt;br /&gt;
== 나한테 할 말 ==&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>