í•´ë” íŒŒì¼ ¶
Data.h ¶
~cpp
// Data.h
#ifndef _DATA_H_
#define _DATA_H_
class Data{
private:
char name[20];
int number;
int kor;
int eng;
int math;
int total;
double ave;
char grade[2];
public:
Data();
Data(char na[], int nu, int k, int e, int m);
int showNumber(int select);
char * showName();
int showNum();
int showTotal();
double showAve();
};
#endif
Judgement.h ¶
~cpp
//Judgement.h
#ifndef _JUDGEMENT_H_
#define _JUDGEMENT_H_
#include "Data.h"
#include "Order.h"
class Judgement{
private:
int tempData;
int tempNumber;
int stData[20];
int arrayNumber[20];
public:
Judgement();
void sort(bool IsItSort , int select , Data d[]);
void outputAll(bool IsItAll, Data d[]);
void outputPart(bool IsItPart, Data d[] , int select);
};
#endif
Order.h ¶
~cpp
//Order.h
#ifndef _ORDER_H_
#define _ORDER_H_
class Order{
private:
int mainmenu;
int submenu;
public:
Order();
void menu();
bool IsItAll();
bool IsItSort();
int subNumber();
};
#endif
í´ëž˜ìФ ìž…ë ¥ ¶
Data.cpp ¶
~cpp
// Data.cpp
#include <iostream>
using namespace std;
#include "Data.h"
Data::Data()
{
}
Data::Data(char na[], int nu, int k, int e , int m)
{
strcpy(name, na);
number = nu;
kor = k;
eng = e;
math = m;
total = k + e + m;
ave = (double)total/3;
for (int i = 0 ; i <= 19 ; i++ )
{
if ( ave >= 95 && ave <=100)
strcpy(grade,"a+");
else if ( ave >= 90 && ave < 95)
strcpy(grade,"a");
else if ( ave >= 85 && ave < 90)
strcpy(grade,"b+");
else if ( ave >= 80 && ave < 85)
strcpy(grade,"b");
else if ( ave >= 75 && ave < 80)
strcpy(grade,"c+");
else if ( ave >= 70 && ave < 75)
strcpy(grade,"c");
else if ( ave >= 65 && ave < 70)
strcpy(grade,"d+");
else if ( ave >= 60 && ave < 65)
strcpy(grade,"d");
else if ( ave <= 59)
strcpy(grade,"f");
}
}
int Data::showNumber(int select)
{
if (select == 1 )
return kor;
else if (select == 2 )
return eng;
else if (select == 3 )
return math;
else
return 0;
}
char * Data::showName()
{
return name;
}
int Data::showNum()
{
return number;
}
int Data::showTotal()
{
return total;
}
double Data::showAve()
{
return ave;
}
Judgement.cpp ¶
~cpp
//Judgement.cpp
#include <iostream>
using namespace std;
#include "Judgement.h"
#include "Data.h"
#include "Order.h"
Judgement::Judgement()
{
for (int i = 0 ; i <= 19 ; i++)
arrayNumber[i] = i;
}
void Judgement::sort(bool IsItSort , int select , Data d[]) // 소트 부분
{
if (IsItSort)
{
if ( select == 0 )
for (int k = 0 ; k <= 19 ; k++) //
stData[k] = d[k].showTotal(); //
else // 알맞는 ë°ì´í„° ê°’ 카피
for (int k = 0 ; k <= 19 ; k++) //
stData[k] = d[k].showNumber(select); //
for (int i = 0 ; i <= 19 ; i++) {
for (int j = i+1 ; j <= 19 ; j++) {
if ( stData[i] < stData[j] ) {
tempData = stData[i];
tempNumber = arrayNumber[i];
stData[i] = stData[j];
arrayNumber[i] = arrayNumber[j];
stData[j] = tempData;
arrayNumber[j] = tempNumber;
} } } // 소트
}
}
void Judgement::outputAll(bool IsItAll, Data d[])
{
if (IsItAll)
{
cout << "ì´ë¦„\t번호\t\têµì–´\tì˜ì–´\t수학\tì´ì \tí‰ê· " << endl;
for (int i = 0 ; i <= 19 ; i++){
cout << d[arrayNumber[i]].showName()
<< "\t" << d[arrayNumber[i]].showNum()
<< "\t" << d[arrayNumber[i]].showNumber(1)
<< "\t" << d[arrayNumber[i]].showNumber(2)
<< "\t" << d[arrayNumber[i]].showNumber(3)
<< "\t" << d[arrayNumber[i]].showTotal()
<< "\t" << d[arrayNumber[i]].showAve()
<< endl;
}
cin.get();
cin.get();
}
}
void Judgement::outputPart(bool IsItPart, Data d[] , int select)
{
if (IsItPart)
{
cout << "ì´ë¦„\t번호\t";
if ( select == 1 )
cout << "\têµì–´" << endl;
else if ( select == 2 )
cout << "\tì˜ì–´" << endl;
else if ( select == 3 )
cout << "\t수학" << endl;
for (int i = 0 ; i <= 19 ; i++){
cout << d[arrayNumber[i]].showName()
<< "\t" << d[arrayNumber[i]].showNum()
<< "\t" << d[arrayNumber[i]].showNumber(select)
<< endl;
}
cin.get();
cin.get();
}
}
Order.cpp ¶
~cpp
//Order.cpp
#include <iostream>
using namespace std;
#include "Order.h"
Order::Order()
{
submenu = 0;
}
bool Order::IsItAll()
{
if (mainmenu == 3 || mainmenu == 4)
return true;
else
return false;
}
bool Order::IsItSort()
{
if (mainmenu == 2 || mainmenu == 4)
return true;
else
return false;
}
void Order::menu()
{
system("cls");
cout << "\t◆ 메뉴 ◆" << endl
<< "1) 과목별 ìž…ë ¥ ê²°ê³¼ 리스트 " << endl
<< "2) 과목별 성ì 순 리스트 " << endl
<< "3) í•™ìƒ ì „ê³¼ëª© ìž…ë ¥ ê²°ê³¼ 리스트 " << endl
<< "4) í•™ìƒ ì „ê³¼ëª© 성ì 순 리스트 " << endl
<< "5) 종료 " << endl << endl
<< "메뉴를 ì„ íƒí•˜ì„¸ìš” -> ";
cin >> mainmenu;
if (mainmenu == 5)
exit(1);
if (mainmenu == 1 || mainmenu == 2)
{
system("cls");
cout << "\t◇과목 ì„ íƒ ë©”ë‰´â—‡" << endl
<< "1) êµì–´" << endl
<< "2) ì˜ì–´" << endl
<< "3) 수학" << endl
<< "ê³¼ëª©ì„ ì„ íƒí•˜ì„¸ìš” -> ";
cin >> submenu;
}
}
int Order::subNumber()
{
return submenu;
}
ë©”ì¸ í•¨ìˆ˜ ¶
~cpp
#include <iostream>
using namespace std;
#include "Data.h"
#include "Judgement.h"
#include "Order.h"
Data data[] = {
Data( "ê³ ìž¬ì„ " ,20025301, 85, 90, 80 ),
Data( "권현진" ,20025302, 80, 88, 85 ),
Data( "ê¹€ë™ìš±" ,20025303, 88, 93, 75 ),
Data( "김무ì˜" ,20025309, 75, 85, 70 ),
Data( "김민재" ,20025307, 73, 83, 77 ),
Data( "김성ì›" ,20025304, 95, 88, 80 ),
Data( "ê¹€ì˜ì¤€" ,20025308, 95, 88, 80 ),
Data( "김윤ì„" ,20025305, 94, 70, 65 ),
Data( "ê¹€ì² í˜¸" ,20025306, 80, 75, 88 ),
Data( "김태완" ,20025310, 65, 73, 94 ),
Data( "김태완" ,20025313, 77, 78, 99 ),
Data( "ê¹€í¬ê· " ,20025312, 80, 77, 85 ),
Data( "류재현" ,20025311, 95, 80, 95 ),
Data( "문구봉" ,20025315, 78, 90, 75 ),
Data( "박대ì›" ,20025314, 90, 95, 65 ),
Data( "박세연" ,20025316, 88, 88, 80 ),
Data( "박준성" ,20025317, 83, 76, 75 ),
Data( "서수ì›" ,20025318, 75, 68, 70 ),
Data( "양민우" ,20025319, 65, 70, 80 ),
Data( "ì–‘ì •ì€" ,20025320, 88, 85, 90 )
};
int main()
{
while (1)
{
Judgement judgement;
Order order;
order.menu();
judgement.sort(order.IsItSort(), order.subNumber(), data);
judgement.outputAll(order.IsItAll(), data);
judgement.outputPart(!(order.IsItAll()), data, order.subNumber());
}
return 0;
}










