编写一个程序,根据CSE 1341课程大纲计算当前成绩。该程序应提示用户输入姓名。然后它将这些名称作为字符串传递给CSE1341Grade类的第二个方法。第二种方法的名称是calcGrade。此方法将提示用户计算考试分数,测验分数和用户输入的实验室分数。
然后,它将利用重复结构根据输入的先前计数提示考试成绩,测验成绩和实验室成绩。例如,如果用户输入的考试分数为2;然后程序将循环2次输入两个考试成绩;并且类似于测验和计数实验室成绩的计数。
假设您有100%的出勤记录,您将获得所有出勤等级的5%。 使用教学大纲确定每个类别的权重,例如考试,测验和实验。因为你有完美的出勤率,所以总分增加5%。 假设:所有考试,实验和测验分数均超过100分。 样品运行: 
java CSE1341Grade
名字:詹姆斯
姓氏:Bond
你有多少考试成绩? 1
你有多少个测验成绩? 2
你有多少实验室成绩? 2
输入考试1分:90
输入测验1得分:80
输入测验2得分:80
输入实验室1得分:90
输入实验室2得分:90
总分:84.55
James Bond你的成绩是:B
^^这是我的家庭作业,这是我到目前为止所做的工作
import java.util.Scanner;
public class CSE1341Grade
{
public static void main(String [] args)
{
//set up Scanner for user input, prompt for first name, define variable, and print response
Scanner s = new Scanner(System.in);
System.out.print("First name: ");
String first = s.nextLine();
System.out.printf(" %s\n", first);
//prompt user for last name, define variable, and print response
System.out.print("Last name: ");
String last = s.nextLine();
System.out.printf(" %s\n", last);
}
public static void calcGrade(String first, String last)
{
//prompt user for number of exam grades, define exam variable, print response
System.out.print("How many exam grades do you have? ");
String exam = s.nextLine();
System.out.printf(" %s\n", exam);
//prompt user for number of quiz grades, define quiz variable, print response
System.out.print("How many quiz grades do you have? ");
String quiz = s.nextLine();
System.out.printf(" %s\n", quiz);
//prompt user for number of lab grades, define lab variable, print response
System.out.print("How many lab grades do you have? ");
String lab = s.nextLine();
System.out.printf(" %s\n", lab);
while (exam != -1)
{
System.out.print("Enter " exam 1 " score: ", ++exam)
//define variables for computations
int score = 0;
int grade = 0;
//if statement to determine the final letter grade
if(score >= 90 && score <=100){
grade = 'A'; }
else if(score >=80 && score < 90){
grade = 'B'; }
else if(score >= 70 && score < 80){
grade = 'C'; }
else if(score >=60 && score < 70){
grade = 'D'; }
else {
grade = 'F'; }
}
}
我的问题是弄清楚如何创建一个循环,提示用户需要多少考试成绩。
答案 0 :(得分:1)
我根据评论对您的代码进行了一些更改。
在这里你可以看到差异
http://www.mergely.com/LIckVifT/
注意:它仍然没有完成你的作业: - )
更新:由于foor循环中的索引并不重要,您可以将其用作:
for (int i = 1; i <= examsCount; i++) {
// using i+1 to print starting from 1 instead of 0
System.out.print("Enter " + i + " score: ");
而不是
for (int i = 0; i < examsCount; i++) {
// using i+1 to print starting from 1 instead of 0
System.out.print("Enter " + (i + 1) + " score: ");
答案 1 :(得分:0)
我喜欢做一个循环并继续询问用户输入,直到我得到我想要的结果:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean shouldContinue = true;
while(shouldContinue) {
// do program logic
System.out.print("Should we continue? [Y or N] >> ");
if (input.nextLine().equalsIgnoreCase("N")) {
shouldContinue = false;
}
}
}
这是一种相对“结构化”的方式来进行交互循环,并且只要用户想要,就可以反复运行程序。
-- UPDATE --
要做一些你提前知道的迭代,只需将它输入你的循环计数器:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Number of grades to enter [number] : ");
int numberOfTimesToIterate = input.nextInt();
for (int i = 0; i < numberOfTimesToIterate; i++) {
// do stuff here
}
}
答案 2 :(得分:0)
的伪代码:
function(int n) {
for (i = n, i > 0, i--) {
\\prompt user
}
}
这应该为您提供如何操作的一般概念,即获取金额,并从中减去1直到达到0,每次获取数据并执行它需要做的事情。不要忘记确保n
永远不等于小于零(无效),并且n
是一个整数。否则,您希望函数只是提示用户输入金额,然后将该金额传递给实际使用它的函数。或者,创建一个迭代n
次的函数,并将一个函数作为参数传递给它多次(更难以正确地执行)。
答案 3 :(得分:0)
这样的事情对你有用。
System.out.println("Please enter the number of exam grades you want to enter");
int grade_count = s.nextInt();
int [] grades = new int[grade_count];
for(int i =0; i<grade_count; i++){
System.out.println("Enter grade for "+i+1 +"Exam");
grades[i] = s.nextInt();
}