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

nai i oxi???


mamep

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

Δημοσ.

re paidia exo na kano ena browser gia to progrmatismo..

k to skeftomai na to kano i oxi???

o browser tha einai kati analogo me to lynx sta sunOS...

k to provlima einai oti an den kano tin askisi den pernao to mathima..

eseis ti lete???

Δημοσ.

ti akrivws ennoeis browser? renderning html kwdika? ti akrivws thes na kanei kai se ti glwssa prepei na to grapseis? thelei apla na kaneis ton kwdika i oloklirwmeno project me design kai ta loipa? an nai exw kanei pio palia ena design sto panepistimio to opoio mporei na sou fanei xrisimo

Δημοσ.

Ζητούμενο είναι η σχεδίαση, ανάπτυξη και επίδειξη ενός "φυλλομετρητή" (browser) για σελίδες Web, οι οποίες γράφονται με χρήση της γλώσσας HTML. Ενας πλήρης φυλλομετρητής δίνει την δυνατότητα στον χρήστη να δει τα περιεχόμενα μιας σελίδας είτε εισάγοντας μια διεύθυνση είτε ακολουθώντας ένας σύνδεσμο υπερκειμένου (hyperlink). Για την άσκηση αυτή, θα περιοριστούμε σε σελίδες που είναι άμεσα προσπελάσιμες ως τοπικά αρχεία (δηλαδή δεν θα ασχοληθούμε με δικτυακές διευθύνσεις). Επίσης, θα περιοριστούμε σε ένα φυλλομετρητή που δεν παρέχει γραφική διεπαφή χρήσης (graphical user interface - GUI). Τέλος, θα περιοριστούμε σε σελίδες χωρίς δυναμικά στοιχεία (πχ: συναρτήσεις γραμμένες στην γλώσσα Javascript, ενσωματωμένα αντικείμενα τύπου Flash ή Java applet, κλπ). Η επιλογή του αρχείου με την σελίδα προς παρουσίαση θα γίνεται διαλογικά, μέσα από τον κατάλογο λειτουργιών που θα εμφανίζει το πρόγραμμα προς τον χρήστη, ενώ θα επιτρέπεται ο καθορισμός του αρχικού αρχείου προς παρουσίαση ως όρισμα από την γραμμή εντολών.

 

Ο φυλλομετρητής θα πρέπει να υποστηρίζει τις παρακάτω δυνατότητες μορφοποίησης:

 

Αλλαγή γραμμής, όταν εντοπιστεί η εντολή μορφοποίησης < BR/ >. Εαν δεν εμφανιστεί η εντολή αυτή, το κείμενο από το αρχείο εκτυπώνεται στην οθόνη χωρίς καμία αλλαγή γραμμής.

Αλλαγή παραγράφου, όταν εντοπιστεί η εντολή μορφοποίησης < P >. Για την εμφάνιση του αρχείου, η αλλαγή παραγράφου αρκεί να υλοποιηθεί με την εμφάνιση 2 κενών γραμμών στην οθόνη. Το τέλος μιας παραγράφου σημειώνεται με την εντολή μορφοποίησης < /P >.

Αλλαγή παραγράφου και καθορισμός της στοίχισης του κειμένου που αυτή περιέχει. Η στοίχιση είναι είτε αριστερή είτε κεντραρισμένη είτε δεξιά, και καθορίζεται από μια παραμέτρο που συνοδεύει την εντολή μορφοποίησης < P >. Για κεντραρισμένο κείμενο, η εντολή μορφοποίησης είναι < P ALIGN="CENTER" > ενώ για δεξιά στοίχιση η εντολή μορφοποίησης είναι < P ALIGN="RIGHT" >. Η αριστερή στοίχιση καθορίζεται με την εντολή < P ALIGN="LEFT" >. Η εντολή < P > υποθέτει αριστερή στοίχιση. Σε κάθε περίπτωση, για την εμφάνιση του αρχείου στην οθόνη η στοίχιση μπορεί να επιβάλλει την εμφάνιση κενών διαστημάτων στην αρχή ή/και στο τέλος της γραμμής.

