极致简陋的屑课程系统

这么屑的代码还有看的必要吗?

//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;
}

kankainashi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值