c++ 객체적 프로그램 구조로 코딩 어떻게하나요?
멤버변수와 멤버메소드 문법을 적용해서 객체적 프로그램 구조로 만드려면 아래처럼 출력하게 하려면 어떻게 코딩해야하나요?
이름을 입력하세요:
국어 점수를 입력하세요:
수학점수를 입력하세요:
영어점수를 입력하세요:
[이름]님의 성적은 국어점수[100] 수학점수[100] 영어점수[100]이고
총점[300] 평균[100.00] 학점[A]으로
졸업시험에 [합격] 했습니다.
55글자 더 채워주세요.
1개의 답변이 있어요!
- #include <iostream> #include <string> using namespace std; //성적 클래스 class Score { private : string name; // 이름 int kor; // 국어 int eng; // 영어 int math; // 수학 int total; // 총점 int avg; // 평균 char grade; // 학점 string result; //결과 public: void setName(string nn) { name = nn; } string getName() { return name; } void setMath(int score) { math = score; } int getMath() { return math; } void setEng(int score) { eng = score; } int getEng() { return eng; } void setKor(int score) { kor = score; } int getKor() { return kor; } void setTotal() { total = math + kor + eng; } int getTotal() { return total; } void setAvg() { avg = total / 3.f; } float getAvg() { return avg; } void setGrade() { if (avg >= 90) grade = 'A'; else if ((avg < 90) && (avg >= 80)) grade = 'B'; else if ((avg < 80) && (avg >= 70)) grade = 'C'; else if ((avg < 70) && (avg >= 60)) grade = 'D'; else grade = 'F'; } char getGrade() { return grade; } void setResult() { if (avg >= 60) result = "합격"; else result = "불합격"; } string getResult() { return result; } }; //성적 관리 클래스 class ScoreMag { private : Score *sm; // 성적 객체 포인터 int num; public : ~ScoreMag(); void CreateMag(); void InputScore(); void ProcessScore(); void PrintScore(); }; void ScoreMag::CreateMag() { cout << "몇명의 성적을 구하시겠습니까? "; cin >> num; sm = new Score[num]; } void ScoreMag::InputScore() { string name; int score; for (int i = 0; i < num; i++) { cout << "이름을 입력하세요 : "; cin >> name; sm[i].setName(name); cout << "국어점수를 입력하세요 : "; cin >> score; sm[i].setKor(score); cout << "영어점수를 입력하세요 : "; cin >> score; sm[i].setEng(score); cout << "수학점수를 입력하세요 : "; cin >> score; sm[i].setMath(score); } } void ScoreMag::ProcessScore() { for (int i = 0; i < num; i++) { sm[i].setTotal(); sm[i].setAvg(); sm[i].setGrade(); sm[i].setResult(); } } void ScoreMag::PrintScore() { for (int j = 0; j < num; j++) { cout << "이름 : "<<sm[j].getName()<<endl; cout << "국어 : " << sm[j].getKor() << endl; cout << "영어 : " << sm[j].getEng() << endl; cout << "수학 : " << sm[j].getMath() << endl; cout << "총점 : " << sm[j].getTotal() << endl; cout << "평균 : " << sm[j].getAvg() << endl; cout << "학점 : " << sm[j].getGrade() << endl; cout << "졸업 시험에 " << sm[j].getResult() << "하였습니다." << endl; } } ScoreMag::~ScoreMag() { if (sm != NULL) { delete [] sm; sm = NULL; } } void main() { ScoreMag pj; pj.CreateMag(); pj.InputScore(); pj.ProcessScore(); pj.PrintScore(); }