Παρουσίαση κειμένου με έμφαση, όταν εντοπιστεί η εντολή μορφοποίησης < B >. Για την εμφάνιση του αρχείου, η έμφαση αρκεί να υλοποιηθεί με την εμφάνιση του κειμένου με κεφαλαίους χαρακτήρες. Το τέλος της περιοχής του κειμένου που εμφανίζεται με έμφαση σημειώνεται με την εντολή μορφοποίησης < /B >.

 

Ο φυλλομετρητής θα παρουσιάζει στην οθόνη το κείμενο από το επιλεγμένο αρχείο, κατ'αναλογία με το πρόγραμμα more: Θα εμφανίζει τις πρώτες L το πλήθος γραμμές στην οθόνη, και εφόσον ο χρήστης πατήσει το πλήκτρο space-bar θα εμφανίζει τις επόμενες L γραμμές, ενώ θα δίνεται η δυνατότητα για διακοπή της παρουσίασης ενός αρχείου. Το πλήθος γραμμών L θα πρέπει να μπορεί να διαμορφωθεί δυναμικά (ξεκινώντας με την αρχική τιμή L=16).

 

Για κάθε ομάδα γραμμών του αρχείου που εμφανίζεται, ο φυλλομετρητής εντοπίζει τους συνδέσμους υπερκειμένου (hyperlinks) που τυχόν περιέχονται στις γραμμές αυτές, και παρέχει στον χρήστη την δυνατότητα να επιλέξει έναν από αυτούς, ώστε να σταματήσει η εμφάνιση γραμμών από το τρέχον αρχείο και να ξεκινήσει η παρουσίαση του αρχείου στο οποίο αναφέρεται ο επιλεγμένος σύνδεσμος. Για παράδειγμα, εαν η σελίδα που περιέχεται στο αρχείο a.html περιλαμβάνει ένα σύνδεσμο της μορφής <a href="pages/b.html">Click Here!</a> και ο χρήστης επιλέξει τον σύνδεσμο αυτό, ο φυλλομετρητής θα πρέπει να κλείσει το αρχείο a.html και να ξεκινήσει την εμφάνιση του αρχείου pages/b.html. Οι αναφορές σε αρχεία είναι σε σχέση με τον τρέχοντα κατάλογο αρχείων (current working directory). Ο φυλλομετρητής πρέπει να εκτυπώσει, για την ενημέρωση του χρήστη, τον "τίτλο" του συνδέσμου (Click Here! για το προηγούμενο παράδειγμα) καθώς και να αποδώσει στον σύνδεσμο ένα αναγνωριστικό (πχ αύξων αριθμός του συνδέσμου μέσα στην ομάδα γραμμών που παρουσιάζονται εκείνη τη στιγμή στην οθόνη) ώστε ο χρήστης να είναι σε θέση να επιλέξει τον σύνδεσμο.

 

Ο φυλλομετρητής πρέπει να υποστηρίζει την επιστροφή σε ένα αρχείο που είχε προηγούμενα εμφανιστεί στην οθόνη (λειτουργία Back). Ο φυλλομετρητής πρέπει να θυμάται τουλάχιστον τις H πιο πρόσφατες σελίδες. Η παράμετρος H θα πρέπει να μπορεί να καθοριστεί κατά την εκκίνηση του προγράμματος, με την χρήση προαιρετικού ορίσματος από την γραμμή εντολών. Εφόσον δεν δοθεί το όρισμα αυτό, η τιμή της παραμέτρου θα τίθεται ίση με 5. Εαν σε κάποια χρονική στιγμή δεν υπάρχει "προηγούμενη" σελίδα, τότε ο φυλλομετρητής δεν πρέπει να εμφανίζει την σχετική επιλογή στο μενού λειτουργιών που παρέχει στον χρήστη. Κατ'αναλογία, ο φυλλομετρητής πρέπει να υποστηρίζει την αναφορά στο "επόμενο" αρχείο (λειτουργία Forward).

 

