<?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=CppStudy_2002_2%2FSTL%EA%B3%BC%EC%A0%9C%2F%EC%84%B1%EC%A0%81%EC%B2%98%EB%A6%AC</id>
	<title>CppStudy 2002 2/STL과제/성적처리 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=CppStudy_2002_2%2FSTL%EA%B3%BC%EC%A0%9C%2F%EC%84%B1%EC%A0%81%EC%B2%98%EB%A6%AC"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CppStudy_2002_2/STL%EA%B3%BC%EC%A0%9C/%EC%84%B1%EC%A0%81%EC%B2%98%EB%A6%AC&amp;action=history"/>
	<updated>2026-05-15T06:08:07Z</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=CppStudy_2002_2/STL%EA%B3%BC%EC%A0%9C/%EC%84%B1%EC%A0%81%EC%B2%98%EB%A6%AC&amp;diff=30984&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=CppStudy_2002_2/STL%EA%B3%BC%EC%A0%9C/%EC%84%B1%EC%A0%81%EC%B2%98%EB%A6%AC&amp;diff=30984&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:02Z</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; #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;vector&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;algorithm&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;fstream&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 class ScoresTable&lt;br /&gt;
 {&lt;br /&gt;
 private :&lt;br /&gt;
 	string _StudentName;&lt;br /&gt;
 	vector&amp;amp;lt;int&amp;amp;gt; _Scores;&lt;br /&gt;
 	int _TotalScore;&lt;br /&gt;
 	double _AverageScore;&lt;br /&gt;
 &lt;br /&gt;
 public :&lt;br /&gt;
 &lt;br /&gt;
 	ScoresTable(const string&amp;amp;amp; aStudentName) : _StudentName(aStudentName) &lt;br /&gt;
 	{&lt;br /&gt;
 		_TotalScore = 0;&lt;br /&gt;
 		_AverageScore = 0.0;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void addScoreToVector(int aScore) &lt;br /&gt;
 	{&lt;br /&gt;
 		_Scores.push_back(aScore);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void calculateTotalScore()&lt;br /&gt;
 	{&lt;br /&gt;
 		for(unsigned int i = 0 ; i &amp;amp;lt; _Scores.size() ; ++i)&lt;br /&gt;
 			_TotalScore += _Scores[i];&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void calculateAverageScore()&lt;br /&gt;
 	{&lt;br /&gt;
 		_AverageScore = (double)_TotalScore / 4.0;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	const string&amp;amp;amp; getName() const&lt;br /&gt;
 	{&lt;br /&gt;
 		return _StudentName;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	int getnthScore(int n) const&lt;br /&gt;
 	{&lt;br /&gt;
 		return _Scores[n];&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	int getTotalScore() const&lt;br /&gt;
 	{&lt;br /&gt;
 		return _TotalScore;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	double getAverageScore() const&lt;br /&gt;
 	{&lt;br /&gt;
 		return _AverageScore;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class ScoreProcessor&lt;br /&gt;
 {&lt;br /&gt;
 private :&lt;br /&gt;
 	vector&amp;amp;lt;ScoresTable*&amp;amp;gt; _StudentList;&lt;br /&gt;
 &lt;br /&gt;
 	class ScoreSort &lt;br /&gt;
 	{&lt;br /&gt;
 	public :&lt;br /&gt;
 		bool operator()(ScoresTable* stu1, ScoresTable* stu2) const&lt;br /&gt;
 		{&lt;br /&gt;
 			return stu1-&amp;amp;gt;getTotalScore() &amp;amp;gt; stu2-&amp;amp;gt;getTotalScore();&lt;br /&gt;
 		}&lt;br /&gt;
 	};&lt;br /&gt;
 &lt;br /&gt;
 	class NameSort&lt;br /&gt;
 	{&lt;br /&gt;
 	public :&lt;br /&gt;
 		bool operator()(ScoresTable* stu1, ScoresTable* stu2) const&lt;br /&gt;
 		{&lt;br /&gt;
 			return stu1-&amp;amp;gt;getName() &amp;amp;lt; stu2-&amp;amp;gt;getName();		&lt;br /&gt;
 		}&lt;br /&gt;
 	};&lt;br /&gt;
 &lt;br /&gt;
 	void showNameAndCuri()&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;이름\t국어\t영어\t수학\t과학\t총점\t평균\n&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 public :&lt;br /&gt;
 	virtual ~ScoreProcessor()&lt;br /&gt;
 	{&lt;br /&gt;
 		for(unsigned int i = 0 ; i &amp;amp;lt; _StudentList.size() ; ++i)&lt;br /&gt;
 			delete _StudentList[i];&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void dataReader()&lt;br /&gt;
 	{&lt;br /&gt;
 		ifstream anInputer(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
 		ScoresTable* aTable;&lt;br /&gt;
 		while(!anInputer.eof())&lt;br /&gt;
 		{&lt;br /&gt;
 			string aName;&lt;br /&gt;
 			int aScore;&lt;br /&gt;
 			anInputer &amp;amp;gt;&amp;amp;gt; aName;&lt;br /&gt;
 			aTable = new ScoresTable(aName);&lt;br /&gt;
 			for(int i = 0 ; i &amp;amp;lt; 4 ; ++i)&lt;br /&gt;
 			{&lt;br /&gt;
 				anInputer &amp;amp;gt;&amp;amp;gt; aScore;			&lt;br /&gt;
 				aTable-&amp;amp;gt;addScoreToVector(aScore);&lt;br /&gt;
 			}&lt;br /&gt;
 			_StudentList.push_back(aTable);&lt;br /&gt;
 			aTable-&amp;amp;gt;calculateTotalScore();&lt;br /&gt;
 			aTable-&amp;amp;gt;calculateAverageScore();&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void showAllStudentsInfo()&lt;br /&gt;
 	{&lt;br /&gt;
 		showNameAndCuri();&lt;br /&gt;
 		for(unsigned int i = 0 ; i &amp;amp;lt; _StudentList.size() ; ++i)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; _StudentList[i]-&amp;amp;gt;getName() &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 		&lt;br /&gt;
 			for(int j = 0 ; j &amp;amp;lt; 4 ; ++j)&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; _StudentList[i]-&amp;amp;gt;getnthScore(j) &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 		&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; _StudentList[i]-&amp;amp;gt;getTotalScore() &amp;amp;lt;&amp;amp;lt; &amp;quot;\t&amp;quot;;&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; _StudentList[i]-&amp;amp;gt;getAverageScore() &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void scoreSortAndShow()&lt;br /&gt;
 	{&lt;br /&gt;
 		sort(_StudentList.begin(), _StudentList.end(), ScoreSort());&lt;br /&gt;
 		showAllStudentsInfo();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void nameSortAndShow()&lt;br /&gt;
 	{&lt;br /&gt;
 		sort(_StudentList.begin(), _StudentList.end(), NameSort());&lt;br /&gt;
 		showAllStudentsInfo();&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Admin&lt;br /&gt;
 {&lt;br /&gt;
 private :&lt;br /&gt;
 	ScoreProcessor _aScoreProcessor;&lt;br /&gt;
 &lt;br /&gt;
 	void showMenu()&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;STL을 이용한 성적관리 프로그램&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;1. 현재 목록 보기&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;2. 이름순으로 소트해서 보기&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;3. 점수순으로 소트해서 보기&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;4. 끝&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Select : &amp;quot; ;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	int getInputNumber()&lt;br /&gt;
 	{&lt;br /&gt;
 		int ch;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; ch;&lt;br /&gt;
 		return ch;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 public :&lt;br /&gt;
 &lt;br /&gt;
 	Admin()&lt;br /&gt;
 	{&lt;br /&gt;
 		_aScoreProcessor.dataReader();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void process()&lt;br /&gt;
 	{&lt;br /&gt;
 		while(1)&lt;br /&gt;
 		{&lt;br /&gt;
 			showMenu();&lt;br /&gt;
 			switch(getInputNumber())	// 별루 맘에 안들긴 하지만--; 그냥 보여주는 거니깐&lt;br /&gt;
 			{&lt;br /&gt;
 			case 1: &lt;br /&gt;
 				_aScoreProcessor.showAllStudentsInfo();				&lt;br /&gt;
 				break;&lt;br /&gt;
 			case 2:&lt;br /&gt;
 				_aScoreProcessor.nameSortAndShow();&lt;br /&gt;
 				break;&lt;br /&gt;
 			case 3:&lt;br /&gt;
 				_aScoreProcessor.scoreSortAndShow();&lt;br /&gt;
 				break;&lt;br /&gt;
 			case 4:&lt;br /&gt;
 				return;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	Admin gogo;&lt;br /&gt;
 	gogo.process();&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>