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.2234 sec