Προς το περιεχόμενο

Project σε Java.


anabel4321

Προτεινόμενες αναρτήσεις

Γεια σας ειμαι φοιτητρια σε τμημα πληροφορικης. Επειδη αυτες τις μερες εχουν πλακωσει πολλες εργασιες και προοδοι στη σχολη φοβαμαι πως δεν θα καταφερω να ολοκληρωσω το παρακατω προτζεκτ το οποιο ομως μετραει στην τελικη βαθμολογια. Οποιος καλος ανθρωπος εχει την ορεξη να με βοηθησει θα το εκτιμησω πολυ. Μπορειτε να στειλετε ακομη και κομματι της απαντησης οπως μια μεθοδο μονο. Για εμενα βοηθεια θα ειναι. Σας ευχαριστω εκ των προτερων. Παραθετω παρακατω την εκφωνηση της ασκησης.

Άσκηση 2 

Στην άσκηση αυτή θα προσομοιώσετε την λειτουργία ενός κοινωνικού δικτύου. Το κοινωνικό δίκτυο έχει χρήστες (users), οι οποίοι έχουν φιλίες μεταξύ τους. Ο καθένας έχει ένα τοίχο (wall) στον οποίο εμφανίζονται σε αντίστροφη χρονολογική σειρά τα μηνύματα (posts) που κάνουν ο χρήστης και οι φίλοι του. Οι χρήστες μπορούν επίσης να κάνουν σχόλια στα posts που εμφανίζονται στον τοίχο τους. 

 

Το πρόγραμμα σας θα πρέπει να έχει τρεις βασικές κλάσεις: UserPostWall

 

H κλάση Post κρατάει πληροφορίες για ένα post. Συγκεκριμένα χρειάζεται να κρατάει ένα String με το κείμενο του Post, ένα αντικείμενο User που αντιστοιχεί στον συγγραφέα του Post, και ένα ArrayList που κρατάει Post αντικείμενα τα οποία είναι τα σχόλια για αυτό το post. O constructor της κλάσης παίρνει σαν όρισμα τον συγγραφέα και το κείμενο του post. Η μέθοδος toString, δημιουργεί ένα String που περιέχει το String του χρήστη, το κείμενο του post και, εφόσον υπάρχουν σχόλια, τα Strings για όλα τα σχόλια που εμφανίζονται για το post. Για παράδειγμα παρακάτω είναι το String για δύο post του χρήστη Alice, ένα με σχόλια, και ένα χωρίς. 

 

Alice: Earthquake in Nepal! 

Comments: 

Bob: This is terrible! 

Charlie: Devastating! 

 

 

Alice: Travelling home today! 

 

 

Η κλάση έχει επίσης μια μέθοδο addComment που παίρνει σαν όρισμα ένα post και το προσθέτει στην λίστα με τα σχόλια. 

 

Η κλάση Wall κρατάει πληροφορίες για τον τοίχο ενός χρήστη. Συγκεκριμένα κρατάει ένα αντικείμενο User που είναι ο ιδιοκτήτης του τοίχου, και ένα ArrayList που κρατάει αντικείμενα τύπου Post που είναι τα posts που εμφανίζονται στον τοίχο του χρήστη. Ο constructor παίρνει σαν όρισμα τον ιδιοκτήτη του τοίχου. Έχει μια μέθοδο addPost που παίρνει σαν όρισμα ένα αντικείμενο Post και το προσθέτει στην λίστα, και μια μέθοδο addComment που παίρνει σαν όρισμα ένα ακέραιο i και ένα Post p και προσθέτει το p στα σχόλια του i-οστού post της λίστας (εφόσον η λίστα έχει τουλάχιστον i posts). 

Επίσης υπάρχει και η μέθοδος display η οποία εμφανίζει τον τοίχο: Την πληροφορία για τον ιδιοκτήτη του τοίχου, και τα posts με αντίστροφη σειρά με την οποία εμφανίζονται (το τελευταίο post εμφανίζεται πρώτο), μαζί με το νούμερο τους. Για παράδειγμα παρακάτω είναι μια ενδεικτική έξοδος για τον τοίχο του χρήση Alice, ο οποίος έχει δύο post ένα με σχόλια και ένα χωρίς: 

 

