새로새록
[c++]6. 학사관리 본문
다음 학사관리 프로그램을 작성하라.
1)
C lass Student 를 생성하시오
이름 (string), 학번 int), 학과 string) 를 member data 로 생성하시오
학생이 들은 과목 vector string>) 과 성적 vector char>) 을 저장하는
member data 를 생성하시오
모든 Member data 는 p rivate 으로 설정하시오
2)
Class Student 의 함수들은 모두 public 으로 생성하시오 . 아래와 같이 두 가지 방식으로
main 함수에서 Student 객체를 생성할 수 있도록 Constructor 함수를 만드시오
Student harry(
harry(“Harry”, 2018101234, “
Student ron;
// 이 때 Initialization list) 를 이용하여 초기값 default ”, 0, “ 을 설정하시오
3
Student ron 과 같은 방식으로 객체를 생성한 경우 , 추후 이름 학번 학과를 세팅 할 수
있도록 setName, setID, setdept 함수를 각각 만드시오 Student 객체의 정보를 다음과
같이 한 줄에 출력 할 수 있도록 print 함수를 만드시오
4
학생의 성적을 입력하는 addGrade 함수를 구현하시오 이 함수는 과목 ( 하나와
해당 과목의 성적 char) 을 입력인수로 받아 과목 이름은 과목 vector 가장 마지막에 ,
성적은 성적 vect or 가장 마지막에 저장한다 과목과 성적 정보를 출력하는 printGrades
함수를 구현하시오 이 함수는 학생의 성적을 vec tor 에 저장된 만큼 다음 과 같이 한 줄에
한 과목씩 출력한다
5
학생의 성적을 평균내어 평점을 구하는 getGPA 함수를 구현하시오 이 함수는 성적
vector 에 있는 A,B,C,D,F 를 4,3,2,1,0 으로 변환하여 모두 더해 평균을 내서 float 으로
반환하는 함수이다 **printGrades 함수 마지막 부분에 추가해서 과목이름과 성적출력
마지막에 평군 평점을 출력하도록 하라
6
학번을 보고 입력받는 해를 기준 몇학년 인지 출력하는 getYear 함수를 구현하시오 이
함수는 year(int) 정보를 받아 F reshmen(1 학년 )), Sophomore(2 학년 )), Junior(3 학년 )),
Senior(4 학년 )), About to graduate(5 학년 이상 중 하나를 출력한다
***
휴학 등을 제외하고 입력 받은 년도와 학번의 차이로 학년을 계산한다
7
main 함수는 다음과 같이 작성한다
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Student {
private:
string name;
int id;
string major;
vector<string> lecture;
vector<char> grade;
public:
Student(string _name, int _id, string _major) :
name(_name), id(_id), major(_major) {}
Student() :
name("default"), id(0), major("depart") {}
void setName(string _name) {
name = _name;
}
void setID(int _id) {
id = _id;
}
void setdept(string _major) {
major = _major;
}
void print() {
cout << name << ' ' << id << ' ' << major << endl;
}
void addGrade(string _lecture, char _grade) {
lecture.push_back(_lecture);
grade.push_back(_grade);
}
void printGrades() {
int size = lecture.size();
for (int i = 0; i < size; i++) {
cout << lecture[i] << ' ' << grade[i] << endl;
}
getGPA();
}
void getGPA() {
int size = grade.size();
float sum = 0, gpa;
for (int i = 0; i < size; i++) {
if (grade[i]<69)
sum += 69 - grade[i];
}
gpa = sum / size;
cout << "GPA : " << gpa;
}
void getYear(int year) {
int enroll = id / 1000000;
int hang = year - enroll + 1;
if (hang == 1)
cout << "Freshmen(1학년)" << endl;
else if (hang == 2)
cout << "Sophomore(2학년)" << endl;
else if (hang == 3)
cout << "Junior(3학년)" << endl;
else if (hang == 4)
cout << "Senior(4학년)" << endl;
else
cout << "About to graduate" << '(' << hang << ')' << endl;
}
};
int main() {
Student Harry("Harry", 2017310973, "CS");
Harry.print();
Harry.getYear(2019);
Harry.addGrade("programming", 'A');
Harry.addGrade("Basic Circuit", 'B');
Harry.printGrades();
cout << "\n\n";
Student ron;
ron.print();
cout << "\n";
ron.setName("Ron");
ron.setID(2014103959);
ron.setdept("EE");
ron.print();
ron.getYear(2019);
ron.addGrade("Computer Architecture", 'B');
ron.addGrade("Macine Learning", 'B');
ron.addGrade("Computer Vision", 'C');
ron.printGrades();
return 0;
}
좋아요공감
공유하기
통계
글 요소
'소프트웨어융합 > 경희대 c++ 과제' 카테고리의 다른 글
[c++]7. 전 재산 계좌 송금 (0) | 2020.07.16 |
---|---|
[c++]7. 두 좌표 사이의 거리 (0) | 2020.07.16 |
[c++]6. 재귀함수와 피보나치 (0) | 2020.07.16 |
[c++]6. class :학번 이름 전공 입출력 (0) | 2020.07.16 |
[c++]5. 행렬 두개와 2D vector (0) | 2020.07.16 |