平均績點通常指平均學分績點(即GPA,Grade Point Average)。某些學校採用學分績點制對學生學習質量進行評定,平均學分績點是主要考察指標。
本篇博客提供了C++語言編寫的GPA計算器,供大家計算學期的GPA,若有疑問,請在下方評論。
(後期會貼上 #Python# 爬蟲登錄教務系統,自動獲取成績計算績點的代碼,敬請期待)
先附上源代碼
//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)"<<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));
}
使用方法請按照提示進行,下面給出例子。
如某人一學期的成績如下:
課程名稱 | 課程性質 | 學分 | 成績 |
計算機組成原理* | 必修課 | 4 | 84 |
數據結構* | 必修課 | 4 | 94 |
概率論與數理統計 | 必修課 | 3 | 99 |
數據結構實驗 | 必修課 | 1 | 94 |
計算機組成原理實驗 | 必修課 | 1 | 93 |
單片機應用系統設計實訓 | 必修課 | 1 | 91 |
C#程序設計 | 選修課 | 2 | 93 |
中國近現代史綱要 | 必修課 | 3 | 75 |
形勢與政策(Ⅲ) | 必修課 | 0.8 | 95 |
大學英語(Ⅲ) | 必修課 | 2 | 87 |
大學體育(Ⅲ) | 必修課 | 1 | 85 |
文學與人生 | 選修課 | 1 | 88 |
普通天文學 | 選修課 | 1 | 95 |
一共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)