编写一个程序,根据CSE 1341教学大纲计算当前成绩。程序应该提示用户输入他们的名字和姓氏。然后,它将这些名称作为字符串传递给CSE1341Grade类的第二个方法。第二种方法的名称为calcGrade。此方法将提示用户输入考试分数计数、测验分数计数和实验室分数计数。
然后,它将利用重复结构根据之前输入的计数提示考试成绩、测验成绩和实验室成绩。例如,如果用户输入的考试分数计数为2;然后程序将循环2次以输入两个考试分数;同样,测验和实验室成绩的统计也是如此。
假设你有100%的出勤记录,你将获得5%的出勤分数。使用教学大纲来确定每个类别的权重,例如考试、测验和实验室。因为你的出勤率很高,所以在总分上加5%。假设:所有的考试、实验和测验分数都是满分。样本运行:
java CSE1341Grade
名字:詹姆斯
姓氏:邦德
你有多少考试成绩?1.
你有多少个测验分数?2.
你有多少实验室成绩?2.
参加考试1:90分
进入测验1,分数:80
进入测验2,分数:80
进入实验1:90分
进入实验2:90分
总分:84.55
詹姆斯·邦德你的成绩是A: 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'; }
}
}
我的问题是如何创建一个循环,提示用户需要多少考试成绩。
伪代码:
function(int n) {
for (i = n, i > 0, i--) {
\\prompt user
}
}
这应该给你一个如何做的大致想法,即取这个量,从它中减去1,直到你达到0,每次都得到数据并做它需要做的事情。不要忘记确保n
永远不会小于零(无效),并且n
是一个整数。否则,最好让该函数简单地提示用户一个金额,然后将该金额传递给实际使用它的函数。或者,创建一个函数,该函数迭代n
次,并调用作为参数传递给它的函数多次(很难正确操作)。
我喜欢做一个循环,并继续要求用户输入,直到得到我想要的结果:
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;
}
}
}
这是一种相对“结构化”的方式,可以进行交互循环,并根据用户的需要反复运行程序。
--更新--
要提前完成大量已知的迭代,只需将其导入循环计数器:
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
}
}
我在评论中对你的代码做了一些修改。。
在这里你可以看到差异
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: ");
问题内容: 我很难弄清楚为什么while循环实际上不会循环。它运行一次并停止。 我正在尝试使其循环,以便用户能够多次转换单位。任何帮助都欢迎! 问题答案: 问题在于,当您呼叫时,它会占用该号码,但不会占用该号码之后的换行符。要解决此问题,只需在调用后放一行代码。 示例和完整说明: 假设您输入“ km”,按回车,“ 123”,按回车。从程序的角度来看,输入流为。 该代码获取值,并且使输入超出第一个。
我正在使用以下项目结构Project ---子项目1 ---子项目2 ---子项目3 |build.gradle |设置。格拉德尔 子项目2取决于子项目1 子项目3取决于子项目2 对于所有子项目,我需要有任务“构建”,这将是每个项目的自定义任务。但在“构建”之前必须执行一些初始化任务(对于所有子项目都相同)。问题是,这个初始化任务必须在构建期间执行一次,而且只能执行一次,无论我在构建什么-根项目或
问题内容: 我有一些关于jsfiddle的演示: HTML: JavaScript: 输入更改(甚至复选框)时,将调用日志过滤器。 仅当文本输入更改时,如何更改它并触发日志过滤器? 问题答案: 这是因为即使范围中的一个变量发生更改,Angular也会运行并更新所有范围属性。这称为“脏污检查”。 了解有关角度工作原理的更多信息:http : //www.sitepoint.com/understan
和 break 语句相比,continue 语句的作用则没有那么强大,它只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。 仍然以在操作跑步为例,原计划跑 10 圈,但当跑到 2 圈半的时候突然接到一个电话,此时停止了跑步,当挂断电话后,并没有继续跑剩下的半圈,而是直接从第 3 圈开始跑。 continue 语句的用法和 break 语句一样,只要 while 或 for 语句中的相应位
问题内容: Java:GC在JVM中执行的频率是多少?每一秒?每一分钟?还是随机的,取决于内存大小?我只想有个主意。 谢谢。 问题答案: 这取决于内存使用情况和存储对象的堆。看这个 http://javarevisited.blogspot.com/2011/04/garbage-collection-in- java.html 它不依赖于时间。它仅取决于新的内存要求和可用内存。
到目前为止,我们主要通过.await来使用 Futures,它将阻塞当前任务,直到特定的Future完成。但是,真正的异步应用程序,通常需要同时执行几个不同的操作。 Executing Multiple Futures at a Time 在本章中,我们将介绍几种,同时执行多个异步操作的方法: join!:等待全部 Futures 完成 select!:等待几种 Futures 之一,完成 Spa