Программа для поиска максимального и минимального элементов матрицы
Автор: lisolinda • Сентябрь 29, 2023 • Лабораторная работа • 2,073 Слов (9 Страниц) • 120 Просмотры
Написать программу для поиска максимального и минимального элементов матрицы. Исходная матрица загружается из файла. Результат записывается в файл.
Main
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 690, 482));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Controller
package sample;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.URL;
import java.util.Arrays;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
public class Controller extends Matrix{
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private Button showFromFile;
@FXML
private Button inputInFileButton;
@FXML
private Button ButtonSearch;
@FXML
private TextField row1;
@FXML
private TextField col1;
@FXML
private Button inputButton;
@FXML
private TextArea textArea;
private int firstRow, firstCol;
Matrix matrix1;
@FXML
void initialize() {
inputButton.setOnAction(event -> {
firstRow = Integer.parseInt(row1.getText());
firstCol = Integer.parseInt(col1.getText());
matrix1 = new Matrix(firstRow, firstCol);
printMatrix(matrix1);
});
ButtonSearch.setOnAction(event -> {
Search(matrix1);
});
inputInFileButton.setOnAction(event -> {
try {
out(matrix1, "temp.txt");
} catch (Exception e) {
e.printStackTrace();
}
});
showFromFile.setOnAction(event -> {
try {
in("temp.txt");
} catch (Exception e) {
e.printStackTrace();
}
});
}
void printMatrix(Matrix k){
for (int r = 0; r < k.row; r++) {
textArea.appendText(Arrays.toString(k.body[r]));
textArea.appendText("\n");
}
for (int i = 0; i < k.clm; i++) {
textArea.appendText("-------");
}
textArea.appendText("\n");
}
void Search(Matrix l) {
int imin=0, imax=0, jmin=0, jmax=0;
for (int i=0;i<l.row;i++){
for (int j=0;j<l.clm;j++){
if (l.body[i][j]>l.body[imax][jmax])
{imax=i;
jmax=j;
}
if (l.body[i][j]<l.body[imin][jmin])
{imin=i;
jmin=j;
}
}}
textArea.appendText(Arrays.toString(new int[]{l.body[imax][imin]}));
textArea.appendText(Arrays.toString(new int[]{l.body[jmax][jmin]}));
}
void out(Object k, String path) throws Exception{
FileOutputStream fileOutputStream = new FileOutputStream(path);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(k);
objectOutputStream.close();
}
Object in(String path) throws Exception{
FileInputStream fileInputStream = new FileInputStream(path);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
Matrix newMatrix = (Matrix) objectInputStream.readObject();
objectInputStream.close();
Search(newMatrix);
return newMatrix;
}
}
Matrix
package sample;
import java.io.Serializable;
import java.util.concurrent.ThreadLocalRandom;
public class Matrix implements Serializable {
...