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))) ###输出最终结果
有这个的答案了么,求答案