psomis Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 καλησπερα σας εχω την εξησ ασκηση You are required to design and implement and test a typical system storing and retrieving telephone data (a phone directory). The typical data for an item in the directory are: Last name, First name, mobile number, home number, work number, home address, fax, email, general notes. The system supports all the usual transactions, namely insertion, deletion of a person, update of data the attributes, searching for a phone item, and listing the directory. Finally, a tester driver class will launch the application and test each of the developed method > public class person { private String name; private String surname; private int tel; private int zip; private String address; private String email; private int birthday; private String polh; public per(String name,String surname,int tel,int zip,String address,String email,int birthday,String polh) { this.name=name; this.surname=surname; this.tel=tel; this.address=address; this.email=email; this.birthday=birthday; this.polh=polh; } public void setname(String name) { this.name=name; } public String getname(String name) { return name; } public void printname() { System.out.println("Name:"+name);} public void setSurname(String surname) { this.surname=surname; } public void printSurname() { System.out.println("Surname:"+surname); } public String getSurname(String surname) { return surname; } public void setTel(int tel) { this.tel=tel; } public int getTel(int tel) { return tel; } public void printTel() { System.out.println("Tel:"+tel); } public void setaddress() { this.address=address; } public String getaddress(String address) { return address; } public void printAddress() { System.out.println("Address:"+address); } public void setEmail() { this.email=email; } public String getEmail(String Email) { return email; } public void printEmail() { System.out.println("Email:"+email); } public void setbirthday(int birthday) { this.birthday=birthday; } public int getBirthday(int birthday) { return birthday; } public void printBirthday() { System.out.println("Birthday:"+birthday); } } // import java.util.ArrayList; //import java.util.ArrayList; //public class Agenda //{ //private ArrayList<contact>contacts; // public add,remove,display,find first contact, find next contact,updatecontact,number of contacts delete all contacts public class Agenda { private ArrayList<person> persons; private int nextdatanumber; public Agenda() { persons = new ArrayList<person>(); nextdatanumber=0; } public void adddata(String name) { persons.add(person); nextdatanumber++; } public int numberOfdata() { return student.size(); } public void showdata(int dataNumber) { if(dataNumber < 0) { } else if(dataNumber < numberOfdata()) { System.out.println(student.get(dataNumber)); } else { } } } το προβλημα ειναι οτι δεν μπορω να κανω .add cannot find symbol variable method σασ παρακαλω βοηθηστε!
Cue Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 Ώρες ώρες πραγματικά απορώ τι *censored* μαθαίνουν οι καθηγητές στους μαθητές σε ΤΕΙ, ΑΕΙ, αλί και τρις αλί.
ippo00 Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 Ξεπερνώντας το γεγονός ότι ο κώδικας σου είναι κακόγραμμένος και δεν σέβεται κανένα convention. Ξεπερνώντας το γεγονός ότι έκανες γράφω αντί για σέφτομαι και γράφω. Νομίζω ότι το πρόβλημα σου με αυτή τη γραμμή -> persons.add(person); είναι ότι το person δεν υπάρχει πουθενα... ίσως ήθελες να πείς new person() or sth.. δεν διάβασα τον υπολοιπο κώδικα...
virxen75 Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 > public void adddata(Person person1){ persons.add(person1); nextdatanumber++; } αφού persons arraylist<Person> πρέπει να του προσθέτεις δεδομένα τύπου Person public per(String name...... να γίνει public Person(String name.... class και constructor κλάσης πρέπει να έχουν το ίδιο όνομα public class person..... να γίνει public class Person private ArrayList<person> persons; να γίνει private ArrayList<Person> persons; η κλάση Person να σωθεί σε αρχείο Person.java και όχι person.java
psomis Δημοσ. 7 Ιανουαρίου 2010 Μέλος Δημοσ. 7 Ιανουαρίου 2010 τα εκανα ολα μ λετε παραπανω ... ειλικρινα ακομα δεν βρηκα ακρη ... εγς το τηελς με μεθοδο το οποιο οσο και να το αλλαξα τον κοδικα δεν μπορς να βρω τον σωστο διαωασα τοσεσ ιστιοσελιδεσ και εκειπ κατεληξα ειναι να κανω αδδ χωρισ μεθοδο αλλα και παλι κανω κομπαιλ και βγαινει ενα μυν σε παραθιρο ,τεσπα τρεχω τον κοδικα και δεν μ βγαζει μυνημα java.lang.NullPointerException πφφφ δεν μπορω αλλο
virxen75 Δημοσ. 7 Ιανουαρίου 2010 Δημοσ. 7 Ιανουαρίου 2010 διορθώσεις -το zip δεν το αρχικοποιούσες δες τον constructor του Person -το τηλέφωνο το είχες int επειδή είναι μεγάλα τα νούμερα τηλεφώνων δεν σου κάνει ο συγκεκριμμένος τύπος τηλεφώνου.Εβαλα String -όταν θες να πάρεις τιμή π.χ. public String getEmail()--->δεν βάζεις όρισμα μέσα στις παρενθέσεις το οποίο δεν θα χρειαστεί. -το Birthday το είχες int που δεν στέκει και το εκανα String k.a. επίσης δεν έχεις βάλει αυτά που σου ζητάει η εκφώνηση π.χ. τηλ.κινητού,FAX στο διόρθωσα λίγο για να δουλεύει και να δεις στο περίπου πως γίνεται. agenda_java.zip
psomis Δημοσ. 8 Ιανουαρίου 2010 Μέλος Δημοσ. 8 Ιανουαρίου 2010 καλησπερα και παλι! εφτιαξα λοιπον την Array List οπως φαινεται παρακατω και λειτουργει κανονικα. Σε ενα ερωτημα ζηταει update the data of the element ,ουσιαστικα ζηταει καθε φορα που βαζω ι βγαζω καποιον να κανει update? αυτο που σκεφτομαι να κανω ειναι να αριθμησω με ενα increament method? και μετα με loop να κανει update ?το method αυτο ομωσ πρεπει να εχει field? δεν ξερω..ευχαριστω > import java.util.ArrayList; public class agenda { private ArrayList<Person> agenda; public agenda() { agenda = new ArrayList<Person>(); } public void storePerson(Person per) { agenda.add(per); } public void removeNote(int PersonNumber) { if(PersonNumber < 0) { } else if(PersonNumber < numberOfPersons()) { agenda.remove(PersonNumber); } else { } } public int numberOfPersons() { return agenda.size(); } public void showPerson(int PersonNumber) { if(PersonNumber < 0) { } else if(PersonNumber < numberOfPersons()) { System.out.println(agenda.get(PersonNumber)); } else { } } public void listPersons() { for(Person per : agenda) { System.out.println(per); } } }
virxen75 Δημοσ. 8 Ιανουαρίου 2010 Δημοσ. 8 Ιανουαρίου 2010 update ============== έχω μια εγγραφή και θέλω να αλλάξω τα στοιχεία της π.χ. αλλάζω τον αριθμό τηλεφώνου τότε θέλεις update. -βρίσκεις την εγγραφή αυτή και με τις κατάλληλες μεθόδους set.. που έχεις ορίσει αλλάζεις τις τιμές αυτές. διορθώσεις ============== -καλό είναι όλες οι κλάσεις σου να αρχίζουν από κεφαλαίο γράμμα -μην χρησιμοποιείς το όνομα της κλάσης για μεταβλητή(π.χ. agenda)
psomis Δημοσ. 8 Ιανουαρίου 2010 Μέλος Δημοσ. 8 Ιανουαρίου 2010 θελει δηλαδη search και μετα edit απο το setter..οκ εφτιαξα ενα search οπωσ φαινεται παρακατω αλλα δεν δουλευει... πρεπει να βαλω και iterator? πρεπει απο την αρχη να τα αριθμω για να δουλεψει το search?αφου τα αριθμει μονο του γιατι δεν δουλευει? > import java.util.ArrayList; public class agenda { private ArrayList<Person> agenda; public agenda() { agenda = new ArrayList<Person>(); } public void storePerson(Person per) { agenda.add(per); } public void removePerson(int PersonNumber) { if(PersonNumber < 0) { } else if(PersonNumber < numberOfPersons()) { agenda.remove(PersonNumber); } else { } } public int numberOfPersons() { return agenda.size(); } public void showPerson(int PersonNumber) { if(PersonNumber < 0) { } else if(PersonNumber < numberOfPersons()) { System.out.println(agenda.get(PersonNumber)); } else { } } public void listPersons() { for(Person per : agenda) { System.out.println(per); } } public void search (int per ) { int index = 0; boolean found = false; per=0; while (index < agenda.size() && !found) { if (agenda.contains (per)) { found = true; } else { index++; } } if (found) { System.out.println (per); } else { System.out.println ("Search term not found."); } } }
virxen75 Δημοσ. 8 Ιανουαρίου 2010 Δημοσ. 8 Ιανουαρίου 2010 το search γίνεται με βάση κάποια στοιχεία που δίνεις π.χ. ψάξε με βάση το όνομα , το τηλέφωνο ,κάτι αυτό το περνάς σαν παράμετρο στην search και αυτή σου επιστρέφει το αντικείμενο Person που θες π.χ. > public Person search(String name,String surname){//με βάση το όνομα και το επιθετο Person found=null; for (int i=0;i<agenda.size();i++){ Person temp=agenda.get(i); String name1=temp.getname(); String surname1=temp.getsurname(); if (name.equals(name1) && surname.equals(surname1)){ found=temp; break; } } return found; }
psomis Δημοσ. 9 Ιανουαρίου 2010 Μέλος Δημοσ. 9 Ιανουαρίου 2010 Σε ευχαριστω πολυ.. το προβλημα που αντιμετοπιζω τωρα ειναι οτι φτιαχνω κανονικα 4-5 objects απο την person τουσ κανω add στην agenda αλλα οταν επιλεγω την μεθοδο showperson επισησ και την search η μου βγαζει search term not found για το ShowPerson η Person@1b1fbf4 οτι να ναι...τι να φταιει αραγε¨? αφου τα αριτημουμε στο add γιατι ετσι? επισης θελω να βαλω και ενα menu με scanner. θα πρεπει να το φτιαξω στην ιδια κλαση με την ArrayList η να κανω διαφορετικη και να την συνδεσω με τισ αλλεσ δυο?
virxen75 Δημοσ. 9 Ιανουαρίου 2010 Δημοσ. 9 Ιανουαρίου 2010 κάνεις add ένα αντικείμενο άρα όταν το τυπώνεις παίρνεις ένα αντικείμενο π.χ. Person@2342342 αν θυμάσαι στην κλάση Person που σου είχα στείλει είχα φτιάξει μία μέθοδο toString() δες την να καταλάβεις πως πρέπει να εκτυπώνεις τις ιδιότητες ενός αντικειμένου.
lnoldori Δημοσ. 11 Ιανουαρίου 2010 Δημοσ. 11 Ιανουαρίου 2010 Φίλε μου φιλικά στο λέω κάτσε και διάβασε όσο μπορείς αλγοριθμική ΄τωρα που είναι σχετικά νωρίς.
psomis Δημοσ. 12 Ιανουαρίου 2010 Μέλος Δημοσ. 12 Ιανουαρίου 2010 εχεισ δικιο. καλωσ ι κακωσ ο virxen με βοηθησε πολυ αν και δεν ηθελα να τα κανω copy paste! παρολαυτα εμαθα πολλα και καταλαβα πολλα..ναι συμφωνω οτι θελει πολυ διαβασμα αλλα εχω πολλεσ αποριες οπωσ ειδεσ πριν,.τελοσ παντων εκατσα και διαβασα πολυ αυτεσ τισ μερες για να τα καταλαβω και να φτιαξω επιτελουσ αυτο το προγραμμα..εχω λοιπον το εξησ προβλημα εδω που εχω φτασει.. > // import java.util.ArrayList; import java.util.Scanner; //import java.util.ArrayList; //public class Agenda //{ //private ArrayList<contact>contacts; // public add,remove,display,find first contact, find next contact,updatecontact,number of contacts delete all contacts public class Agenda { private ArrayList<Person> persons; //private int nextdatanumber; public Agenda(){ persons = new ArrayList<Person>(); System.out.println("exo "+numberOfdata()+" eggrafes"); System.out.println("stoixeia eggrafwn"); for (int i=0;i<numberOfdata();i++){ showdata(i); } update(); System.out.println("nea stoixeia eggrafwn"); for (int i=0;i<numberOfdata();i++){ showdata(i); } } public void addData() { Scanner s=new Scanner(System.in); System.out.println("give name"); String name=s.next(); System.out.println("give surname"); String surname=s.next(); System.out.println("give tel"); String tel=s.next(); System.out.println("zip"); int zip=s.nextInt(); System.out.println("address"); String address=s.next(); System.out.println("email"); String email=s.next(); System.out.println("birthday"); String birthday=s.next(); System.out.println("polh"); String polh=s.next(); Person p1=new Person(name,surname,tel,zip,address,email,birthday,polh); persons.add(p1); System.out.println("the data were saved succesfylly"); } public void addData(String name,String surname,String tel,int zip,String address,String email,String birthday,String polh) { Person p1=new Person(name,surname,tel,zip,address,email,birthday,polh); persons.add(p1); } public int numberOfdata(){ return persons.size(); } public void showdata(int dataNumber){ System.out.println(persons.get(dataNumber).toString()); } public static void main(String args[]){ new Agenda(); } public Person search(String name,String surname){ Person found=null; for (int i=0;i<persons.size();i++){ Person temp=persons.get(i); String name1=temp.getname(); String surname1=temp.getSurname(); if (name.equals(name1) && surname.equals(surname1)){ found=temp; break; } } return found; } public int SearchPerson(String name) { Person found=null; return 0; } public void removePerson() { Scanner s=new Scanner(System.in); System.out.println("give name"); String name=s.next(); int PersonNumber=SearchPerson(name); if(PersonNumber < 0) { } else if(PersonNumber < numberOfdata()) { persons.remove(PersonNumber); } else { } } public void update() { Scanner in=new Scanner(System.in); System.out.println("give name"); String name=in.next(); System.out.println("give surname"); String surname=in.next(); Person contact=search(name,surname); System.out.println("give new mobile"); String mobile=in.next(); if (contact!=null) contact.setTel(mobile); } public void listPersons() { for(Person per : persons) { System.out.println(per); } } public void menu() { int choise=1; Scanner s=new Scanner(System.in); while (choise!=0) { System.out.println("1. Insert new Person"); System.out.println("2.Find by name"); System.out.println("3. REmove by name"); System.out.println("4. see all data"); System.out.println("5. update by name"); System.out.println("0. Exit"); choise=s.nextInt(); switch(choise){ case 1: addData();break; case 2: ; break; case 3:removePerson(); break; case 4:listPersons();break; case 5:update();break; case 0:System.out.println("closing..."); default:; } }} } το προβλημα συγκεκριμενα ειναι στην μεθοδο menu.οταν παταω find person στην ουσια πρεπει να τον βρισκει με το ονομα αλλα ο καθηγητησ μ ειπε οτι πρεπει να φτιαξω μια μεθοδο ι οποια να μετατρεπει τα int persons σε string ετσι οστε να δουλεψει
virxen75 Δημοσ. 12 Ιανουαρίου 2010 Δημοσ. 12 Ιανουαρίου 2010 το βασικό σου πρόβλημα βέβαια δεν είναι οι μέθοδοι και πως θα τους γράψεις ειναι περισσότερο προγραμματιστικής λογικής. π.χ. name surname ....................... nikos nikos1 ..................... nikos nikos2 ................ -παραγνωρίζεις το γεγονός ότι δεν θα έχουν όλες οι εγγραφές μοναδικά ονόματα,αλλά θα υπάρχουν συνωνυμίες. Επομένως αποτελέσματα πιθανώς παραπάνω από 1. -Άρα πως θα σβήσεις μία εγγραφή απλά από το όνομα? -Αποφάσισε λοιπόν πρώτα τι θες και μετά πως θα το κάνεις. π.χ. εμφανίζεις αριθμημένη λίστα και επιλέγεις το νούμερο από την λίστα προς διαγραφή. δηλαδή 1 nikos nikos1 ..................... 2 nikos nikos2 ................ ποιο να σβήσω? 2 η εγγραφή 2 nikos nikos2 ................ διαγράφτηκε επιτυχώς.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.