Reputation: 13
I looked for answers on this website that have to do with finding the highest/lowest data values in a program, but all I found was code that had to do with arrays. There are no arrays in my code, so I would assume that the technique for finding out a highest value or lowest value would be executed differently.
If you look at my code, you can see on the bottom of the output that there are two lines that say:
The highest performance score was: 0
The lowest performance score was: 0
I simply do not know how to use code in order to output the highest performance score or the lowest performance score. Instead of those 0's, I want the two performance scores from the two computers being analyzed compared and shown. So again, instead of the 0's in the output, I want it to be:
The highest performance score was: 15400.000000000002
The lowest performance score was: 13000.0
So how do I execute this? All help is appreciated.
Output:
How many computers are being processed? 2
Computer Hardware Graphics Quality Recommendation Tool
Enter the clock speed (in Megahertz) of your graphics card: 1000
Enter the clock speed (in Megahertz) of your processor: 2000
Enter the number of cores that your processor has: 4
Monitor resolution menu:
1. 1280 x 720
2. 1920 x 1080
3. 2560 x 1440
4. 3840 x 2160
Please select one of the choices above: 1
GPU Clock Speed: 1000 MHz
CPU Clock Speed: 2000 MHz
Number of cores: 4
Monitor Resolution: 1280 x 720
Performance Score: 13000.0
Recommended Graphics Quality: Medium
The highest performance score was: 0
The lowest performance score was: 0
Computer Hardware Graphics Quality Recommendation Tool
Enter the clock speed (in Megahertz) of your graphics card: 2000
Enter the clock speed (in Megahertz) of your processor: 3000
Enter the number of cores that your processor has: 6
Monitor resolution menu:
1. 1280 x 720
2. 1920 x 1080
3. 2560 x 1440
4. 3840 x 2160
Please select one of the choices above: 3
GPU Clock Speed: 2000 MHz
CPU Clock Speed: 3000 MHz
Number of cores: 6
Monitor Resolution: 2560 x 1440
Performance Score: 15400.000000000002
Recommended Graphics Quality: High
The highest performance score was: 0
The lowest performance score was: 0
My code:
/*
This program will help the user identify and further understand the capabilities of their computer's hardware.
When the program is run, the user will be asked to input facts and information about their computer's hardware.
Once the information about the user's computer hardware is processed by the program,
the user will see results that explain the capabilities and potential of their computer.
In this new edition of the program, the user will have the option to analyze multiple computers, rather than just one.
They will also be able to compare their computer's performance score at the end.
*/
import java.util.Scanner; //This allows the program to utilize the Scanner class to get the user's input.
public class Project2_Ben_Mayo
{
public static void main(String[] args)
{
String title = "Computer Hardware Graphics Quality Recommendation Tool"; //Title string
int numOfComputers = 0; //To hold the number of computers being tested
int GPUspeed = 0; //To hold the user's GPU clock speed (in Megahurtz)
int CPUspeed = 0; //To hold the user's CPU clock speed (in Megahurtz)
int numCores = 0; //To hold the number of cores in the user's CPU
int menuChoice = 0; //To hold the user's menu choice
String monitorRes = ""; //To hold the user's monitor resoltion
String quality = ""; //To hold the quality of performance while gaming
double multiplier = 0.0; //To hold the multiplier value
double performanceScore = 0.0; //To hold the performance score value
int highestScore = 0;
int lowestScore = 0;
Scanner sc = new Scanner(System.in); //This is the scanner object
System.out.print("\n" + "How many computers are being processed? "); //ask the user to enter the number of computers they would like to test
numOfComputers = sc.nextInt();
if (numOfComputers <= 0) { //If the number of computers is less than or equal to 0, this notifies the user that the number of computers must be greater than or equal to 1
System.out.print("The number of computers being processed must be at least one.");
}
//Use for loop to ask the user to enter the information for each computer
for(int computerNumber = 0; computerNumber < numOfComputers; computerNumber++) { //Begin for loop
System.out.println("\n" + title); //Print the title
System.out.print("\n" + "Enter the clock speed (in Megahertz) of your graphics card: "); //This is an indicator of how fast the user's graphics card is
GPUspeed = sc.nextInt();
while(GPUspeed < 800 || GPUspeed > 2000) { //While the user provides an invalid input, display an error message and have them re-enter their input
System.out.print("Invalid input. Plase enter a valid GPU speed: "); //display an error message if the user gave invalid input
GPUspeed = sc.nextInt(); //re-read in the user's input for the GPU speed
}
System.out.print("Enter the clock speed (in Megahertz) of your processor: "); //This is an indicator of how fast the user's processor is
CPUspeed = sc.nextInt();
while(CPUspeed < 1000 || CPUspeed > 5500) { //While the user provides an invalid input, display an error message and have them re-enter their input
System.out.print("Invalid input. Plase enter a valid CPU speed: "); //display an error message if the user gave invalid input
CPUspeed = sc.nextInt(); //re-read in the user's input for the CPU speed
}
System.out.print("Enter the number of cores that your processor has: "); //This is an indicator of how many cores the user's CPU contains
numCores = sc.nextInt();
while(numCores < 1 || numCores > 16) { //While the user provides an invalid input, display an error message and have them re-enter their input
System.out.print("Invalid input. Plase enter a valid number of cores: "); //display an error message if the user gave invalid input
numCores = sc.nextInt(); //re-read in the user's input for the number of cores
}
//Monitor resolution menu
System.out.println("Monitor resolution menu:");
System.out.println("1. 1280 x 720");
System.out.println("2. 1920 x 1080");
System.out.println("3. 2560 x 1440");
System.out.println("4. 3840 x 2160");
System.out.print("Please select one of the choices above: "); //Ask the user to choose the resolution of their monitor
menuChoice = sc.nextInt();
while(menuChoice < 1 || menuChoice > 4) { //While the user provides an invalid input, display an error message and have them re-enter their input
System.out.print("Invalid selection. Plase pick a valid option from the menu: "); //display an error message if the user gave invalid input
menuChoice = sc.nextInt(); //re-read in the user's input for the menu selection
}
//Assign the menu options to their values to enable the menu to funtion correctly
if (menuChoice == 1) { //If the user selects menu option number 1, "monitorRes" = "1280 x 720"
monitorRes = "1280 x 720";
}
else if (menuChoice == 2) { //If the user selects menu option number 2, "monitorRes" = "1920 x 1080"
monitorRes = "1920 x 1080";
}
else if (menuChoice == 3) { //If the user selects menu option number 3, "monitorRes" = "2560 x 1440"
monitorRes = "2560 x 1440";
}
else if (menuChoice == 4) { //If the user selects menu option number 4, "monitorRes" = "3840 x 2160"
monitorRes = "3840 x 2160";
}
//This segment will determine what the mulitplier object will be
if (menuChoice == 1) {
multiplier = 1;
}
else if (menuChoice == 2) {
multiplier = .75;
}
else if (menuChoice == 3) {
multiplier = .55;
}
else if (menuChoice == 4) {
multiplier = .35;
}
//Performance Score multiplier
performanceScore = ((5 * GPUspeed) + (numCores * CPUspeed)) * multiplier;
//Recommended graphics quality that the user's hardware can support.
if (performanceScore >= (17000)) { //If the performance score is greater than or equal to 17,000, the quality of the performance is ultra
quality = "Ultra";
}
else if (performanceScore >= (15000)) { //If the performance score is greater than or equal to 15,000, the quality of the performance is high
quality = "High";
}
else if (performanceScore >= (13000)) { //If the performance score is greater than or equal to 13,000, the quality of the performance is medium
quality = "Medium";
}
else if (performanceScore >= (11000)) { //If the performance score is greater than or equal to 11,000, the quality of the performance is low
quality = "Low";
}
else if (performanceScore < (11000)) { //If the performance score is less than 11,000, the quality of the performance is unplayable
quality = "Unable to Play";
}
//Print the results
System.out.println("\nGPU Clock Speed: " + GPUspeed + " MHz"); //User's GPU speed (in Megahurtz)
System.out.println("CPU Clock Speed: " + CPUspeed + " MHz"); //User's CPU speed (in Megahurtz)
System.out.println("Number of cores: " + numCores); //Number of cores that the user's CPU contains
System.out.println("Monitor Resolution: " + monitorRes); //User's moniter resolution
System.out.println("Performance Score: " + performanceScore); //The user's computer performance score
System.out.println("Recommended Graphics Quality: " + quality); //Estimated quality of graphics during gameplay
System.out.println("\n" + "The highest performance score was: " + highestScore);
System.out.println("The lowest performance score was: " + lowestScore);
} //End for loop
} //End class
} //End main
Upvotes: 0
Views: 83
Reputation: 26
In case you don't want to create a list and store there the performanceScore values, then you can add logic inside the for loop before printing the results in order to store in the variables highestScore and lowestScore the highest and lowest performanceScores you have iterated so far:
if(performanceScore > highestScore) {
highestScore = performanceScore;
}
if(lowestScore == 0 || performanceScore < lowestScore) {
lowestScore = performanceScore;
}
Upvotes: 1