본문 바로가기
C++/c++수업

학생관리 프로그램을 위한 학생(Student) 클래스 설계

by sj0020 2020. 10. 20.

student.h

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;

class Student
{ 
private: //03 클래스의 속성은 이름, 나이, 성별, 주소를 선언하고 다른 클래스에서 접근을 차단함
	string name;
	int age;
	string gender;
	string address;

public:
	Student(); //기본생성자
	Student(string name, int age, string gender, string address);  //04 매개변수 이름, 나이, 성별, 주소를 사용하는 생성자 추가
	~Student();
	//05) 속성에 대한 getter/setter 멤버 메쏘드 추가.
	inline void setName(string name) {
		this->name = name;
	}
	string getName() {
		return name;
	}

	inline void setAge(int age) {
		this->age = age;
	}
	int getAge() {
		return age;
	}

	inline void setGender(string gender) {
		this->gender = gender;
	}
	string getGender() {
		return gender;
	}

	inline void setAddress(string address) {
		this->address = address;
	}
	string getAddress() {
		return address;
	}

	void showStudentInfo();//06) 모든 속성 정보를 출력하는 showStudentInfo() 멤버 메쏘드 추가.
	
};

 

student.cpp

#include "Student.h"

Student::Student() {

}

Student::Student(string name, int age, string gender, string address) {
	this->name = name;
	this->age = age;
	this->gender = gender;
	this->address = address;
}

Student::~Student(){}

void Student::showStudentInfo() {
	cout << "이름 " << name << endl;
	cout << "나이 " << age << endl;
	cout << "성별 " << gender << endl;
	cout << "주소 " << address << endl;
}

 

studentMain.cpp

#include"Student.h"

int main(void) {
	
	string name[] = { "홍길동", "김길동", "박길동", "이길동", "최길동"};
	int age[] = {20, 25, 30, 35, 40};
	string gender[] = {"남", "여"};
	string address[] = {"대구시 동구 신암4동", "서울시 동구 신암4동", "부산시 동구 신암4동", "인천시 동구 신암4동", "광주시 동구 신암4동"};

	srand((unsigned int)time(NULL));
	
	Student stlist[10]; //조건08) main()에서 10명의 학생 정보를 저장할수있는 Student 객체 생성.
	for (int i = 0; i < 10; i++) {
		stlist[i] = Student(name[rand () % 4], age[rand() % 4], gender[rand() % 1], address[rand() % 4]);
		//stlist[i].showStudentInfo();
		//cout << endl;
	}
	
	//조건11)10번째 학생의 정보 변경  "전우치", 24, '남', "조선 한양인근 두메산골" 
	stlist[9].Student::setName("전우치");
	stlist[9].Student::setAge(24);
	stlist[9].setGender("남");
	stlist[9].setAddress("조선");
	//stlist[9].showStudentInfo();

	for (int i = 0; i < 10; i++) {
		stlist[i].showStudentInfo();
		cout << endl;
	}
	return 0;
}

조건11) 10번째 학생의 정보를 아래의 정보로 변경하기.

 "전우치", 24, '남', "조선 한양인근 두메산골"

아래와 같이 하게 되면 객체를 하나 더 생성하고 그 정보를 9번째 배열에 집어넣는 것이 된다.

위의 코드처럼 해줘야 함

// "전우치", 24, '남', "조선 한양인근 두메산골" 
stlist[9] = Student("전우치", 24, "남", "조선 한양인근 두메산골");
stlist[9].showStudentInfo();


1. 학생관리 프로그램을 위한 학생(Student) 클래스 설계.

조건01) 프로젝트를 생성할때 패키지명을 com.(회사명 또는 본인 이니셜).앱이름으로 생성.
조건02) 학생 클래스, main()를 포함하는 클래스 2개 사용. (java파일 총 2개 생성)
조건03) 클래스의 속성은 이름, 나이, 성별, 주소를 선언하고 다른 클래스에서 접근을 차단함. -  private
       - 속성의 데이터 타입은 아래의 조건7을 참고 바람.
조건04) 매개변수 이름, 나이, 성별, 주소를 사용하는 생성자 추가.
조건05) 속성에 대한 getter/setter 멤버 메쏘드 추가.
조건06) 모든 속성 정보를 출력하는 showStudentInfo() 멤버 메쏘드 추가.
조건07) main()에서 다음의 학생 정보 배열 초기화.

 String name[] = {"홍길동", "김길동", "박길동", "이길동", 최길동"};
        int age[] = {20, 25, 30, 35, 40};
        char gender[] = {'남', '여'};
        String address[] = {"대구시 동구 신암4동", "서울시 동구 신암4동",
 "부산시 동구 신암4동", "인천시 동구 신암4동", "광주시 동구 신암4동"};

조건08) main()에서 10명의 학생 정보를 저장할수있는 Student 객체 생성.
조건09) 이름, 나이, 성별, 주소 정보들을 랜덤하게 가져와 생성자 매개변수로 전달하기.
조건10) 10명의 학생정보가 생성되었으면 showStudentInfo()를 통해서 모두 출력하기.
       - 출력 형태는 깔끔하게 정리하여 보여주기.
조건11) 10번째 학생의 정보를 아래의 정보로 변경하기.

 "전우치", 24, '남', "조선 한양인근 두메산골"
       
조건12) 조건11 에서 설정한 정보들을 showStudentInfo() 를 통해서 출력.

[출처] Java 클래스 2번째|작성자 박x신