Wall for user Alice: 

1. Alice: I am travelling home today! 

0. Alice: Earthquake in Nepal! 

Comments: 

Bob: This is terrible! 

Charlie: Devastating! 

 

H κλάση User κρατάει πληροφορίες για ένα χρήστη. Συγκεκριμένα κρατάει το όνομα του χρήστη, ένα αντικείμενο Wall που αντιστοιχεί στον τοίχο του χρήστη, και ένα ArrayList που κρατάει τους φίλους του χρήστη. Ο constructor παίρνει όρισμα το όνομα και η toString επίσης επιστρέφει το όνομα. Η κλάση έχει μία μέθοδο befriend που παίρνει σαν όρισμα έναν άλλον χρήστη και δημιουργεί μια φιλία μεταξύ των δύο χρηστών (ο ένας εμφανίζεται στην λίστα του άλλου). Η μέθοδος post παίρνει σαν όρισμα ένα String και κάνει ένα post με αυτό το κείμενο, δηλαδή, προσθέτει το post στον τοίχο του χρήστη καθώς και στον τοίχο όλων των φίλων του χρήστη. H μέθοδος comment παίρνει σαν όρισμα ένα ακέραιο i και ένα String s, και προσθέτει ένα σχόλιο στο i-οστο post στον τοίχο του χρήστη με αυτό το κείμενο. 

 

Η κλάση User έχει και μία μέθοδο visitWall η οποία υλοποιεί την αλληλεπίδραση του χρήστη με τον τοίχο. Συγκεκριμένα, εμφανίζει τον τοίχο του χρήστη, και μετά τον ρωτάει αν θέλει να ποστάρει (post - p), να σχολιάσει (comment - c), ή να φύγει (exit - e). Αν επιλέξει να ποστάρει, δίνει το κείμενο για το post και δημιουργεί ένα νέο post, αν επιλέξει να σχολιάσει του ζητείται να εισάγει το νούμερο του post που θέλει να σχολιάσει και το κείμενο του σχολίου, και αν επιλέξει να φύγει βγαίνει από την μέθοδο. 

 

Τέλος θα υλοποιήσετε μια κλάση SocialNework, η οποία θα περιέχει την main και θα κάνει προσομοίωση της λειτουργίας του κοινωνικού δικτύου. Ενδεικτικά προτείνεται να κάνετε ένα κοινωνικό δίκτυο από 5 χρήστες που μπορείτε να συνδέσετε με διάφορους τρόπους μεταξύ τους. Μέσα σε ένα βρόγχο οι χρήστες θα επισκέπτονται με την σειρά τον τοίχο τους και θα κάνουν καινούρια posts ή σχολιασμό στα υπάρχοντα posts. Το πρόγραμμα θα σταματάει όταν το επιθυμείτε. 

 

Μπορείτε να κάνετε την προσομοίωση σας όσο περίπλοκη θέλετε. Εμείς θα κάνουμε μια δικιά μας υλοποίηση της SocialNetwork που θα χρησιμοποιήσουμε για την βαθμολόγηση του προγράμματος σας. 

 

Μπορείτε να χρησιμοποιήσετε επιπλέον μεθόδους ή πεδία αν το χρειάζεστε.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τωρα ασχολουμαι με την ασκηση πριν απο αυτη που ειναι δημιουργια δυναμικης ουρας. Γιαυτο δεν ξερω αν θα προλαβω να ασχοληθω με αυτη που εκανα ποστ.


Μωρε και ποτακι και φαγακι θα κερασω. Μονο μετα την εξεταστικη ομως. :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

12 χρόνια στο insomnia, πάντα σε αυτό το subforum απελπισμένοι νέοι φοιτητές πληροφορικής με παρόμοιες ασκήσεις, όλοι χωρίς χρόνο 10 εργασίες, 3 δουλειές, 0 προεργασία αλλά πάντα με λεφτά και χρόνο διαθέσιμο για τους καλοθελητές  :P

