GPA–平均绩点通常指平均学分绩点(即GPA,Grade Point Average)。某些学校采用学分绩点制对学生学习质量进行评定,平均学分绩点是主要考察指标。
绩点说明:
if grade >= 60 我校绩点为95分为5,其它为5.5-0.1*(100-grade);
else 你将挂科,并且绩点将会是0;劝诫同学们不要挂科不要挂科不要挂科(重要的事情多说几遍)
我们的教务管理系统已经给出了我们所得绩点;
但是!!!他并没有给我们平均绩点,所以我们要早它一步给我们算出来。也是检验它准确性的依据。
试一试水,废话少说上代码
#include<iostream>
using namespace std;
int SubjectNum=0; //学科数目
float *score=NULL; //学科分数
float *credit=NULL; //学科学分
float *gradePoint=NULL; //学科绩点
bool *isProfessional=NULL; //是否专业课
float wholeCredit=0; //专业课总学分
float GPA=0; //绩点
void ScoreToPoint(); //成绩转绩点
void GetGPA(); //计算GPA
int main()
{
int i=0;
cout<<"请输入考试科目总数(你也可只输入作为成绩排名的科目总数)"<<endl;
cin>>SubjectNum;
score=new float[SubjectNum];
credit=new float[SubjectNum];
gradePoint=new float[SubjectNum];
isProfessional=new bool[SubjectNum];
cout<<"请依次输入"<<SubjectNum<<"门科目的成绩,并标注是否为专业课。(例:算法设计 4个学分,95分,为专业课,则输入1 4 95)"<<endl;
for(i=0;i<SubjectNum;i++)
cin>>isProfessional[i]>>credit[i]>>score[i];
//计算专业课总学分
for(i=0;i<SubjectNum;i++)
wholeCredit+=(isProfessional[i]*credit[i]);
ScoreToPoint(); //成绩转绩点
GetGPA(); //计算GPA
cout<<"您各个科目获得的绩点如下:"<<endl<<endl;
for(i=0;i<SubjectNum;i++)
cout<<"科目"<<i+1<<"\t";
cout<<endl;
for(i=0;i<SubjectNum;i++)
cout<<gradePoint[i]<<"\t";
cout<<endl<<endl;
cout<<"综合计算,您获得的GPA(平均学分绩点)为"<<GPA<<endl;
return 0;
}
void ScoreToPoint() //成绩转绩点
{
int i=0;
for(i=0;i<SubjectNum;i++)
{
if(score[i]<60)
gradePoint[i]=0; //低于60分绩点记为0
else
gradePoint[i]=5.5-0.1*(100-score[i]);
}
}
void GetGPA() //计算GPA
{
int i=0;
for(i=0;i<SubjectNum;i++)
GPA+=(isProfessional[i]*gradePoint[i]*(credit[i]/wholeCredit));
}
用了一位菜鸟的成绩当做例子输入了一哈;
菜鸟嘛考得不好也比较正常,反正不太满意,哎呀说多了都是泪,尤其是数据库和计网,也太TM菜了,还有一门数字逻辑没出这个不计入最终成绩,所一我的运行结果中只输入了我参与最终成绩的科目成绩。
???你在说什么不是说GPA怎么算吗,怎么成了你发牢骚的地方
!!!咳咳咳,转为正题
我只选中了第3、4、5、6、10、11项
运行结果如下: