liapinio Δημοσ. 27 Δεκεμβρίου 2008 Δημοσ. 27 Δεκεμβρίου 2008 Καλησπερα παιδια και καλες γιορτες!θελω λιγη βοηθεια σχετικα με μια ασκηση σε java.. Να γίνει μία τάξη Book η οποία θα χρησιμοποιηθεί για τα βιβλία μιας βιβλιο- θήκης. Για κάθε βιβλίο να δηλώσετε τις μεταβλητές title (String) για τον τίτλο του βιβλίου, author (επίσης String) για τον συγγραφέα και firstEdition (int) που είναι το έτος της πρώτης έκδοσης. Όλες οι μεταβλητές θα πρέπει να είναι ιδιωτικές (private). Να δώσετε μεθόδους get και set για όλες τις ιδιότητες που αναφέρθηκαν πα- ραπάνω. Στη συνέχεια δημιουργείστε ένα πρόγραμμα το οποίο θα δημιουργήσει ένα πί- νακα έξι βιβλίων. Τέλος η main θα πρέπει να ταξινομήσει τον πίνακα αυτών των βι- βλίων χρησιμοποιώντας οποιαδήποτε μέθοδο ταξινόμησης θέλετε, με αύξουσα σειρά ως προς το έτος πρώτης έκδοσης. Αφού η main κάνει τη ταξινόμηση θα πρέπει να εμφανίσει τα τρία βιβλία με ένα String του στυλ «Βιβλίο: <όνομα-βιβλίου>, Συγγρα- φέας: <όνομα-συγγραφέα>, Έτος πρώτης έκδοσης: <έτος-πρώτης-έκδοσης>». Εχω κανει τα εξης: Την κλαση ΒοοK package book; public class Book { private String title; private String author; private int firstEdition; public Book(){ title=""; author=""; firstEdition=0; } public Book(String nTitle,String nAuthor,int nFirstEdition){ title=nTitle; author=nAuthor; firstEdition=nFirstEdition; } public void SetBook(String nTitle,String nAuthor,int nFirstEdition){ title=nTitle; author=nAuthor; firstEdition=nFirstEdition; } public String GetTitle(){ return title; } public String GetAuthor(){ return author; } public int GetFirstEdition(){ return firstEdition; } public void ShowBook(){ System.out.print("Biblio:"+title); System.out.print(", Siggrafeas:"+author); System.out.print(", Etos 1hs ekdoshs:"+firstEdition); System.out.println(); } } Την TestBook package book; public class TestBook { public static void main( String args[] ){ Book[] a = new Book[6];{ a[0] = new Book("Java ","Tasos ",2007); a[1] = new Book("Diktia","kostas ",2003); } } και δεν μπορω να κανω τον αλγοριθμο ταξινομησης... Εχω βρει τον bubbleSort package bubleSort; public class BubbleSort { // sort the elements of an array with bubble sort public static void bubbleSort(int b[] ) { for ( int pass = 1; pass < b.length; pass++ ) // passes for ( int i = 0; i < b.length - pass; i++ ) // one pass if ( b[ i ] > b[ i + 1 ] ) // one comparison swap( b, i, i + 1 ); // one swap } // swap two elements of an array public static void swap( int c[], int first, int second ) { int hold; // temporary holding area for swap hold = c[ first ]; c[ first ] = c[ second ]; c[ second ] = hold; } public static void main( String args[] ) { int a[] = { 102, 65, 14, 28, 10, 32}; System.out.println("Data items in original order"); for ( int i = 0; i < a.length; i++ ) System.out.print(" " + a[ i ]); bubbleSort( a ); System.out.println("\n\nData items in ascending order"); for ( int i = 0; i < a.length; i++ ) System.out.print(" " + a[ i ]); System.out.println("\nHave a nice day"); } } αλλα δεν μπορω να τον εφαρμοσω πανω στην κλαση book καμια βοηθεια... *Δεν ξερω γιατι μου βγαζει με εντονα γραμματα τις 2 σειρες... **Την ταξινομηση την σκοτωσα λιγο,αν μπορει καποιος ας το αλλαξει.. -----Προστέθηκε 27/12/2008 στις 10 : 16 : 27----- καμια ιδεα ρε παιδια???
GrandGamer Δημοσ. 28 Δεκεμβρίου 2008 Δημοσ. 28 Δεκεμβρίου 2008 Η ταξινόμηση φυσαλίδας είναι πάρα πολύ απλή. Το μόνο που έχεις να κάνεις είναι να ελέγχεις κάθε στοιχείο του πίνακα και αν το στοιχείο είναι μεγαλύτερο από το επόμενό του τότε να τα αλλάζεις με μία swap. Αυτό πρέπει να γίνει για όλα τα στοιχεία του πίνακα, δηλαδή για το μέγεθος του πίνακα. Εσύ θα πρέπει να checkάρεις το έτος έκδοσης κάθε βιβλίου και όχι το βιβλίο, δηλαδή: >if(a[i].getFirstEdition() > a[i+1].getFirstEdition()) swap(....);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.