Φιλικά πάντα, καλή συνέχεια.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...

 

Οποιος μπορει να βοηθησει εστω και λιγο τον ευχαριστω! :)   

 

Ρε συ, με μασημένη τροφή δε θα κερδίσεις απολύτως τίποτα, οι εργασίες δίνονται για να μάθεις από αυτές.  Αν έχεις καμιά απορία ή δυσκολεύεσαι πουθενά μετά χαράς να βοηθήσουμε αλλά τροφή στο στόμα (και τζάμπα) δε νομίζω να βρεις

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εχεις απολυτο δικιο. Δεν διαφωνω. Απλα ειναι 3η χρονια που παιρνω το μαθημα γιατι ο καθηγητης μας κοβει συνεχεια.(Μεγαλο ποσοστο) Δεν ειναι οτι εχω κενα σε Java, εχω ασχοληθει πολυ τα 2 προηγουμενα χρονια. Απλα φετος αυτο το τελευταιο σετ επεσε ακριβως πριν την εξεταστικη και μεσα σε βδομαδα που γραφουμε προοδους. Ποσα κομματια να γινουμε πια? Δεν ρωταει καν αν εχουμε αλλες υποχρεωσεις. Ελπιζω να καταλαβαινεις! Ευχαριστω για την οποια βοηθεια και συγγνωμη αν γινομαι φορτικη. Απλα προσπαθω να τα συνδυασω ολα κ οπως καταλαβατε δεν γινεται!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εχεις απολυτο δικιο. Δεν διαφωνω. Απλα ειναι 3η χρονια που παιρνω το μαθημα γιατι ο καθηγητης μας κοβει συνεχεια.(Μεγαλο ποσοστο) Δεν ειναι οτι εχω κενα σε Java, εχω ασχοληθει πολυ τα 2 προηγουμενα χρονια. Απλα φετος αυτο το τελευταιο σετ επεσε ακριβως πριν την εξεταστικη και μεσα σε βδομαδα που γραφουμε προοδους. Ποσα κομματια να γινουμε πια? Δεν ρωταει καν αν εχουμε αλλες υποχρεωσεις. Ελπιζω να καταλαβαινεις! Ευχαριστω για την οποια βοηθεια και συγγνωμη αν γινομαι φορτικη. Απλα προσπαθω να τα συνδυασω ολα κ οπως καταλαβατε δεν γινεται!

Γενικά πουθενά δεν γίνεται να τα συνδυάσεις όλα (και πέρα από τη σχολή). Αν δεν προλαβαίνεις λοιπόν να παραδώσεις εργασίες και εάν όπως λες το χεις με τη java πήγαινε και γράψε μόνο εξέταση στο τέλος. Θα γράφεις με άριστα το 7-8(αφού μετράν και στο τέλος οι εργασίες) αλλά ο συνδυασμός των πάντων έχει και κάποιες επιπτώσεις.

 

edit: υπάρχει βέβαια και η λύση του πληρώνω και μου κάνουν την εργασία.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο τελος γραφω με αριστα το 5. Η τελικη εξεταση πιανει μονο το 50%. Αρα και 7, 8 να γραψω θα μου βαλει 3 με 4. Οι εργασιες πιανουν 10% η καθεμια.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οπως εχουν πει και τα παιδια, το τμημα αυτο του forum δεν ειναι για να σου λυσουμε την ασκηση, αλλα για να σε βοηθησουμε οπου κολλήσεις! Αν δεν κατσεις απο μονος/μονη σου να λυσεις ασκησεις δεν θα μαθεις τιποτα! Εξαλλου αυτο θα σε βοηθησει και στο τελος στην θεωρια.

Απ οτι βλεπω οι ασκησεις δεν ειναι τρελα απαιτητικες :) Ξεκινα λοιπον και τα ξαναλεμε οταν εχεις προβλημα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...