编程实现学分绩点计算,输出每门课程的绩点,学分和课程学分绩点,并输出平均学分绩点

1、按成绩折算课程绩点:
90分 - 100分 折合4.0 - 5.0绩点,即90分折合4.0,91分折合4.1,依次类推
80分 - 89分 折合3.0 - 3.9绩点,即80分折合3.0,81分折合3.1,依次类推
70分 - 79分 折合2.0 - 2.9绩点,即70分折合3.0,71分折合3.1,依次类推
60分 - 69分 折合1.0 - 1.9绩点,即60分折合2.0,61分折合2.1,依次类推
不足60分的绩点为0

2、计算公式:
课程学分绩点 = 课程绩点 × 课程学分
平均学分绩点 = 课程学分绩点总和 ÷ 课程学分总和

输入学生各门课程的成绩和学分,编程实现学分绩点计算,输出每门课程的绩点,学分和课程学分绩点,并输出平均学分绩点

输入格式:

每一行输入课程的成绩和学分,以#结束

输出格式:

每一行输出课程绩点,学分,课程学分绩点(保留两位小数),每一项占8个字符的宽度
最后一行输出平均学分绩点(保留两位小数)

输入样例:

在这里给出一组输入。例如:

in
95 2
87 3
83 2
78 3
66 4
56 2
93 1
#

输出样例:

在这里给出相应的输出。例如:

out
课程绩点 学分 课程学分绩点
4.5 2 9.00
3.7 3 11.10
3.3 2 6.60
2.8 3 8.40
1.6 4 6.40
0 2 0.00
4.3 1 4.30
平均学分绩点 = 2.69

以下答案引用自GPT-3大模型,请合理使用:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String[] arr = input.split(" ");
        double creditTotal = 0.0;
        double gradeTotal = 0.0;
        for (int i = 0; i < arr.length - 1; i += 2) {
            double credit = Double.parseDouble(arr[i + 1]);
            double grade = 0;
            if (arr[i].equals("in")) {
                int score = Integer.parseInt(arr[i + 1]);
                // 按分数折算绩点
                if (score >= 90) {
                    grade = 4.0 + (score - 90) * 0.1;
                } else if (score >= 80) {
                    grade = 3.0 + (score - 80) * 0.1;
                } else if (score >= 70) { 
                    grade = 2.0 + (score - 70) * 0.1;
                } else if (score >= 60) {
                    grade = 1.0 + (score - 60) * 0.1;
                }
            }
            System.out.printf("%.1f %.1f %.2f\n",grade,credit,grade * credit);
            creditTotal += credit;
            gradeTotal += grade * credit;
        }
        System.out.printf("平均学分绩点 = %.2f",gradeTotal / creditTotal);
    }
}

如果我的回答解决了您的问题,请采纳我的回答

有用请采纳,非常贴心的标注了课程。
不然数据一多谁知道是谁。。
QUE一下楼上, 看到Python标签了吗O(∩_∩)O哈哈~。

# 已知学分>=60时产生绩点,且60 --> 1 ,61 --> 1.1 .......100 -->5
# 课程学分绩点 = 课程绩点 × 课程学分
# 平均学分绩点 = 课程学分绩点总和 ÷ 课程学分总和
###   预计输入 : X行成绩
### 输出 :课程绩点,学分,课程学分绩点
### 中止 : 接收'#'
import pandas as pd
def caculate_kcjd(date) :
    if date < 60 :
        return 0
    elif date == 60 :
        return 1
    else :
        return (date-60)/10+1
## print(caculate_kcjd(60))
## print(caculate_kcjd(95)         测试成功
def main() :
    result_list=[]
    is_continue=True
    while is_continue :
        temp=input('请输入课程,成绩,学分')       ###格式为 a b  用空格隔开
        if temp == '#' :
            break
        else :
            result_list.append(temp.split(' '))
    return result_list
result_list=main()                           ###接收输入完成
df=pd.DataFrame(result_list,columns='课程,成绩,学分'.split(','))   ###构建Dataframe
df['课程绩点']=df.成绩.astype(int).apply(lambda x : caculate_kcjd(x) )   ###生成计算列
df['课程学分绩点']=df.课程绩点.astype(int)*df.学分.astype(int)             ### 生成计算列
print(df)     ### 基础信息及加工字段输出
print('平均学分绩点为',str(round(df.课程学分绩点.astype(int).sum()/df.学分.astype(int).sum(),2)))      ###输出最终结果

img

有这个的答案了么,求答案