need help with this javaFx project i have written code below that I need you to
ID: 3818028 • Letter: N
Question
need help with this javaFx project
i have written code below that I need you to fix/edit and make changes too. heres the changes i need.
1. need to have the action event say how many milliseconds it took to do the sort.
To do this:
my ultimate goal is to have the user select a radio button, for example insertion, and then select random/sorted/reverse and then set the array size to lets say 10 and the block size to say 10 and click go and then it sorts the array out and tells you how many miliseconds it took to sort that while sending the sorted array to the console.
please only make changes/edit/add/remove items to the code given to you
here is my code:
package project4practice;
import java.util.Random;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Project4practice extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane rootPane = new BorderPane();
GridPane gp = new GridPane();
rootPane.setCenter(gp);
gp.setVgap(5);
gp.setHgap(5);
rootPane.prefWidth(700);
rootPane.prefHeight(400);
gp.prefWidth(400);
gp.prefHeight(400);
Label sort = new Label(" Sorting Algorithm ");
RadioButton selection = new RadioButton("selection ");
RadioButton bubble = new RadioButton("bubble ");
RadioButton insertion = new RadioButton("insertion");
RadioButton quick = new RadioButton("Quick ");
Label inputType = new Label(" Input Type ");
RadioButton sorted = new RadioButton("Already Sorted ");
RadioButton reverse = new RadioButton("Reverse ");
RadioButton random = new RadioButton("Random ");
Label inputSize = new Label(" Input Size: ");
TextField inputText = new TextField();
inputText.setOnAction((ActionEvent inputText1) -> {
String inputText2 = inputText.getText();
double inputText3 = Double.parseDouble(inputText2);
System.out.println(inputText3);
});
Label blockSize = new Label(" Block Size: ");
TextField block = new TextField();
block.setOnAction((ActionEvent block1) -> {
String block2 = block.getText();
double block3 = Double.parseDouble(block2);
System.out.println(block3);
});
Button go = new Button("Go ");
ToggleGroup tg = new ToggleGroup();
selection.setToggleGroup(tg);
selection.setSelected(true);
bubble.setToggleGroup(tg);
insertion.setToggleGroup(tg);
quick.setToggleGroup(tg);
ToggleGroup tg1 = new ToggleGroup();
sorted.setToggleGroup(tg1);
sorted.setSelected(true);
reverse.setToggleGroup(tg1);
random.setToggleGroup(tg1);
gp.add(sort, 0, 0);
gp.add(selection, 0, 1);
gp.add(bubble, 0, 2);
gp.add(insertion, 0, 3);
gp.add(quick, 0, 4);
gp.add(inputType, 0, 7);
gp.add(sorted, 0, 8);
gp.add(reverse, 0, 9);
gp.add(random, 0, 10);
gp.add(inputSize, 0, 12);
gp.add(inputText, 1, 12);
gp.add(blockSize, 0, 13);
gp.add(block, 1, 13);
gp.add(go, 0, 16);
go.setOnAction((ActionEvent go1) -> {
//selection sorted
if (selection.isSelected() && sorted.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
// int chunk = Integer.parseInt(block.getText());//block size user input
// for(int i=0;i<block.length;i+=chunk){
// System.out.println(Arrays.toString(Arrays.copyOfRange(block, i, Math.min(block.length,i+chunk))));
// }
int[] array = getSorted(arraySize, true);
print(array);
selectionSort(array);
}//selction sorted reverse
else if (selection.isSelected() && reverse.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize,true);
array = getReverse(array);
print(array);
selectionSort(array);
} //selection sorted random
else if (selection.isSelected() && random.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getRandom(arraySize);
print(array);
selectionSort(array);
}//quick sort random
else if (quick.isSelected() && random.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getRandom(arraySize);
print(array);
quickSort(array, 0, array.length - 1);
}//quick sort sorted
else if (quick.isSelected() && sorted.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize, true);
print(array);
quickSort(array, 0, array.length - 1);
}//quick reverse sort
else if (quick.isSelected() && reverse.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize,true);
array = getReverse(array);
print(array);
quickSort(array, 0, array.length - 1);
}//insertion sorted sort
else if (insertion.isSelected() && sorted.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize, true);
print(array);
insertionSort(array);
}//insertion random sort
else if (insertion.isSelected() && random.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getRandom(arraySize);
print(array);
insertionSort(array);
}//insertion reverse
else if (insertion.isSelected() && reverse.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize,true);
array = getReverse(array);
print(array);
insertionSort(array);
}//bubble sort
else if (bubble.isSelected() && sorted.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize, true);
print(array);
bubbleSort(array);
}//bubble random sort
else if (bubble.isSelected() && random.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getRandom(arraySize);
print(array);
bubbleSort(array);
}//bubble reverse sort
else if (bubble.isSelected() && reverse.isSelected()) {
int arraySize = Integer.parseInt(inputText.getText());
int[] array = getSorted(arraySize,true);
array = getReverse(array);
print(array);
bubbleSort(array);
}
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Thread Sorted!");
alert.setHeaderText("Finished");
alert.setContentText("Sort completed in milliseconds ");
alert.showAndWait();
});
Scene scene = new Scene(rootPane, 500, 350);
primaryStage.setTitle("Project 4");
primaryStage.setScene(scene);
primaryStage.show();
}
//insertion sort
public static void insertionSort(int array[]) {
// int loopCount = 0;
int n = array.length;
for (int j = 1; j < n; j++) {
int key = array[j];
int i = j - 1;
while ((i > -1) && (array[i] > key)) {
array[i + 1] = array[i];
i--;
}
array[i + 1] = key;
}
//return loopCount;
}
//quick sort
int partition(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) {
i++;
}
while (arr[j] > pivot) {
j--;
}
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
return i;
}
//quick sort
public void quickSort(int arr[], int left, int right) {
int index = partition(arr, left, right);
if (left < index - 1) {
quickSort(arr, left, index - 1);
}
if (index < right) {
quickSort(arr, index, right);
}
//return index;
}
//bubble sort
public static void bubbleSort(int[] arr) {
int n = arr.length;
// int loopCount = 0;
int temp = 0;
for (int i = 0; i < n; i++) {
for (int j = 1; j < (n - i); j++) {
if (arr[j - 1] > arr[j]) {
temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
//return loopCount;
}
//selection sort
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int index = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[index]) {
index = j;
}
}
int smallerNumber = arr[index];
arr[index] = arr[i];
arr[i] = smallerNumber;
}
}
public static int[] getRandom(int size) {
Random rand = new Random();
int[] array = new int[size];
for (int i = 1; i <= size; i++) {
array[i - 1] = Math.abs(rand.nextInt()) % 100;
}
return array;
}
public static int[] getSorted(int size, boolean accending) {
int[] array = new int[size];
if (accending) {
for (int i = 1; i <= size; i++) {
array[i - 1] = i;
}
} else {
for (int i = size; i > 0; i--) {
array[size - i] = i;
}
}
return array;
}
public static int[] getReverse(int[] arrayw) {
int[] array = new int[arrayw.length];
for (int i = 0,j = array.length-1; i<array.length;i++,j--) {
array[j] = arrayw[i];
}
return array;
}
public static void print(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(" " + array[i]);
}
System.out.println();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
Explanation / Answer
open class Car {
private int yearModel;
private String make;
private int speed;
/The constructor acknowledge the auto's year model and make as contention
/The constuctor ought to relegate 0 to the speed field
open Car (int yrModel, String carMake)
{
yearModel = yrModel;
make = carMake;
speed = 0;
}
open void setyearModel(int yrModel)
{
yearModel = yrModel;
}
open void setMake (String carMake)
{
make = carMake;
}
open void setSpeed(int carSpeed)
{
speed = carSpeed;
}
open int getYearModel()
{
return yearModel;
}
open String getMake ()
{
return make;
}
open int getSpeed ()
{
return speed;
}
open void AccelerateSpeed (int speed)
{
speed = speed + 5;
}
open void BrakeSpeed (int speed)
{
speed = speed - 5;
}
}
]
[/import javax.swing.JOptionPane;
open class MyNewCar {
open static void main(String[] args) {
Auto myCar = new Car (2010, "Honda");
int speed = myCar.getSpeed();
speed = Integer.parseInt(JOptionPane.showInputDialog("Enter Your Speed" ));
for (int i = 0; i < 5; i++)
{
System.out.println("The" + " + myCar.getYearModel() + " + myCar.getMake() +
" + "is going " );
myCar.AccelerateSpeed(speed);
System.out.println("Your Speed now is: " + speed);
}
speed = Integer.parseInt(JOptionPane.showInputDialog("Enter Your Speed" ));
for (int i = 0; i < 5; i++)
{
System.out.println("The" + " + myCar.getYearModel() + " + myCar.getMake() +
" + "is going " );
myCar.BrakeSpeed(speed);
System.out.println("Your Speed now is: " + speed);
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.