Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

데이터 은닉 및 캡슐화를 사용하여 학생 정보를 보관하는 C++ 프로그램

<시간/>

데이터 은닉 및 캡슐화로 학생 데이터 유형을 만들고 싶다고 가정합니다. 학생은 first_name, last_name, age 및 class 항목이 있어야 하지만 이러한 변수는 직접 액세스할 수 없습니다. get_firstname() set_firstname(), get_age() set_age() 등과 같은 일부 함수를 정의하여 변수 값을 검색하고 업데이트하고 to_string() 함수를 사용하여 이 형식(age, first_name, last_name, class ). 콘솔에서 4개의 매개변수를 입력으로 받아 우리가 정의한 setter 메소드를 사용하여 설정하고 getter 메소드를 사용하고 마지막으로 to_string() 메소드를 사용하여 각 항목을 표시합니다.

따라서 입력이 다음과 같으면

priyam
kundu
16
10

그러면 출력은

16
priyam
kundu
10

(16, priyam, kundu, 10)

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • first_name, 유형 문자열 및 age, 유형 정수의 cl의 last_name으로 클래스 정의

  • 모든 속성에 대한 getter 함수 정의

  • 모든 속성에 대한 setter 함수 정의

  • string-stream 객체를 사용하여 to_string() 함수를 정의하고 출력 형식과 일치하는 형식화된 문자열을 만듭니다.

  • 주요 방법에서 다음을 수행하십시오 -

  • 각 줄을 읽고 각각 first_name, last_name, age, cl을 저장합니다.

  • 이 값을 클래스 멤버로 설정하기 위해 setter 함수를 호출합니다.

  • getter 메서드를 사용하여 모든 속성을 인쇄합니다.

  • to_string() 함수를 사용하여 이 형식(age, first_name, last_name, cl)으로 학생 정보를 표시합니다.

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <iostream>
#include <sstream>
using namespace std;
class Student{
    private:
    int age, cl;
    string first_name, last_name;
    public:
    int get_age(){return age;}
    int get_class(){return cl;}
    string get_firstname(){return first_name;}
    string get_lastname(){return last_name;}
    void set_age(int a){age = a;}
    void set_class(int c){cl = c;}
    void set_firstname(string fn){first_name = fn;}
    void set_lastname(string ln){last_name = ln;}
    string to_string(){
        stringstream ss;
        ss << "(" << age << ", " << first_name << ", " << last_name << ", " << cl << ")";
       
        return ss.str();
    }
};
int main() {
    Student stud;
    int age, cl;
    string first_name, last_name;
    cin >> first_name >> last_name >> age >> cl;
    stud.set_age(age);
    stud.set_class(cl);
    stud.set_firstname(first_name);
    stud.set_lastname(last_name);
    cout << stud.get_age() << endl;
    cout << stud.get_firstname() << endl;
    cout << stud.get_lastname() << endl;
    cout << stud.get_class() << endl;
    cout << endl << stud.to_string();
}

입력

priyam
kundu
16
10

출력

16
priyam
kundu
10

(16, priyam, kundu, 10)