北航GPA计算


为了方便广大BUAA的同志们计算自己的GPA绩点,我用C语言写了一个简单的北航GPA计算程序。

不过这个程序运行的结果与实际大体一致,却仍然有些许误差(我自己的测试误差基本在0.1以内)。本人菜鸡一枚,找不到问题所在,如果有哪位同志发现问题欢迎在下面评论(~ ̄▽ ̄)~

/*此程序用于北航GPA计算
百分制学科输入“成绩【空格】学分【回车】”
五级制学科,与百分制学科输入类似,“优秀”“良好”“中等”“及格”“不及格”分别对应成绩“101”“102”“103”“104”“105”
输入“-1”代表输入完毕,按回车即可得到GPA*/
 
//此程序测试时与实际GPA基本一致,但有少许误差,请以实际GPA为准
 
//如果有哪位同志知道误差产生原因可以在下面评论呦~~ (~ ̄▽ ̄)~ 
 
#include<stdio.h>
 
int main()
{
    int grade[100]={};//用于储存单科成绩
    double point[100]={};//用于储存单科学分 
    double gpa[100]={};//用于储存单科gpa
    int i;
    double GPA;
    double sum1=0;//学分绩点和 
    double sum2=0;//学分和 
    for(i=0;i<100;i++)
    {
        scanf("%d",&grade[i]);
        if(grade[i]==-1)
        {
            break;
        }
        scanf("%lf",&point[i]);
    }
    int n=i;
    for(i=0;i<n;i++)
    {
        if(grade[i]==101)
        {
            gpa[i]=4;
        }
        else if(grade[i]==102)
        {
            gpa[i]=3.5;
        }
        else if(grade[i]==103)
        {
            gpa[i]=2.8;
        }
        else if(grade[i]==104)
        {
            gpa[i]=1.7;
        }
        else if(grade[i]==105)
        {
            gpa[i]=0;
        }
        else
        {
            gpa[i]=4.0-((100.0-grade[i])*(100.0-grade[i])*3.0)/1600.0;
        }
        sum1=sum1+gpa[i]*point[i];
        sum2=sum2+point[i];
    }
    GPA=sum1/sum2;
    printf("%lf",GPA);
    
    return 0;
} 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM