U E D R , A S I H C RSS

whiteblue/My Term Project

~cpp 
#include <iostream>
#include <cstdlib>
using namespace std;

struct student
{
	char name[20];
	int number;
	int kor;
	int eng;
	int math;
	int total;
	double ave;
	char * grade;
};		// ตฌกฐฒด „ –ธ

student data[20] = 
{
	{ "ณ žฌ„ " ,20025301, 85, 90, 80 },
	{ "ถŒํ˜„„" ,20025302, 80, 88, 85 }, 
	{ "€™š" ,20025303, 88, 93, 75 },
	{ "€ฌด˜" ,20025309, 75, 85, 70 },
	{ "€žฌ" ,20025307, 73, 83, 77 },
	{ "€„›" ,20025304, 95, 88, 80 },
	{ "€˜€" ,20025308, 95, 88, 80 },
	{ "€œค„ญ" ,20025305, 94, 70, 65 },
	{ "€ฒ ํ˜ธ" ,20025306, 80, 75, 88 },
	{ "€ํƒœ™„" ,20025310, 65, 73, 94 },
	{ "€ํƒœ™„" ,20025313, 77, 78, 99 },
	{ "€ํฌท " ,20025312, 80, 77, 85 },
	{ "ฅ˜žฌํ˜„" ,20025311, 95, 80, 95 },
	{ "ฌธตฌด‰" ,20025315, 78, 90, 75 },
	{ "ฐ•Œ€›" ,20025314, 90, 95, 65 },
	{ "ฐ•„—ฐ" ,20025316, 88, 88, 80 },
	{ "ฐ•€„" ,20025317, 83, 76, 75 },
	{ "„œˆ˜›" ,20025318, 75, 68, 70 },
	{ "–‘šฐ" ,20025319, 65, 70, 80 },
	{ "–‘ •€" ,20025320, 88, 85, 90 }
};		// ฐดํ„ฐ’

//            ํ•จˆ˜ „ –ธ
void sort (int *);
void copy();
int input();
void error_message();
void showmenu();
void showsubmenu();
void pass();
void grade_();

void choose_1();
void choose_2();
void choose_3();
void choose_4();

void result_1(student l[] , int *);
void result_2(student m[]);

student temp, copy_data[20]; 

int select, i, j, check=0;

int main()
{
	for (i = 0 ; i <= 19 ; i++ ){
		data[i].total = data[i].kor + data[i].eng + data[i].math;
		data[i].ave = data[i].total / 3;
	}
	grade_();
	while (1)
	{
		if (check == 0 )
		{
			showmenu();
		}
		switch (input()) 
		{
		case 1 :
			choose_1();
			check = 0;
			break; 
		case 2 :
			choose_2();
			check = 0;
			break; 
		case 3 : 
			choose_3();
			check = 0;
			break; 
		case 4 : 
			choose_4();
			check = 0;
			break; 
		case 5 : 
			return 0;
			break; 
		default :
			error_message();
			check = 1;
			break; 
		}
	} 
}

////////////////////////////////////////////////////////////
//                   ฉ”ธ ํ•จˆ˜˜                        //
////////////////////////////////////////////////////////////


//////////////////    ฉ”„€ ถœ ฅ ํ•จˆ˜    //////////////////

void showmenu()
{
	cout << "\tโ—† ฉ”‰ด โ—†" << endl 
		<< "1) ชฉ„ ž… ฅ ฒฐ ฆฌŠคํŠธ " << endl
		<< "2) ชฉ„ „ ˆœ ฆฌŠคํŠธ " << endl
		<< "3) ํ•™ƒ  „ชฉ ž… ฅ ฒฐ ฆฌŠคํŠธ " << endl
		<< "4) ํ•™ƒ  „ชฉ „ ˆœ ฆฌŠคํŠธ " << endl
		<< "5) ข…ฃŒ " << endl << endl
		<< "ฉ”‰ด „ ํƒํ•˜„š” -> ";
}

void showsubmenu()
{
	cout << "\tโ—‡ชฉ „ ํƒ ฉ”‰ดโ—‡" << endl
		<< "1) ตญ–ด" << endl
		<< "2) ˜–ด" << endl
		<< "3) ˆ˜ํ•™" << endl
		<< "ชฉ„ „ ํƒํ•˜„š” -> ";
}

void error_message()
{
	cout << "‹ค‹œ ž… ฅํ•˜„š” -> ";
}

///////////////    „ ํƒ ฉ”‰ด ํ•จˆ˜    ////////////////

void choose_1()		// 1ฒˆ „ ํƒ
{
	system ("cls") ;
	showsubmenu();
	while (1)
	{
		switch (input()) 
		{
		case 1 :
			cout << "ด„\tฒˆํ˜ธ\tตญ–ด" << endl;
			result_1(data, &data[0].kor);
			pass();
			return; 
		case 2 :
			cout << "ด„\tฒˆํ˜ธ\t˜–ด" << endl;
			result_1(data, &data[0].eng);
			pass();
			return; 
		case 3 : 
			cout << "ด„\tฒˆํ˜ธ\tˆ˜ํ•™" << endl;
			result_1(data, &data[0].math);
			pass();
			return; 
		default :
			error_message();
			break; 
		}
	} 

}

