fot1 Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 μπορει καποιος να βοηθήσει ;;;;;; Να υλοποιηθεί μία java εφαρμογή η οποία θα παρέχει πληροφορίες σχετικά με τo κόστος των κλήσεων ενός πελάτη μίας εταιρίας τηλεφωνίας. Δοθέντος του αρ. τηλεφώνου ενός πελάτη η εφαρμογή θα επιστρέφει το μηνιαίο αντίτιμο του λογαριασμού του (ημερολογιακό μήνα). Επιπλέον, η εφαρμογή θα παρέχει το μέσο όρο διάρκειας ανά ημερολογιακό μήνα και συνολικό μέσο όρο διάρκειας κλήσεων. Ειδικότερα το πρόγραμμα θα μπορεί να απαντήσει στα ακόλουθα αιτήμα: Αίτηση αποστολής λογαριασμού ανά ημερολογιακό μήνα. Αίτηση για μέσο όρο εξαμήνου διάρκειας ανά ημερολογιακό μήνα Αίτηση για συνολικό μέσο όρο. Ανάλογα με το αίτημα του χρήστη το πρόγραμμα θα εκτυπώνει στην προκαθορισμένη έξοδο (System.out) την απάντησh. Το πρόγραμμα δέχεται αιτήσεις από το πρόγραμμα πελάτης και επιστρέφει απαντήσεις σχετικά με διάρκειας ανά ημερολογιακό μήνα που βρίσκονται σε ένα αρχείο κειμένου π.χ.“Costs.txt”. ο οποίο θα περιλαμβάνει τα στοιχεία όλων των κλήσεων των συνδρομητών. Κάθε κλήση αντιστοιχεί σε μία γραμμή του αρχείου, που έχει την ακόλουθη δομή: ΕΠΩΝΥΜΟ ΟΝΟΜΑ ΑΡΙΘΜΟΣ ΤΗΛΕΦΩΝΟΥ (10 ψηφία) ΗΜΕΡ. ΚΛΗΣΗΣ (ΗΗ:ΜΜ:ΕΕ) ΕΝΑΡΞΗ ΚΛΗΣΗΣ (ΩΩ:ΛΛ:ΔΔ) ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ (ΩΩ:ΛΛ:ΔΔ) Επιπλέον σε περίπτωση που το πρόγραμμα λάβει μια λανθασμένη αίτηση θα επιστρέφει ένα μήνυμα λάθους. Δεδομένα προβλήματος: Θεωρείστε ότι όλοι οι χρήστες έχουν την ακόλουθη χρέωση: 15’ δωρεάν χρόνο ομιλίας με πάγιο 10 €. Χρέωση επιπλέον χρόνου: 0,12€/ 60’’. Ελάχιστη διάρκεια χρέωσης: 60΄΄ . Υποθέτουμε ότι κάθε χρήστης χαρακτηρίζεται μοναδικά από τον αριθμό τηλεφώνου (κλειδί αναζήτησης). Οι λειτουργίες Εισόδου/Εξόδου να ελέγχονται για πιθανά exceptions. Χρησιμοποιείστε κλάσεις/μεθόδους για την ανάγνωση / εγγραφή των διαφόρων τύπων δεδομένων. import java.util.ArrayList; public abstract class Syndromitis { private int kodikos; private String AFM; private ArrayList<Syndesi> syndeseis; public Syndromitis(int kodikos, String AFM) { this.kodikos = kodikos; this.AFM = AFM; syndeseis = new ArrayList<Syndesi>(); } public int getKodikos() { return kodikos; } public String getAFM() { return AFM; } public void neaSyndesi(Syndesi si) { syndeseis.add(si); } public void addKlisi(String arithmosTilefonou, String hmerominia, int ora, int diarkeia) { for (int i = 0; i < syndeseis.size(); i++) { if (syndeseis.get(i).getArithmosTilefonou().equals(arithmosTilefonou)) { syndeseis.get(i).addKlisi(hmerominia, ora, diarkeia); break; } } } } public class Atomo extends Syndromitis { private String onomatEponymo; public Atomo(int kodikos, String AFM, String onomatEponymo) { super(kodikos,AFM); this.onomatEponymo = onomatEponymo; } public String getOnometEponymo() { return onomatEponymo; } } public class Etaireia extends Syndromitis { private String eponymia; public Etaireia(int kodikos, String AFM, String eponymia) { super(kodikos,AFM); this.eponymia = eponymia; } public String getEponymia() { return eponymia; } } import java.util.ArrayList; public class Syndesi { private String arithmosTilefonou; private String hmeromSyndesis; private String hmeromDiakopis; private boolean katastasi; private ArrayList<Programma> programmata; public Syndesi(String arithmosTilefonou, String hmeromSyndesis) { this.arithmosTilefonou = arithmosTilefonou; this.hmeromSyndesis = hmeromSyndesis; katastasi = true; programmata = new ArrayList<Programma>(); } public String getArithmosTilefonou() { return arithmosTilefonou; } public String getHmeromSyndesis() { return hmeromSyndesis; } public String getHmeromDiakopis() { return hmeromDiakopis; } public boolean getKatastasi() { return katastasi; } public void diakopi(String hmeromDiakopis) { this.hmeromDiakopis = hmeromDiakopis; katastasi = false; } public void epanasyndesi() { hmeromDiakopis = null; katastasi = true; } public void addProgram(Programma pr) { programmata.add(pr); } public void addKlisi(String hmerominia, int ora, int diarkeia) { if (katastasi == false) return; Programma pr = null; for (int i = 0; i < programmata.size(); i++) { if (programmata.get(i) instanceof Omilias || programmata.get(i) instanceof Syndiasmeno) { pr = programmata.get(i); break; } } if (pr == null) return; if (pr instanceof Omilias) ((Omilias) pr).addKlisi(hmerominia, ora, diarkeia); else if (pr instanceof Syndiasmeno) ((Syndiasmeno) pr).getPrOmilias().addKlisi(hmerominia, ora, diarkeia); } } public abstract class Programma { private String hmeromEnarxis; private boolean katastasi; public Programma(String hmeromEnarxis) { this.hmeromEnarxis = hmeromEnarxis; katastasi = true; } public String getHmeromEnarxis() { return hmeromEnarxis; } public boolean getKatastasi() { return katastasi; } public void diakopi() { katastasi = false; } public void epanasyndesi() { katastasi = true; } } public class Internet extends Programma { private int Mbps; public Internet(String hmeromEnarxis, int Mbps) { super(hmeromEnarxis); this.Mbps = Mbps; } public int getMbps() { return Mbps; } } import java.util.ArrayList; public class Omilias extends Programma { private double xrewsi; private int orioXronouOmilias; private ArrayList<KinisiKlisis> kliseis; private int diathesimosDwreanXronos; private boolean aperioristoPaketo; public Omilias(String hmeromEnarxis, int orioXronouOmilias) { super(hmeromEnarxis); this.orioXronouOmilias = orioXronouOmilias; xre wsi = 0.0; diathesimosDwreanXronos = orioXronouOmilias; kliseis = new ArrayList<KinisiKlisis>(); if (orioXronouOmilias == 0) aperioristoPaketo = true; else aperioristoPaketo = false; } public double getXreosi() { return xrewsi; } public int getOrioXronouOmilias() { return orioXronouOmilias; } public void addKlisi(String hmerominia, int ora, int diarkeia) { KinisiKlisis neaKlisi = new KinisiKlisis(hmerominia,ora,diarkeia); kliseis.add(neaKlisi); if (aperioristoPaketo == false) { if (diathesimosDwreanXronos > diarkeia) diathesimosDwreanXronos -= diarkeia; else if (diathesimosDwreanXronos > 0) { neaKlisi.ypologXrewsi(diarkeia - diathesimosDwreanXronos); diathesimosDwreanXronos = 0; } else neaKlisi.ypologXrewsi(diarkeia); xrewsi += neaKlisi.getXrewsiOmilias(); } } } public class Syndiasmeno extends Programma { private Programma prOmilias; private Programma prInternet; public Syndiasmeno(String hmeromEnarxis, Omilias prOmilias, Internet prInternet) { super(hmeromEnarxis); this.prOmilias = prOmilias; this.prInternet = prInternet; } public Omilias getPrOmilias() { return (Omilias) prOmilias; } public Internet getPrInternet() { return (Internet) prInternet; } } public class KinisiKlisis { private String hmerominia; private int ora; private int diarkeia; private double xrewsiOmilias; public KinisiKlisis(String hmerominia, int ora, int diarkeia) { this.hmerominia = hmerominia; this.ora = ora; this.diarkeia = diarkeia; xrewsiOmilias = 0.0; } public String getHmerominia() { return hmerominia; } public int getOra() { return ora; } public int getDiarkeia() { return diarkeia; } public double getXrewsiOmilias() { return xrewsiOmilias; } public void ypologXrewsi(int xrewsiLeptou) { xrewsiOmilias = xrewsiLeptou*0.2; } }
gon1332 Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 1] Ποιο είναι το πρόβλημά σου; Που κόλλησες; Δεν το αναφέρεις. 2] Βάλε τον κώδικα σε code tags για να είναι ευκολοδιάβαστος.
fot1 Δημοσ. 31 Μαΐου 2014 Μέλος Δημοσ. 31 Μαΐου 2014 αυτο που ανεβασα ειναι η εργασια και μια βοηθητικη mini απαντηση του καθηγητη. θα ηθελα καποιος να την λυσει .
geomagas Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 Με 30€ εισαι ετοιμος Χαλάς την πιάτσα! Ανέβαινε! 4
gon1332 Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 Χαλάς την πιάτσα! Ανέβαινε! Όσο πιο κοντά σε εξεταστική, τόσο πιο ψηλά...και οι τιμές ανεβαίνουν πάντα εκθετικά 5
fot1 Δημοσ. 31 Μαΐου 2014 Μέλος Δημοσ. 31 Μαΐου 2014 εγινε, αλλα να μου μην πεις ποτε μπορεις να ειναι ετοιμη
Lanike71 Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 Το διάβασμα-γράψιμο σε αρχείο χρειάζεσαι, όπως και τα 3 ερωτήματα, έτσι; Αν μπορείς να "διαβάσεις" τον κώδικα, δε ζητά και τίποτα δύσκολο να υλοποιήσεις. Σημειωτέον, την άσκηση την έχω συναντήσει και λύσει,μόνο που σου έδινε μόνο την περιγραφή για το πρόγραμμα κινητής και έπρεπε να φτιάξεις μόνος τις κλάσεις (programma,omilias,syndromitis κλπ). Μερικές φορές οι καθηγητές δεν έχουν φαντασία νομίζω.Copy-paste όλα ( λες και δεν υπάρχουν άλλα παραδείγματα abstract κλάσεων, πρεπει σώνει και καλά να είναι πρόγραμμα σύνδεσης).
Lanike71 Δημοσ. 31 Μαΐου 2014 Δημοσ. 31 Μαΐου 2014 Αν το λες σε μένα, όχι.Αν είναι ολόιδια άσκηση και ο καθηγητής με τη "μίνι" λύση σου έδωσε το 90+ % της άσκησης, ε τότε τι να πω; Αν ασχοληθείς, δεν είναι ούτε μία ώρα δουλειά. Αν δεν τα καταφέρεις, ο nilos έχει κάνει ήδη προσφορά. 1
fot1 Δημοσ. 31 Μαΐου 2014 Μέλος Δημοσ. 31 Μαΐου 2014 συγγνώμη νόμιζα ότι ήσουν το παιδί που είπε ότι μπορεί να την κάνει, μπερδεύτηκα αυτό στο ζήτησα e mail.
fot1 Δημοσ. 1 Ιουνίου 2014 Μέλος Δημοσ. 1 Ιουνίου 2014 ακούω προσφορες! όλα ok με την εργασία τελικά. Κάτι κάναμε. όχι τέλεια αλλα εντάξει , παρουσιάζεται.
Lanike71 Δημοσ. 1 Ιουνίου 2014 Δημοσ. 1 Ιουνίου 2014 ακούω προσφορες! όλα ok με την εργασία τελικά. Κάτι κάναμε. όχι τέλεια αλλα εντάξει , παρουσιάζεται. Τουλάχιστον είναι δική σου. Αλλά και βοήθεια να ζητούσες, αν παρουσιάζες την προσπάθειά σου εδώ (προϋπόθεση) , όλο και κάποιος θα βοηθούσε.
arc Δημοσ. 1 Ιουνίου 2014 Δημοσ. 1 Ιουνίου 2014 Με 30€ εισαι ετοιμος 29,90€ εγώ... Μη μαμάτε την πιάτσα ρε παιδιά. Ξεπουλιέστε πολύ φθηνά με βάση τις εργατώρες σας. Εγω (αν ενδιαφερόμουν) θα χρέωνα τουλάχιστον 70 και αν ήθελε και μάθημα για το πως δουλευει το πρόγραμμα, άλλα 50.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα