Code has to be separated into two files one with the main and the other the clas
ID: 3565832 • Letter: C
Question
Code has to be separated into two files one with the main and the other the class
I need the solution for Tony Gaddis, Starting Out With Java, 4th Edition Chapter 8, Programming Challenge 6 (Problem 6 on pages 535-536). This problem was not included in the solutions for this book. Here is the problem, word for word: Write a program that lets the user enter four quarterly sales figures for six divisions of a company. The figures should be stored in a two-dimensional array. Once the figures are entered, the program should display the following data for each quarter: - A list of the sales figures by division - Each division's increase or decrease from the previous quarter (this will not be displayed for the first quarter) - The total sales for the quarter - The company's increase or decrease from the previous quarter (this will not be displayed for the first quarter) - The average sales for all divisions that quarter - The division with the highest sales for that quarter. Input validation: Do not accept negative numbers for sales figures.
==================================================================================
here is the code all into 1 file with all methods in it , but like i said before has to be 2 files with class that will have most of the methods been checking books and other places online and i cant find a solution to work with 2 dimensional arrays passing it back and forth between main and class pls help, made division smaller for testting purposes
==================================================================================
import java.util.*; // Importing the Scanner class for input & output
import java.text.DecimalFormat; // Importing the DecimalFormat class for dollar amounts
import java.text.NumberFormat;
import javax.swing.JOptionPane; // Importing the JOptionPane class for input & output
public class qS{
public static void main(String args[]){
final int DIVISIONS = 2; // six divisions in the company
final int QUARTERS = 4; // Four quarters
double sum[]=new double[4]; // Array for quarter sales
double sales[][] = new double[DIVISIONS][QUARTERS]; // Create an array to hold the sales for each division, for each quarter.
NumberFormat formatter = new DecimalFormat("###,###,###,##0.00"); // Create a DecimalFormat object.
// printSales(sales,formatter);
getSales(sales);
printSales(sales, formatter);
quarterlyIncrease(sales,formatter);
quarterSales(sales,sum,formatter);
quarterSumIncrease(sum,formatter);
quarterAverage(sum,formatter);
highestDivision(sales,formatter);
}
// Nested loops to fill the array with quarterly sales figures for each division.
public static void getSales(double sales[][]){
Scanner keyboard = new Scanner(System.in); // Create a Scanner object for keyboard input.
for(int div=0; div<sales.length ; div++){
for(int qtr=0; qtr <sales[div].length ; qtr++){
System.out.print("Enter sales for quarter " + (qtr+1) + " for division " + (div+1) + ": ");
sales[div][qtr] = keyboard.nextDouble();
double temp = sales[div][qtr];
while(!checkIfValid(temp)){
JOptionPane.showMessageDialog(null, "Error value can't be smaller than 0!");
System.out.print("Enter sales for quarter " + (qtr+1) + " for division " + (div+1) + ": ");
sales[div][qtr] = keyboard.nextDouble();
temp = sales[div][qtr];
}
}
}
}
public static void printSales(double sales[][],NumberFormat f){
System.out.println(" SALES AMOUNTS BY DIVISION =========================");
for(int div=0;div<sales.length;div++)
{System.out.println("Division "+(div+1));
for(int qtr=0;qtr<sales[div].length;qtr++)
System.out.println("Quarter "+(qtr+1)+": $"+f.format(sales[div][qtr]));
}
}
public static void quarterlyIncrease(double sales[][],NumberFormat f){
System.out.println(" QUARTERLY INCREASE/DECREASE BY DIVISION ==============================");
for(int div=0;div<sales.length;div++)
{System.out.println("Division "+(div+1));
for(int qtr=1;qtr<sales[div].length;qtr++)
System.out.println("Quarter "+(qtr+1)+"'s increase: $"+f.format(sales[div][qtr]-sales[div][qtr-1]));
}
}
public static void quarterSales(double sales[][],double sum[],NumberFormat f){
System.out.println(" SALES AMOUNTS BY QUARTER ========================");
for(int qtr=0;qtr<4;qtr++){
for(int div=0;div<sales.length;div++)
sum[qtr]+=sales[div][qtr];
}
for(int qtr = 0;qtr<4; qtr++)
System.out.println("Quarter "+(qtr+1)+": $"+f.format(sum[qtr]));
}
public static void quarterSumIncrease(double sum[],NumberFormat f){
System.out.println(" QUARTERLY INCREASE/DECREASE FOR THE COMPANY ====================================");
for(int qtr=1;qtr<4;qtr++)
System.out.println("Quarter "+(qtr+1)+": $"+f.format(sum[qtr]-sum[qtr-1]));
}
public static void quarterAverage(double sum[],NumberFormat f){
System.out.println(" AVERAGE SALES PER QUARTER =============================");
for(int qtr=0;qtr<4;qtr++)
System.out.println("Quarter "+(qtr+1)+": $"+f.format(sum[qtr]/2));
}
public static void highestDivision(double sales[][],NumberFormat f){
System.out.println(" DIVISION WITH THE HIGHEST SALES PER QUARTER ==================================");
int max=0;
double maxvalue;
for(int qtr=0;qtr<4;qtr++){
maxvalue=-1;
for(int div=0;div<2;div++)
if(sales[div][qtr]>maxvalue){
max=div;
maxvalue=sales[div][qtr];
}
System.out.println("Highest division for quarter "+(qtr+1)+" is division " + (max+1)+ " with: $" + f.format(maxvalue));
}
}
public static boolean checkIfValid(double num){
boolean status;
if (num >= 0.0)
status = true;
else
status = false;
return status;
}
}
Explanation / Answer
import java.util.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Gaddis_8_6
{
public static void main(String args[])
{double sum[ ]=new double[4];
double sales[][] = new double[6][4];
NumberFormat formatter = new DecimalFormat("#,000.00");
getSales(sales);
printSales(sales,formatter);
quarterlyIncrease(sales,formatter);
quarterSales(sales,sum,formatter);
quarterSumIncrease(sum,formatter);
quarterAverage(sum,formatter);
highestDivision(sales);
}
public static void highestDivision(double sales[][])
{System.out.println(" DIVISION WITH THE HIGHEST SALES PER QUARTER ==================================");
int i,j,max=0;
double maxvalue;
for(i=0;i<4;i++)
{maxvalue=-1;
for(j=0;j<6;j++)
if(sales[j][i]>maxvalue)
{max=j;
maxvalue=sales[j][i];
}
System.out.println("Highest division for quarter "+(i+1)+" is division " + (max+1));
}
}
public static void quarterAverage(double sum[],NumberFormat f)
{int j;
System.out.println(" AVERAGE SALES PER QUARTER =============================");
for(j=0;j<4;j++)
System.out.println("Quarter "+(j+1)+": $"+f.format(sum[j]/6.));
}
public static void quarterSumIncrease(double sum[],NumberFormat f)
{int j;
System.out.println(" QUARTERLY INCREASE/DECREASE FOR THE COMPANY ====================================");
for(j=1;j<4;j++)
System.out.println("Quarter "+(j+1)+": $"+f.format(sum[j]-sum[j-1]));
}
public static void quarterSales(double sales[][],double sum[],NumberFormat f)
{System.out.println(" SALES AMOUNTS BY QUARTER ========================");
int i,j;
for(i=0;i<4;i++)
{sum[i]=0;
for(j=0;j<6;j++)
sum[i]+=sales[j][i];
}
for(j=0;j<4;j++)
System.out.println("Quarter "+(j+1)+": $"+f.format(sum[j]));
}
public static void quarterlyIncrease(double sales[][],NumberFormat f)
{int i,j;
System.out.println(" QUARTERLY INCREASE/DECREASE BY DIVISION ==============================");
for(i=0;i<6;i++)
{System.out.println("Division "+(i+1));
for(j=1;j<4;j++)
System.out.println("Quarter "+(j+1)+"'s increase: $"+f.format(sales[i][j]-sales[i][j-1]));
}
}
public static void printSales(double sales[][],NumberFormat f)
{int i,j;
System.out.println(" SALES AMOUNTS BY DIVISION =========================");
for(i=0;i<6;i++)
{System.out.println("Division "+(i+1));
for(j=0;j<4;j++)
System.out.println("Quarter "+(j+1)+": $"+f.format(sales[i][j]));
}
}
public static void getSales(double sales[][])
{
Scanner input = new Scanner(System.in);
int i,j;
for(i=0;i<6;i++)
for(j=0;j<4;j++)
{System.out.print("Enter sales for quarter " + (j+1) + " for division " + (i+1) + ": ");
sales[i][j] = input.nextDouble();
while(sales[i][j]<0)
{System.out.println("Invalid entry. must be non negative");
System.out.print("Enter sales for quarter " + (j+1) + " for division " + (i+1) + ": ");
sales[i][j] = input.nextDouble();
}
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.