Τέλος, ο φυλλομετρητής πρέπει να παρέχει την δυνατότητα για την εύρεση όλων των σελίδων που είναι προσπελάσιμες από μια δοθείσα σελίδα αφετηρίας. Η λειτουργία αυτή ("site-map") στηρίζεται στην εύρεση των συνδέσμων που περιέχει μια σελίδα, και την αναδρομική εύρεση όλων των συνδέσμων από τις σελίδες στις οποίες αναφέρονται οι σύνδεσμοι αυτοί. Πρέπει να ληφθεί υπόψιν το γεγονός ότι μπορεί να εμφανίζονται "κυκλικές αναφορές": Μια σελίδα a.html μπορεί να περιέχει σύνδεσμο που αναφέρεται στην σελίδα b.html, η οποία με την σειρά της να περιέχει σύνδεσμο που αναφέρεται στην σελίδα a.html. Ο φυλλομετρητής πρέπει να εντοπίσει όλες τις προσπελάσιμες σελίδες, δοθείσας της σελίδας αφετηρίας, και να εμφανίσει στον χρήστη κατάλογο με τους "τίτλους" των συνδέσμων, με την ένδειξη σε ποιό αρχείο περιέχεται ο καθένας, καθώς και να αποδώσει στον κάθε σύνδεσμο ένα αναγνωριστικό ώστε ο χρήστης να μπορεί να επιλέξει τον σύνδεσμο για να εμφανιστεί η αντίστοιχη σελίδα.

 

Μια σύντομη και επεξηγηματική εισαγωγή στην γλώσσα HTML μπορείτε να βρείτε στην διεύθυνση http://www.jmarshall.com/easy/html/. Ως παράδειγμα ενός φυλλομετρητή χωρίς γραφική διεπαφή χρήσης μπορείτε να δείτε το πρόγραμμα lynx

 

 

auta mas leei i ergasia k ola prepei na ta kanoume sti c <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/wink.gif" alt="" />

Δημοσ.

Στη C????? Δεν είναι ακατόρθωτο αλλά δεν νομίζω ότι γίνεται και σε μια μέρα (με τον δικό μου ρυθμό εργασίας) <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/grin.gif" alt="" />

Δημοσ.

Με την C θα πρεπει να κανεις πραγματα απο την αρχη για να πετυχεις τον σκοπο σου..θα σου παρει καποιο χρονο ...αν και ουσιαστικα το ολο θεμα ειναι να κανεις parse ενα mark up κειμενο..command line απ'οτι καταλαβα! το οποιο δεν ειναι και τοσο δυσκολο!

 

Με C++ και ιδιατερα με χρηση MFC και διαφορα lib που βοηθανε σε string manipulation κτλ κτλ to εγχειρημα ειναι πιο ευκολο..παλι θελει λιγο χρονο

 

Με ακομα πιο ευκολες γλωσσες οπως η c# και η Java το εγχειρημα με τα συγκεκριμενα spec ειναι πραγματικα ευκολο!

 

Ναι..γιατι ειναι μια καλη ασκηση και θα επωφεληθεις παρα πολυ μονο και μονο απο την προσπαθεια!

 

Δημοσ.

ʼρα το κεφάλι κάτω και δουλειά. Εγώ πριν χρόνια είχα κάνει στην σχολή μου C++ αλλά τώρα δεν θυμάμαι τίποτα, sorry...

Δημοσ.

xexe..

to koulo einai oti ti pempti dino to mathima k prepei na kano k tin askisi gia na peraso to mathima..

opote k ego leo na strotho k na to peraso giati den kano tpt allo oli mera..

mpanio...exodo...ipno k fagito..

i zoi sto irakleio :P

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...