计算规则:

分数

绩点

60-100

1.0-5.0

0-59

0

平均学分绩点=(∑(已修读课程绩点×课程学分))/(∑已修读课程学分);

Java:

package Test;
//GpaCalculator.java
import java.util.*;
public class GpaCalculator{
    public static void main(String[]args){
        Scanner s = new Scanner(System.in);
        System.out.println("********************************");
        System.out.println("           绩点计算器           ");
        System.out.println("********************************");
        while(true) {//进入计算器系统,每次进入都要重新定义以下变量
        
            int n = 1;//第n门科目
            double allCredit = 0;//总学分
            double averageGpa = 0;//平均绩点
            int count90 = 0;	//统计90分以上科目
            int count85 = 0;	//统计85-89分以上科目
            int count0 = 0;		//统计60分以下科目
            
            System.out.print("请输入本次计算绩点的科目数量: ");
            int num = s.nextInt();
            
            double credit[] = new double[num];//单科学分
            double score[] = new double[num]; //分数
            double gpa[] = new double[num];	  //单科绩点
            
            while (true) {//开始输入
                System.out.print("请输入第" + n + "科课程的分数和学分: ");
                score[n-1] = s.nextDouble();//成绩
                credit[n-1] = s.nextDouble();//学分
                
                //输入成绩不合法时,让用户重新输入合法成绩
                if(score[n-1]<0|score[n-1]>100) {
                    System.out.println("成绩输入有误,请重新输入分数和学分");
                    continue;
                }
				//统计成绩      
                if (score[n-1]>=90){//统计90分以上科目
                    count90++;
                }else if(score[n-1]>=85){//统计85-89分以上科目
                    count85++;
                }
                //计算绩点
                if (score[n-1]<60){//统计60分以下科目并计该科绩点为0
                    gpa[n-1]=0;	
                    count0++;
                }else{
                    gpa [n-1]= (score[n-1] - 60)/10 + 1;//绩点
                }
                //计算总学分
                allCredit += credit[n-1];
                if (n == num) {//如果已计算科目=全部科目退出循环
                    break;
                }
                n++;
            }
            //计算平均绩点
            for(int i=0;i<num;i++) {
                averageGpa += gpa[i]*credit[i]/allCredit;
            }
            //输出成绩报告
            System.out.println('\n'+"成绩报告:");
            System.out.println("这" + num + "门课的平均绩点为:" + String.format("%.2f" ,averageGpa));
            System.out.println("其中,90分以上共有" + count90 + "门课");
            System.out.println("     85至89分共有" + count85 + "门课");
            System.out.println("     60分以下共有" + count0 + "门课");
            System.out.println("共修学分" + allCredit);
            //选择继续使用或退出系统
            System.out.println('\n'+"退出程序请按0,按其余数字继续使用");
            int button = s.nextInt();
            if (button==0){
                System.out.println("已退出程序");
                break;
            }
        }
    }
}

C:

#include<iostream>
#include <iomanip> 
using namespace std;

int num;//计算科目数量 
double credit[100];//单科学分
double score[100]; //分数
double gpa[100];	  //单科绩点

//成绩报告
void result(int num,double averageGpa,int count90,int count85,int count0,double allCredit){
	cout<<endl<<"成绩报告:"<<endl;
    cout<<"这"<<num<<"门课的平均绩点为:"<<setiosflags(ios::fixed)<<setprecision(2)<<averageGpa<<endl;
    cout<<"其中,90分以上共有"<<count90<<"门课"<<endl;
    cout<<"     85至89分共有"<<count85<<"门课"<<endl;
    cout<<"     60分以下共有"<<count0<<"门课"<<endl;
    cout<<"共修学分"<<allCredit<<endl;
} 

//计算部分 
void calculation(){
	while(1){//进入计算器系统,每次进入都要重新定义以下变量
    	
		int n = 1;//第n门科目
        double allCredit = 0;//总学分
        double averageGpa = 0;//平均绩点
        int count90 = 0;	//统计90分以上科目
        int count85 = 0;	//统计85-89分以上科目
        int count0 = 0;		//统计60分以下科目
            
        cout<<"请输入本次计算绩点的科目数量: ";
		cin>>num;
		
		while(1){
			cout<<"请输入第"<<n<<"科课程的分数和学分: ";
			cin>>score[n-1]; //成绩 
			cin>>credit[n-1];//学分 
			
			//输入成绩不合法时,让用户重新输入合法成绩
            if(score[n-1]<0|score[n-1]>100) {
                 System.out.println("成绩输入有误,请重新输入分数和学分");
                 continue;
            }
            
			//统计成绩      
            if (score[n-1]>=90)//统计90分以上科目
                count90++;
            else if(score[n-1]>=85)//统计85-89分以上科目
                count85++;
            
            //计算绩点
            if (score[n-1]<60){//统计60分以下科目并计该科绩点为0
                gpa[n-1]=0;	
                count0++;
			}else
                gpa [n-1]= (score[n-1] - 60)/10 + 1;//绩点
            
            //计算总学分
            allCredit += credit[n-1];
            if (n == num) //如果已计算科目=全部科目退出循环
                break;
            
            n++;
		} 
		 //计算平均绩点
        for(int i=0;i<num;i++)
            averageGpa += gpa[i]*credit[i]/allCredit;
        
        result(num,averageGpa,count90,count85,count0,allCredit);//成绩报告 
        //是否退出系统
		cout<<"退出程序请按0,按其余数字继续使用"<<endl;
    	int button;
    	cin>>button;
    	if (button==0){
        	cout<<"已退出程序"<<endl;
        	break;
    	} 
	}
}


int main(){
	cout<<"********************************"<<endl;
    cout<<"           绩点计算器           "<<endl;
    cout<<"********************************"<<endl;
    calculation();
	return 0;
}

运行结果:

java分数相除 java分数计算器_java分数相除