需要java分级程序的帮助吗?我需要制作一个程序,读取学生总成绩的百分比
我有个问题。我有一个我应该创建的程序,它应该阅读两个测验的分数,这两个测验加起来占学生总分数的25%,期中考试占学生总分数的25%,期末考试占总分数的50%。当我运行该程序时,一切正常,除了第一个测验成绩为7分,第二个测验成绩为8分,期中成绩为90分,期末成绩为80分,总成绩应为81.25%,但它会显示。8125并自动给学生一个F。我不知道如何修正它需要java分级程序的帮助吗?我需要制作一个程序,读取学生总成绩的百分比,java,percentage,Java,Percentage,我有个问题。我有一个我应该创建的程序,它应该阅读两个测验的分数,这两个测验加起来占学生总分数的25%,期中考试占学生总分数的25%,期末考试占总分数的50%。当我运行该程序时,一切正常,除了第一个测验成绩为7分,第二个测验成绩为8分,期中成绩为90分,期末成绩为80分,总成绩应为81.25%,但它会显示。8125并自动给学生一个F。我不知道如何修正它 import java.util.Scanner; public class StudentClass { // calculate grade
import java.util.Scanner;
public class StudentClass {
// calculate grade first then the if else statements for the letter grade
public static Scanner grades = new Scanner (System.in);
public static double quiz1, quiz2, midterm, finalExam, Grades, totalGrade, bothQuizzes, PfinalExam, PmidTerm;
public static String studentname;
public static int Score;
public String getstudentname( )
{
return studentname;
}
public double getquiz1()
{
return quiz1;
}
public double getquiz2 ()
{
return quiz2;
}
public double midterm()
{
return midterm;
}
public double finalExam()
{
return finalExam;
}
public void setquiz1 (double quiz1)
{
this.quiz1 = quiz1;
}
public void setquiz2 (double quiz2)
{
this.quiz2 = quiz2;
}
public void setmidterm()
{
this.midterm = midterm;
}
public void setfinalExam()
{
this.finalExam = finalExam;
}
public void setGrades ()
{
}
public String toString(){
return this.quiz1 + " " + this.quiz2 + " " + this.midterm + " " + this.finalExam;
}
public static void readInput(){
System.out.println("Please enter the grade you got for the first quiz: ");
quiz1 = grades.nextInt();
while (quiz1 <0 || quiz1>10)
{
System.out.println("Please enter a grade between zero and ten: ");
quiz1 = grades.nextInt();
}
System.out.println("Please enter the grade you got for the second quiz: ");
quiz2 = grades.nextInt();
while (quiz2 <0 || quiz2>10)
{
System.out.println("Please enter a grade between zero and ten: ");
quiz2 = grades.nextInt();
}
System.out.println("Please enter the grade you got on your midterm: ");
midterm = grades.nextInt();
while (midterm <0 || midterm>100)
{
System.out.println("Please enter a grade between 0 and 100: ");
midterm = grades.nextInt();
}
System.out.println("Please enter the grade you got on your final exam: ");
finalExam = grades.nextInt();
while (finalExam < 0 || finalExam > 100)
{
System.out.println("Please enter a grade between 0 and 100: ");
finalExam = grades.nextInt();
}
}
public static void output()
{
System.out.println(" your score for the first quiz was " + quiz1 );
System.out.println("your score for the second quiz was " + quiz2);
System.out.println(" your score for the midterm was " + midterm );
System.out.println("your score for the final exam was " + finalExam);
bothQuizzes = ((quiz1 + quiz2)/20)*.25;
PmidTerm = (midterm/100) *.25;
PfinalExam = (finalExam/100) * .50;
totalGrade = bothQuizzes + PmidTerm + PfinalExam;
System.out.println("Your total grade for these grades is " + totalGrade);
double letterGrade = totalGrade;
if (letterGrade >= 90)
{
System.out.println("Your grade is an A");
// grade = "A";
}
else if (letterGrade >= 80)
{
System.out.println("Your grade is a B");
}
else if (letterGrade >= 70)
{
System.out.println("Your grade is a C");
}
else if (letterGrade >= 60)
{
System.out.println("Your grade is a D");
}
else
{
System.out.println("Your grade is an F");
}
}
}
import java.util.Scanner;
公共课学生课{
//首先计算等级,然后计算字母等级的if-else语句
公共静态扫描仪等级=新扫描仪(System.in);
公开静态双测验1、2、期中、期末、成绩、总成绩、两次测验、期末考试、PmidTerm;
公共静态字符串studentname;
公共静态积分;
公共字符串getstudentname()
{
返回学生姓名;
}
公共双getquiz1()
{
返回quiz1;
}
公共双getquiz2()
{
返回quiz2;
}
公开双中期()
{
返回期中;
}
公共双财务
{
返回finalExam;
}
公共无效设置quiz1(双quiz1)
{
this.quiz1=quiz1;
}
公共无效设置quiz2(双quiz2)
{
this.quiz2=quiz2;
}
公共部门中期报告()
{
这个。期中=期中;
}
public void setfinalExam()
{
this.finalExam=finalExam;
}
公营部门职系()
{
}
公共字符串toString(){
返回this.quiz1+“”+this.quiz2+“”+this.middterm+“”+this.finalExam;
}
公共静态void readInput(){
System.out.println(“请输入第一次测验的分数:”);
quiz1=grades.nextInt();
while(quiz1-10)
{
System.out.println(“请输入介于0和10之间的分数:”);
quiz1=grades.nextInt();
}
System.out.println(“请输入第二次测验的分数:”);
quiz2=grades.nextInt();
while(quiz2-10)
{
System.out.println(“请输入介于0和10之间的分数:”);
quiz2=grades.nextInt();
}
System.out.println(“请输入你期中考试的分数:”);
期中=成绩。nextInt();
而(期中100)
{
System.out.println(“请输入介于0和100之间的分数:”);
期中=成绩。nextInt();
}
System.out.println(“请输入期末考试的分数:”);
finalExam=grades.nextInt();
而(最终随机数<0 | |最终随机数>100)
{
System.out.println(“请输入介于0和100之间的分数:”);
finalExam=grades.nextInt();
}
}
公共静态void输出()
{
System.out.println(“第一次测验的分数是”+quiz1);
System.out.println(“第二次测验的分数是”+quiz2);
System.out.println(“你的期中成绩是”+期中成绩);
System.out.println(“你期末考试的分数是”+finalExam);
两个测验=((测验1+测验2)/20)*.25;
PmidTerm=(中期/100)*.25;
PfinalExam=(finalExam/100)*.50;
总成绩=两次测验+项目管理术语+期末考试;
System.out.println(“这些等级的总等级为”+总等级);
双字母等级=总等级;
如果(字母等级>=90)
{
System.out.println(“你的成绩是A”);
//等级=“A”;
}
否则,如果(字母等级>=80)
{
System.out.println(“你的成绩是B”);
}
否则,如果(字母等级>=70)
{
System.out.println(“你的成绩是C”);
}
否则,如果(字母等级>=60)
{
System.out.println(“你的成绩是D”);
}
其他的
{
System.out.println(“你的成绩是F”);
}
}
}
如果得到0.8125,只需乘以100并附加“%”即可得到81.25%
String gradeStr = (totalGrade*100) + "%";
System.out.println(gradeStr);
为了澄清,您使用的不是模运算符中的%
,而是字符串
bothQuizzes = ((quiz1 + quiz2)/20)*.25;
PmidTerm = (midterm/100) *.25;
PfinalExam = (finalExam/100) * .50;
totalGrade = bothQuizzes + PmidTerm + PfinalExam;
假设您输入0到100之间的整数值,这将为您提供:
两个测验:介于0和2.5之间的值
PmidTerm:介于0和.25之间的值
PfinalExam:介于0和.50之间的值
你显然有一些数学问题
你应该把这里的第一行改为
bothQuizzes = ((quiz1 + quiz2)/200) *.25
看起来你在什么地方掉了一个0。这将为您提供介于0和0.25之间的值
这意味着totalGrade将介于0和1.00之间。你应该把这个乘以100,所以你有:
totalgrade = 100*(bothQuizzes + PmidTerm + PfinalExam)
要以百分比显示,请执行以下操作:
System.out.println("Your total grade for these grades is " + totalGrade + "%");
你能详细说明一下吗?谢谢你们的快速回复,比如我应该在哪里插入百分号,我知道百分号会给你们剩余的部分…事实上我修正了它,现在它正确地给了我81.25%,谢谢大家!有趣的是,一个小错误就毁了整个程序。。。Lol乘以100将小数点向右移动两位谢谢!我认为人们读了你的标题,看到了开头的几句话,没有大写字母,然后对你的问题投了否决票,认为你是在问代码,没有花时间正确地格式化你的问题。你可能想编辑它。是的,我想为什么我会得到一百万张反对票?我没有像这里的数百万人那样乞求别人编写代码,我只是需要帮助。