Java输入三门成绩并算出总成绩和平均分。

Java输入三门成绩并算出总成绩和平均分。,第1张

如果平均成绩不是整除,则结果会不正确!

原因:因为您定义的ABC都是整型的, 因此A+B+C总成绩也是整型的,而总成绩/3的结果有可能为不会整除,因此,1修改平均成绩的数据类型 2将A+B+C的结果强制转换为double或float类型,否则在java中整数/整数,结果直接取整,无法保证平均成绩的正确性。修改以上两点,平均成绩才能准确!

public class Score {

// 记录学生的姓名

private String[] name;

// 记录分数

private int[][] fraction;

// 记录分数等级

private char[] grade;

// 存储数据

private void saveData() {

thisname = new String[] { "Johnson", "Aniston", "Cooper", "Gupta", "Blair" };

thisfraction = new int[][] { { 85, 83, 77, 91, 76 }, { 80, 90, 95, 93, 48 }, { 78, 81, 11, 90, 73 }, { 92, 83, 30, 69, 87 }, { 23, 45, 96, 38, 59 } };

thisgrade = new char[thisnamelength];

}

public Score() {

// 在构造函数中调用saveData存储数据。

thissaveData();

}

// 计算分数等级。传入一个分数,返回该分数的评分等级。

private char getGrade(int fraction) {

if (fraction > 100) {

// 100分的考卷分数居然超过了100,肯定和老师有交易,给你个X!

return 'X';

}

else if (fraction >= 85) {

return 'A';

}

else if (fraction >= 75) {

return 'B';

}

else if (fraction >= 65) {

return 'C';

}

else if (fraction >= 50) {

return 'D';

}

return 'F';

}

// 输出成绩/平均分/评分/班级平均分/班级评分

public void printScore() {

int average = 0;// 存储班级的平均分

for (int i = 0; i < thisfractionlength; i++) {

Systemoutprint(thisname[i] + "\t");// 输入学生的名字(\t是输出制表符,相当于按一下Tab的效果)

int temp = 0;// 临时存储数据的变量

for (int x = 0; x < thisfraction[i]length; x++) {

temp += thisfraction[i][x];

Systemoutprint(thisfraction[i][x] + "\t");

}

temp = temp / thisfraction[i]length;// 此时temp的值就是该学生的平均分

thisgrade[i] = thisgetGrade(temp);// 存入平均分

Systemoutprintln("平均分:" + temp + "\t评价" + thisgrade[i]);// 输出该学生的平均分和评价

average += temp;

}

average = average / thisnamelength;

Systemoutprintln("班级平均分:" + average + "\t班级评价" + thisgetGrade(average));

}

public static void main(String[] args) {

new Score()printScore();

}

}

运行结果:

Johnson 85 83 77 91 76 平均分:82 评价B

Aniston 80 90 95 93 48 平均分:81 评价B

Cooper 78 81 11 90 73 平均分:66 评价C

Gupta 92 83 30 69 87 平均分:72 评价C

Blair 23 45 96 38 59 平均分:52 评价D

班级平均分:70 班级评价C

用伪代码表示吧,懒得另外做注释了(1)小数点后面的位数不确定,如果你用浮点类型表示小数,可以直接 类型 分子 = x1000000; 类型 分母 = 1000000(2)约分,如果没有找到相关函数。想自己动手解决。2个循环就OK了。 当然有一点要注意,约分只能用10,5,2约分(数学问题,自己想)main(){ where(分子能整除10){ 分子=分子/10; 分母=分母/10;} where(分子能整除5 and 分母能整除5) { 分子=分子/5; 分母=分母/5;} where(分子能整除2 and 分母能整除2) { 分子=分子/2; 分母=分母/2;}}

以上就是关于Java输入三门成绩并算出总成绩和平均分。全部的内容,包括:Java输入三门成绩并算出总成绩和平均分。、编写一个java程序来计算学生考试成绩的平均分和他们的分数等级。你可以假设以下数据:、java 如何把小数变成分数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10169577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存