í•´ë” íŒŒì¼ ¶
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; }