GPA——平均绩点计算器(5.0分制)

平均绩点通常指平均学分绩点(即GPA,Grade Point Average)。某些学校采用学分绩点制对学生学习质量进行评定,平均学分绩点是主要考察指标。

本篇博客提供了C++语言编写的GPA计算器,供大家计算学期的GPA,若有疑问,请在下方评论。

先附上源代码

//5.0分制——绩点计算器
//低于60分绩点记为0
//2019.04.30 ——LeoHao 
#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,不为专业课,则输入0 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; 
	getchar();
	getchar();
	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.0-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));
}

使用方法请按照提示进行,下面给出例子。

如某人一学期的成绩如下:

课程名称课程性质学分成绩
计算机组成原理*必修课484
数据结构*必修课494
概率论与数理统计必修课399
数据结构实验必修课194
计算机组成原理实验必修课193
单片机应用系统设计实训必修课191
C#程序设计选修课293
中国近现代史纲要必修课375
形势与政策(Ⅲ)必修课0.895
大学英语(Ⅲ)必修课287
大学体育(Ⅲ)必修课185
文学与人生选修课188
普通天文学选修课195

一共13门科目,必修课记为1,非必修课记为0,则输入的成绩信息如下表所示:

1  4  84
1  4  94
1  3  99
1  1  94
1  1  93
1  1  91
0  2  93
1  3  75
1  0.8  95
1  2  87
1  1  85
0  1  88
0  1  95

则计算过程截图如下:

程序下载链接:

CSDN下载站

百度网盘(密码:5lql)

③ 【推荐】你还可以在 C++ Online Compiler & Interpreter - Replit 上快速粘贴代码并运行

 

  • 23
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值