Arkusz kalkulacyjny

Arkusz kalkulacyjny

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);