void choose_2()		// 2ฒˆ „ ํƒ
{
	system ("cls") ;
	copy();
	showsubmenu();
	while (1)
	{
		switch (input()) 
		{
		case 1 :
			system ("cls");
			sort(&copy_data[0].kor);
			cout << "ด„\tฒˆํ˜ธ\tตญ–ด" << endl;
			result_1(copy_data , &copy_data[0].kor);
			pass();
			return; 
		case 2 :
			system ("cls");
			sort(&copy_data[0].eng);
			cout << "ด„\tฒˆํ˜ธ\t˜–ด" << endl;
			result_1(copy_data , &copy_data[0].eng);
			pass();
			return; 
		case 3 : 
			system ("cls");
			sort(&copy_data[0].math);
			cout << "ด„\tฒˆํ˜ธ\tˆ˜ํ•™" << endl;
			result_1(copy_data , &copy_data[0].math);
			pass();
			return; 
		default :
			error_message();
			break; 
		}
	} 
}

void choose_3()			// 3ฒˆ „ ํƒ
{
	system ("cls");
	result_2(data);
	pass();
}

void choose_4()			// 4ฒˆ „ ํƒ
{
	copy();
	system ("cls");
	sort(&copy_data[0].total);
	result_2(copy_data);
	pass();
}

////////////////  ฒฐ ถœ ฅ ํ•จˆ˜“ค  ////////////////////

void result_1(student l[] , int * n)
{
	for (i = 0 ; i <= 19 ; i++ )
		cout << l[i].name << "\t" << l[i].number << " " << *(n+(i*14)) << endl;
}

void result_2(student m[])
{
	cout << "ด„\tฒˆํ˜ธ\tตญ–ด\t˜–ด\tˆ˜ํ•™\tด \tํ‰ท \t“ธ‰" << endl;
	for (i = 0 ; i <= 19 ; i++)
	{
		cout.precision(3);
		cout.setf(ios_base::showpoint);
		cout << m[i].name << "\t" << m[i].number << " "<< m[i].kor
			 << "\t" << m[i].eng << "\t" << m[i].math << "\t" << m[i].total
			 << "\t" << m[i].ave << "\t" << m[i].grade << endl;
	}
}

/////////////////  ทธ ฐ–˜ ํ•จˆ˜“ค  /////////////////////

void sort(int * x)		// †ŒํŠธ ํ•จˆ˜
{
	for (i = 1 ; i <= 19 ; i++)
	{
		for (j = 19 ; j >= i ; j--)
		{
			if ( *(x+j*14) >= *(x+(j-1)*14) )
			{
				temp = copy_data[j];
				copy_data[j] = copy_data[j-1];
				copy_data[j-1] = temp;
			}
		}
	}
}

void copy()		// ฐดํ„ฐ ํ›†„ ฐฉ€ํ•˜ธฐ œ„ํ•œ ฐดํ„ดํ”
{
	for (int i = 0 ; i <= 19 ; i++ )
		copy_data[i] = data[i];
}

int input()		// ˜ฌฐ”ฅธ ž… ฅ„ œ„ํ•œ ž… ฅํ•จˆ˜
{
	cin.clear();
	while (!(cin >> select))
	{
		cin.clear();
		while (cin.get() != '\n')
			continue;
		error_message();
	}
	return select;
}

void grade_()		// “ธ‰„ ž… ฅํ•˜Š” ํ•จˆ˜
{
	for (i = 0 ; i <= 19 ; i++ )
	{
		if ( data[i].ave >= 95 && data[i].ave <=100)
			data[i].grade = "a+";
		else if ( data[i].ave >= 90 && data[i].ave < 95)
			data[i].grade = "a";
		else if ( data[i].ave >= 85 && data[i].ave < 90)
			data[i].grade = "b+";
		else if ( data[i].ave >= 80 && data[i].ave < 85)
			data[i].grade = "b";
		else if ( data[i].ave >= 75 && data[i].ave < 80)
			data[i].grade = "c+";
		else if ( data[i].ave >= 70 && data[i].ave < 75)
			data[i].grade = "c";
		else if ( data[i].ave >= 65 && data[i].ave < 70)
			data[i].grade = "d+";
		else if ( data[i].ave >= 60 && data[i].ave < 65)
			data[i].grade = "d";
		else if ( data[i].ave <= 59)
			data[i].grade = "f";
	}
}

void pass()			// ฐ”กœ „˜–ด€€ •Šธฐ œ„ํ•œ ํ•จˆ˜
{
	cout << "„† ํ•˜ คฉด Enter ํ‚ค ˆ„ฅด‹ญ‹œ˜ค. ";
	cin.get();
	while (cin.get() != '\n')
		continue;
	system ("cls");
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:46
Processing time 0.0279 sec