JavaK Jou gratis hulpbron vir Java Kennis! ENGLISH  
     
  Tuisblad Kontak Artikels Projekte Vrae en Antwoorde Skakels  
     
 

Basiese invoer, afvoer en sortering.
Die projek is tipies van 'n eenvoudige aanvangsprojek en maak gebruik van sleutelbord invoere (BufferedReader), 'n lus of twee (for loops) asook 'n Array of wat. Die basiese idee is om 'n paar name in te lees en hulle dan in 'n volgorde te sorteer en weer op die skerm te vertoon. Die program maak gebruik van 'n baie eenvoudige spyskaart (menu) om opsies aan die gebruiker te gee.

Tipes en objekte gebruik in die projek:
Die projek maak gebruik van die volgende Java tipes, objekte en funksies:
  • Array
  • BufferedReader
  • for loop
  • Integer.parseInt()
  • Parameters to methods
  • Sortering (sorting)
  • String
  • Switch case
  • System.out
  • try-catch
  • while loop


Klasse in die projek:
Die projek maak gebruik van verskeie klasse. Hier is 'n kort lysie van elke klas en wat in elkeen gedoen word.
Hoof Die runner klas vir die hele program. Dit skep 'n nuwe objek van die tipe Sorteer en roep dan die begin() metode.
Sorteer Die vleis van die program is hier. Alle invoere en afvoere word vanaf die klas beheer. Dit skep 'n nuwe objek van die tipe SpysKaart wat verantwoordelik is vir die vertoon van die spyskaart (menu) op die skerm.
Spyskaart Spyskaart teken die spyskaart op die skerm. Dit is 'n voorbeeld van 'n nuts-objek wat 'n basiese taak verrig en sodoende die hoof objek (Sorteer) eenvoudiger en makliker maak om te lees. Dis 'n goeie idee om jou projekte ook in kleiner dele op te breek om hulle makliker te maak om te ontfout.


Bronkode vir Hoof.java
/**
 * Runner for the Sorteer project.
 */
public class Hoof
{
    public static void main (String args[])
    {
        Sorteer sorteerProgram = new Sorteer ();
        sorteerProgram.begin ();
    }
}




Bronkode vir Spyskaart.java
/**
 * Util class.
 * Displays the main menu on the default display device.
 */
public class Spyskaart
{
    /**
     * Displays the menu on the screen. First clears the screen.
     */
    public void vertoonSpyskaart ()
    {
        clearScreen ();
        System.out.println ("Spyskaart:");
        System.out.println ("==========");
        System.out.println ("");
        System.out.println ("1. Voer name in.");
        System.out.println ("2. Vertoon name.");
        System.out.println ("3. Sorteer name.");
        System.out.println ("4. Verlaat program.");
        System.out.println ("");
        System.out.print ("Jou keuse ? : ");
    }


    /**
     * Clears the screen by writing 25 blank lines to the screen.
     */
    private void clearScreen ()
    {
        for (int i = 0 ; i < 25 ; i++)
        {
            System.out.println ("");
        }
    }
}

Bronkode vir Sorteer.java
import java.io.*;

public class Sorteer
{
    private Spyskaart spyskaart;
    private BufferedReader br;
    private String name[];

    /**
     * Constructor.
     * Init used objects like spyskaart and br
     */
    public Sorteer ()
    {
        name = new String [5];
        spyskaart = new Spyskaart ();
        br = new BufferedReader (new InputStreamReader (System.in));
    }


    /**
     * Main loop for program.
     * Displays the menu, gets input and calls the process methods.
     * Loops until the user enters 4 as a choice.
     */
    public void begin ()
    {
        int keuse = 0;

        while (keuse != 4)
        {
            spyskaart.vertoonSpyskaart ();
            keuse = kryKeuse ();
            verwerkKeuse (keuse);
        }

        verlaatProgram ();
    }


    /**
     * Reads the choice from the keyboard.
     * Performs error trapping if an invalid choice is entered.
     * Returns an integer value to the calling method.
     */
    private int kryKeuse ()
    {
        int inKeuse = 0;
        try
        {
            String inputstr = br.readLine ();
            inKeuse = Integer.parseInt (inputstr);
        }
        catch (Exception e)
        {
            return -1;
        }
        return inKeuse;
    }


    /**
     * Reads a string from the keyboard.
     */
    private String kryNaam ()
    {
        String input = "";
        try
        {
            input = br.readLine ();
        }
        catch (Exception e)
        {
            return "";
        }
        return input;
    }


    /**
     * Exits the programe.
     */
    private void verlaatProgram ()
    {
        System.out.println ("\n\nTotsiens!\n");
    }


    /**
     * Processes the choice made.
     */
    private void verwerkKeuse (int gekies)
    {
        geeSpasie ();
        switch (gekies)
        {
            case 1:
                voerNameIn ();
                break;
            case 2:
                vertoonName ();
                break;
            case 3:
                sorteerName ();
                break;
            default:
                break;
        }
    }


    /**
     * Creates a gap between the menu and any output.
     */
    private void geeSpasie ()
    {
        System.out.println ("\n");
    }


    /**
     * Inputs the names.
     */
    private void voerNameIn ()
    {
        for (int i = 0 ; i < 5 ; i++)
        {
            System.out.print ("Gee asseblief naam no " + (i+1) + ": ");
            name [i] = kryNaam ();
        }
    }


    /**
     * Displays the names on the screen.
     * Tests if the names have been entered yet.
     */
    private void vertoonName ()
    {
        if (name [0] != null)
        {
            for (int i = 0 ; i < 5 ; i++)
            {
                System.out.println (name [i]);
            }
        }
        else
        {
            System.out.println ("Oeps!! Sleutel eers 'n paar name in asseblief...");
        }
        wag ();
    }


    /**
     * Sorts the names.
     * Quick and dirty little sort for small arrays.
     */
    private void sorteerName ()
    {
        if (name [0] != null)
        {
            for (int i = 0 ; i < 5 ; i++)
            {
                for (int j = i ; j < 5 ; j++)
                {
                    if (name [i].compareToIgnoreCase (name [j]) > 0)
                    {
                        String tmp = name [j];
                        name [j] = name [i];
                        name [i] = tmp;
                    }
                }
            }
            System.out.println ("Klaar.");
        }
        else
        {
            System.out.println ("Oeps!! Sleutel eers 'n paar name in asseblief...");
        }
        wag ();
    }


    /**
     * Waits for any input from the user.
     */
    private void wag ()
    {
        System.out.println ("\nDruk ENTER om aan te gaan.");
        try
        {
            br.readLine ();
        }
        catch (Exception e)
        {
        }
    }
}




Nie genoeg nie ? Laat ons weet indien jy meer oor die spesifieke projek wil weet.


Die Skrywer
Hierdie artikel is geskryf deur Ewald Horn en word gratis gehuisves deur JavaK. Besoek gerus vir www.javak.co.za vir meer artikels deur Ewald Horn. Die skrywer se tuisblad is te vinde by www.nofuss.co.za.


JavaK is 'n gratis webwerf wat Java studente voorsien van voorbeelde, verduidelikings asook bronkode vir gebruik in hulle huiswerk en skooltake. Die webwerf word geborg deur NoFuss Solutions, 'n Java opleidings en ontwikkelings-diensverskaffer in die Boland area.