这么屑的代码还有看的必要吗?
//main.cpp
#include <iostream>
#include <map>
#include "teacher.h"
#include "student.h"
using namespace std;
int main()
{
ios::sync_with_stdio(0);
teacher t1,t2,t3,t4,t5;
student s1,s2,s3,s4,s5,s6,s7;
}
//teacher.h
#ifndef TEACHER_H
#define TEACHER_H
#include <vector>//
using namespace std;
class teacher
{
public:
teacher();
~teacher();
void add_cse(int num);
void can_cse(int a);
void give_scle();
static int id;
protected:
vector<int> scle;
private:
};
#endif // TEACHER_H
//teacher.cpp
#include "teacher.h"
#include <vector>
#include <iostream>
using namespace std;
int teacher::id=0;
teacher::teacher()
{
id++;
}
teacher::~teacher()
{
//dtor
}
void teacher::add_cse(int num)
{
scle.push_back(num);
}
void teacher::can_cse(int a)
{
int imp;
for(int i=0;i<scle.size();i++){
if(a==scle[i]){imp=i;break;}
}
scle.erase(scle.begin()+imp);
}
void teacher::give_scle()
{
for(int i=0;i<scle.size();i++){
cout<<scle[i]<<endl;}
}
//student.h
#ifndef STUDENT_H
#define STUDENT_H
#include <vector>
#include <map>
using namespace std;
class student
{
public:
student();
~student();
void add_cse(int num,int point);
void can_cse(int a);
void give_scle();
void set_grade(int num, int grade);
void cal_aver_grade();
void cal_gpa();
void points_achieved();
static int id;
protected:
vector<int> scle;
int points_got;
map <int , int> point_collector;
map <int , int> grades;
private:
};
#endif // STUDENT_H
//student.cpp
#include "student.h"
#include <vector>
#include <iostream>
int student::id=0;
student::student()
{
id++;
student::points_got=0;
}
student::~student()
{
//dtor
}
void student::add_cse(int num,int point)
{
scle.push_back(num);
point_collector[num]=point;
points_got+=point;
}
void student::can_cse(int a)
{
int imp;
for(int i=0;i<scle.size();i++){
if(a==scle[i]){imp=i;break;}
}
scle.erase(scle.begin()+imp);
points_got-=point_collector[a];
point_collector[a]=0;
}
void student::give_scle()
{
for(int i=0;i<scle.size();i++){
cout<<scle[i]<<endl;}
}
void student::set_grade(int num,int grade)
{
grades[num]=grade;
cout<<"set,"<<num<<' '<<grade<<endl;
}
void student::cal_aver_grade()
{
float aver=0;
int amounts=0;
for(int i=0;i<scle.size();i++){
aver+=grades[scle[i]];amounts++;}
aver/=amounts;
cout<<aver<<endl;
}
void student::cal_gpa()
{
float aver=0;
for(int i=0;i<scle.size();i++){
aver+=(grades[scle[i]]*point_collector[scle[i]]);
}
aver/=points_got;
cout<<aver<<endl;
}
void student::points_achieved()
{
cout<<points_got<<endl;
}