<?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%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0%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%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0%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/%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0%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-15T20:52:22Z</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/%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=29948&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/%ED%95%99%EC%A0%90%EA%B3%84%EC%82%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=29948&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;
꼭 본인이 모두 학점계산프로그램을 완성한 후 제 가 짠 코드와 비교해 보시기 바랍니다.&lt;br /&gt;
&lt;br /&gt;
== 코드 ==&lt;br /&gt;
==== CalculateGrade.h ====&lt;br /&gt;
 #ifndef CALCULATEGRADE_H_&lt;br /&gt;
 #define CALCULATEGRADE_H_&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 class CalculateGrade&lt;br /&gt;
 {&lt;br /&gt;
 private:&lt;br /&gt;
 	static const int NUM_STUDENT;	// 학생 수(상수 멤버)&lt;br /&gt;
 	Student * student;		// 학생들의 배열 포인터&lt;br /&gt;
 public:&lt;br /&gt;
 	CalculateGrade();		// 생성자&lt;br /&gt;
 	void sort_student();		// 평점으로 정렬&lt;br /&gt;
 	void show_good_student();	// 장학생 명단 출력&lt;br /&gt;
 	void show_bad_student();	// 학고 명단 출력&lt;br /&gt;
 	~CalculateGrade();		// 파괴자&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 #endif&lt;br /&gt;
==== CalculateGrade.cpp ====&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 #include &amp;quot;CalculateGrade.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 // 상수멤버 초기화 &lt;br /&gt;
 // - 배열 인덱스를 1부터 쓰기 위해 학생 수보다 하나 더 크게 잡는다.&lt;br /&gt;
 const int CalculateGrade::NUM_STUDENT = 121;&lt;br /&gt;
 &lt;br /&gt;
 // 생성자&lt;br /&gt;
 CalculateGrade::CalculateGrade()&lt;br /&gt;
 {&lt;br /&gt;
 	// 학생 배열을 동적 할당&lt;br /&gt;
 	student = new Student[NUM_STUDENT];&lt;br /&gt;
 &lt;br /&gt;
 	// 점수를 입력받아 객체배열의 멤버를 초기화&lt;br /&gt;
 	for (int i = 1; i &amp;amp;lt; NUM_STUDENT; i++)&lt;br /&gt;
 		student[i].input_grade();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 평점으로 정렬시킨다.&lt;br /&gt;
 void CalculateGrade::sort_student()&lt;br /&gt;
 {&lt;br /&gt;
 	int p;&lt;br /&gt;
 	Student temp;&lt;br /&gt;
 	for (int i = 1; i &amp;amp;lt; NUM_STUDENT; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		p = i;&lt;br /&gt;
 		for (int j = i + 1; j &amp;amp;lt; NUM_STUDENT; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (student[p].average &amp;amp;lt; student[j].average)&lt;br /&gt;
 				p = j;&lt;br /&gt;
 		}&lt;br /&gt;
 		temp = student[i];&lt;br /&gt;
 		student[i] = student[p];&lt;br /&gt;
 		student[p] = temp;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 장학생(상위 10%) 의 명단을 보인다.&lt;br /&gt;
 void CalculateGrade::show_good_student()&lt;br /&gt;
 {&lt;br /&gt;
 	int num = NUM_STUDENT / 10;&lt;br /&gt;
 &lt;br /&gt;
 	sort_student();&lt;br /&gt;
 &lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;장학생 명단\n&amp;quot;;&lt;br /&gt;
 	for (int i = 1; i &amp;amp;lt;= num; i++)&lt;br /&gt;
 		student[i].show();&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 학고(학점 1.5미만)의 명단을 보인다.&lt;br /&gt;
 void CalculateGrade::show_bad_student()&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;학고 명단\n&amp;quot;;&lt;br /&gt;
 	for (int i = 1; i &amp;amp;lt; NUM_STUDENT; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (student[i].average &amp;amp;lt; 1.5)&lt;br /&gt;
 			student[i].show();&lt;br /&gt;
 	}&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파괴자&lt;br /&gt;
 CalculateGrade::~CalculateGrade()&lt;br /&gt;
 {&lt;br /&gt;
 	delete [] student;&lt;br /&gt;
 }&lt;br /&gt;
==== Student.h ====&lt;br /&gt;
 #ifndef STUDENT_H_&lt;br /&gt;
 #define STUDENT_H_&lt;br /&gt;
 &lt;br /&gt;
 class Student&lt;br /&gt;
 {&lt;br /&gt;
 private:&lt;br /&gt;
 	static const int NUM_GRADE;	// 과목 수 (상수 멤버)&lt;br /&gt;
 	int number;			// 학번&lt;br /&gt;
 	double grade[4];		// 4과목 점수&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 	double average;			// 평점&lt;br /&gt;
 &lt;br /&gt;
 	Student();			// 생성자&lt;br /&gt;
 	void find_average();		// 평점을 구하는 함수&lt;br /&gt;
 	void input_grade();		// 점수을 입력받는 함수&lt;br /&gt;
 	void show();			// 출력함수&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 #endif&lt;br /&gt;
==== Student.cpp ====&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;fstream&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;
 #include &amp;quot;Student.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 // 상수 멤버의 초기화&lt;br /&gt;
 const int Student::NUM_GRADE = 4;&lt;br /&gt;
 &lt;br /&gt;
 // 생성자&lt;br /&gt;
 Student::Student()&lt;br /&gt;
 {&lt;br /&gt;
 	average = 0.0;&lt;br /&gt;
 	number = 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 파일로부터 4과목 점수를 읽는다.&lt;br /&gt;
 void Student::input_grade()&lt;br /&gt;
 {&lt;br /&gt;
 	static char alpa_grade[9][3] = {&amp;quot;A+&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B+&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C+&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;D+&amp;quot;, &amp;quot;D&amp;quot;, &amp;quot;F&amp;quot;};&lt;br /&gt;
 	static double ital_grade[9] = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0};&lt;br /&gt;
 	static fstream fin(&amp;quot;input.txt&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 	char str[3];&lt;br /&gt;
 &lt;br /&gt;
 	fin.ignore(100, &amp;#039; &amp;#039;);	// 사용자 지정 문자가 나올때까지 읽어 버리는 함수&lt;br /&gt;
 &lt;br /&gt;
 	fin &amp;amp;gt;&amp;amp;gt; number;&lt;br /&gt;
 &lt;br /&gt;
 	fin.ignore(100, &amp;#039;:&amp;#039;);		&lt;br /&gt;
 &lt;br /&gt;
 	// 해당 학점을 double형 숫자로 1대 1 로 변환 시켜 입력&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUM_GRADE; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		fin &amp;amp;gt;&amp;amp;gt; str;			// &amp;amp;gt;&amp;amp;gt; 은 white space(공백)을 무시한다.&lt;br /&gt;
 		for (int j = 0; j &amp;amp;lt; 9; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (strcmp(str, alpa_grade[j]) == 0)&lt;br /&gt;
 			{&lt;br /&gt;
 				grade[i] = ital_grade[j];&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	fin.ignore(100, &amp;#039;\n&amp;#039;);&lt;br /&gt;
 	find_average();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 4 과목 점수의 평점을 구한다.&lt;br /&gt;
 void Student::find_average()&lt;br /&gt;
 {&lt;br /&gt;
 	double sum = 0.0;&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUM_GRADE; i++)&lt;br /&gt;
 		sum += grade[i];&lt;br /&gt;
 	average = sum / NUM_GRADE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 학생 정보를 출력한다.&lt;br /&gt;
 void Student::show()&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;학번 : &amp;quot; &amp;amp;lt;&amp;amp;lt; number &amp;amp;lt;&amp;amp;lt; &amp;quot;   평점 : &amp;quot; &amp;amp;lt;&amp;amp;lt; average &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 }&lt;br /&gt;
==== testCalculateGrade.cpp ====&lt;br /&gt;
 #include &amp;quot;CalculateGrade.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	CalculateGrade test;&lt;br /&gt;
 	test.show_good_student();&lt;br /&gt;
 	test.show_bad_student();&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
== 나한테 할 말 ==&lt;br /&gt;
----&lt;br /&gt;
[[C++스터디_2005여름]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>