Program: przedstawiający arkusz kalkulacyjny o wymiarach 4×4 i dokonujący na nim działań.
W zależności od wybranego sposobu:
- wg spinnerów (pól),
- całości.
Możliwości:
- losowanie wartości,
- sumowanie pól,
- wyczyszczenie,
- sortowanie wg kolumn, wierszy lub całościowe,
- możliwość zapisu danych po wcześniejszym wybraniu pliku tekstowego (aktualna ścieżka).
Kompilator: Eclipse
Film:
Kod programu:
//Zmienne globalne
String filename;
//Load
int m,n;
String set;
int buff;
n=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
m=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
try{ FileInputStream Reader=new FileInputStream(filename);
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
{
buff=Reader.read();
set=String.valueOf(buff);
jTable1.setValueAt(String.valueOf(set), i, j);
}
Reader.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
//Czyść
int m,n;
n=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
m=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
jTable1.setValueAt(String.valueOf(""), i, j);
//Save
int m,n;
int num;
n=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
m=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
try{ FileOutputStream Writer=new FileOutputStream(filename);
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
{
num=Integer.parseInt(String.valueOf(jTable1.getValueAt(i,j)));
Writer.write(num);
}
Writer.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
//Czyść
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
jTable1.setValueAt(String.valueOf(" "), i, j);
//Losuj
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
jTable1.setValueAt(String.valueOf(Math.round(Math.random()*200)), i, j);
//Sortowanie kolumnami
int n=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
int m=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
float temp;
float liczba1,liczba2;
int z=0;
do
{
z=0;
for(int i=0;i<m-1;i++) {
for(int j=0;j<n;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i+1, j)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i+1, j);
z++;
}
}
}
}while(z!=0);
//Sortowanie kolumnami
float temp;
float liczba1,liczba2;
int z=0;
do
{
z=0;
for(int i=0;i<3;i++) {
for(int j=0;j<4;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i+1, j)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i+1, j);
z++;
}
}
}
}while(z!=0);
//Sortowanie
int n=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
int m=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
float temp;
float liczba1,liczba2;
int z=0;
int i,j;
do
{
z=0;
for(i=0;i<m;i++) {
for(j=0;j<n-1;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j+1)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i, j+1);
z++;
}
}
if(i<n-2) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i+1, 0)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i+1, 0);
z++;
}
}
}
}while(z!=0);
//Sortowanie wierszami
float temp;
float liczba1,liczba2;
int z=0;
for(int i=0;i<4;i++) {
do
{
z=0;
for(int j=0;j<3;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j+1)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i, j+1);
z++;
}
}
}while(z!=0);
}
//Losowanie
int m,n;
m=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
n=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
jTable1.setValueAt(String.valueOf(Math.round(Math.random()*200)), i, j);
//Sortowanie wierszami
int n=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
int m=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
float temp;
float liczba1,liczba2;
int z=0;
for(int i=0;i<m;i++) {
do
{
z=0;
for(int j=0;j<n-1;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j+1)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i, j+1);
z++;
}
}
}while(z!=0);
}
//Sortowanie
float temp;
float liczba1,liczba2;
int z=0;
int i,j;
do
{
z=0;
for(i=0;i<4;i++) {
for(j=0;j<3;j++) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j+1)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i, j+1);
z++;
}
}
if(i<3) {
liczba1 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
liczba2 =Float.parseFloat(String.valueOf(jTable1.getValueAt(i+1, 0)));
if(liczba1>liczba2) {
temp=liczba1;
liczba1=liczba2;
liczba2=temp;
jTable1.setValueAt(String.valueOf(liczba1), i, j);
jTable1.setValueAt(String.valueOf(liczba2), i+1, 0);
z++;
}
}
}
}while(z!=0);
//Aktualna ścieżka
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f=chooser.getSelectedFile();
filename=f.getAbsolutePath();
jTextField1.setText(filename);
File plik = new File(filename);
try {
plik.createNewFile();
} catch (IOException ex) {
Logger.getLogger(Table_Files_DemoView.class.getName()).log(Level.SEVERE, null, ex);
}
//Czyść sumę
jTextField2.setText(" ");
//Suma
float suma=0;
String buff;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
suma=suma+Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
buff=String.valueOf(suma);
jTextField2.setText(buff);
//Suma
float suma=0;
int m,n;
String buff;
m=Integer.parseInt(String.valueOf(jSpinner1.getValue()));
n=Integer.parseInt(String.valueOf(jSpinner2.getValue()));
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
suma=suma+Float.parseFloat(String.valueOf(jTable1.getValueAt(i, j)));
buff=String.valueOf(suma);
jTextField2.setText(buff);