객체지향 성적 정리 프로그램 소스 분석
- 제어시스템 연구일지
- 2021. 5. 6.
안녕하세요. 오늘은 성적 입력 프로그램을 객체지향적으로 설계해보고 소스와 결과를 분석해보도록 하겠습니다.
<문제>
⦁다음과 같은 메뉴를 출력하여 해당기능을 수행하는 프로그램 작성
Student |
number, name, score |
Student(), setScore(), getScore(), display(), getNumber() |
--------메뉴--------- 1.입력 2.디스플레이 3.종료 |
※number는 정적멤버변수
※getNumber는 정적멤버함수
※최대 5명, 객체포인터배열(동적 객체)
※디스플레이는 입력된 학생 수 만큼만 출력
<설계>
우선 클래스로 Student를 먼저 만들었습니다.
우선 변수가 number, name, score 이렇게 3개가 있는데 number는 정적멤버변수라고 했으므로 자료형 앞에 static을 붙였다. 우선 Student()로 생성자를 호출하였고, setScore()에서 점수를 입력받은 뒤 getScore()에서 반환되게 하였습니다.
또한 display()에선 이름과 성적이 보여질 수 있도록 하였고 정적멤버함수인 getNumber()는 number를 다시 반환할 수 있도록 하였습니다. 그리고 최대 5명, 객체포인터배열(동적객체)를 사용하여 Student *pStudent[5]; / pStudent[i]=new Student(input_name); 이렇게 적어주었습니다.
우선 case1에선 이름과 성적을 입력할 수 있고 case2에선 번호순서를 부여하여 번호, 이름, 성적 순으로 보이게 하였습니다.
<코드>
#include<iostream>
#include<string>
using namespace std;
class Student{
private:
string name;
int score;
public:
static int number;
Student(string ch)
{
name=ch;
number ++;
}
void setScore(int x)
{
score=x;
}
int getScore()
{
return score;
}
void display()
{
cout<<"이름:"<<name<<endl;
cout<<"성적:"<<score<<endl;
}
static int getNumber(){
return number;
}
};
int Student::number=0;
int main()
{
int button;
int i;
string input_name;
int input_score;
Student *pStudent[5];
while(1)
{
cout<<"------메뉴------"<<endl;
cout<<"1.입력"<<endl;
cout<<"2.디스플레이"<<endl;
cout<<"3.종료"<<endl;
cout<<"메뉴를 고르시오:";
cin>>button;
cout<<endl;
switch(button){
case 1:
{
i=Student::getNumber();
if(i<5)
{
cout<<"이름을 입력하시오:";
cin>>input_name;
pStudent[i]=new Student(input_name);
cout<<"성적을 입력하시오:";
cin>>input_score; pStudent[i]->setScore(input_score);
}
else
cout<<"학생수가 많습니다."<<endl;
continue;
}
break;
case 2:
{
i=Student::getNumber();
for(int j=0;j<i;j++)
{
cout<<"번호 : "<<j+1<<endl;
pStudent[j]->display();
}
}
break;
case 3:
cout<<"끝냅니다."<<endl;
break;
}
if(button==3)
break;
}
}
'제어시스템 연구일지' 카테고리의 다른 글
C소스 연습문제풀이(구조체,배열,포인터) (0) | 2021.05.11 |
---|---|
학생 성적 정리 프로그램 (0) | 2021.05.08 |
도형의 넓이 계산 프로그램 (1) | 2021.05.05 |
죽은 시인의 사회 감상문 (0) | 2021.05.04 |
C언어 정렬 방법을 이용한 데이터 정리(문제 및 소스작성) (0) | 2021.05.03 |