ΗΥ-150 Programming. Assignment 3. HY150 Programming, University of Crete

Σχετικά έγγραφα
HY150a Φροντιστήριο 3 24/11/2017

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

Ευφυής Προγραμματισμός

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

SOAP API. Table of Contents

Δυναμική μνήμη με πίνακες και λίστες

Κων/νου Στυλιάδη. Εφαρµογή Video Club στην Access

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Επίλυση προβλήματος με Access

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Streams Input / Output in C++ George Kastrinis

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Οδηγίες Χρήσης της MySQL

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

KOHA ΧΡΗΣΤΕΣ ΜΙΑ ΠΛΟΗΓΗΣΗ ΣΤΗΝ ΟΘΟΝΗ ΤΟΥ ΧΡΗΣΤΗ

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Οδηγίες Χρήσης της MySQL

Αντικειμενοστραφής Προγραμματισμός

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

Ανοικτά Ακαδημαϊκά Μαθήματα

Εγχειρίδιο Δανειστικής Βιβλιοθήκης

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Οδηγίες Πρόσβασης στο EndNote Web. Πρόσβαση στο EndNote Web

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Document Scanning System Ιανουάριος, 2014

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Κατανεμημένα Συστήματα. Javascript LCR example

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΚΟΗΑ ΚΥΚΛΟΦΟΡΙΑ ΥΛΙΚΟΥ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ


ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Τίτλος Εργασίας Εκπαιδευτικού Σεναρίου

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός ΙΙ Εαρινό εξάμηνο Εργασία 3 Βιβλιοθήκη για λειτουργίες σε γράφους

Linux με τη χρήση κονσόλας

Ανοικτά Ακαδημαϊκά Μαθήματα

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ

Προγραμματισμός Δομές Δεδομένων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος

Slide 6 / 43. Slide 5 / 43. Α. Σαββίδης. Α. Σαββίδης. Slide 8 / 43. Slide 7 / 43. Α. Σαββίδης. Α. Σαββίδης HY340, 2009 HY340, 2009 HY340, 2009

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Wrapper Classes, Abstract Classes and Interfaces

ΟΔΗΓΙΕΣ ΣΥΝΤΑΞΗΣ /ΥΠΟΒΟΛΗΣ Δήλωσης Άφιξης Οχήματος- ΔΑΟ στο SEPAnet.

Μεθοδολογία Προγραμματισμού

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

Αντικειμενοστραφής Προγραμματισμός

SilverPlatter WebSPIRS 4.1.

Εργαστήριο #10 (Ε10) 1

Management Classes Create Class Create Class Management Classes List of Classes

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

ΥΠΗΡΕΣΙΑ ΣΠΟΥΔΩΝ ΚΑΙ ΦΟΙΤΗΤΙΚΗΣ ΜΕΡΙΜΝΑΣ. Οδηγός για Συμπλήρωση Αίτησης Εισδοχής. Ελλαδιτών Φοιτητών στο Πανεπιστήμιο Κύπρου ή/και το ΤΕΠΑΚ

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Φροντιςτήριο. Linked-List

ΥΠ.ΕΣ. - Δ.Μ.Η.Ε.Σ. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΛΗΞΙΑΡΧΕΙΟΥ V 1.2

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

γ. Στο διπλανό πλαίσιο λίστας μπορείτε αντί να ξαναγράψετε το όνομα κάποιου συγγραφέα- να το επιλέξετε από την αναδυόμενη λίστα του πλαισίου!

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Κων/νου Στυλιάδη. Εφαρµογή Βιβλιοθήκης σε Clipper

Αβδέλαρου Κωνσταντίνα

Οδηγίες Εγγραφής στις Εξετάσεις για Ανεξάρτητους Υποψηφίους

Βάσεις δεδομένων (Access)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Σημειωματάριο Δευτέρας 20 Νοε. 2017

HOWTO instal Joomla by A. Andreatos

Οδηγός Χρήσης Η-Βιβλίων Ebrary ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

Υπο-προγράμματα στη Fortran

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Πώς τροποποιούμε το Invenio;

Κλάσεις στην Python. Δημιουργία κλάσεων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Δίκτυα Η/Υ ςτην Επιχείρηςη

2 η Εργαστηριακή Άσκηση

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

Transcript:

ΗΥ-150 Programming Assignment 3 Assignment 3 Slide 1

Assignment 3 Ζητείται ένα πρόγραμμα διαχείρισης δανειστικής βιβλιοθήκης το οπόιο: να μεταφορτώνει μια μικρή βάση δεδομένων από αρχείο να την παρουσιάζει στο χρήστη να του δίνει τη δυνατότητα να την επεξεργάζεται να την αποθηκεύει για μεταγενέστερη χρήση Assignment 3 Slide 2

Assignment 3 Η βάση δεδομένων αποτελείται από μια συλλογή από καταχωρήσεις. Κάθε καταχώρηση (μέλος βιβλιοθήκης) ζητείται να περιέχει τα εξής στοιχεία: Όνομα Επώνυμο Αριθμός βιβλίων που δεν έχουν επιστραφεί ακόμα Οι τίτλοι των βιβλίων που έχει στην κατοχή του το μέλος χωρισμένοι με τον χαρακτήρα Το πρόγραμμα θα πρέπει να εκτελείται ως εξής: > a.out librarydata.txt όπου το αρχείο librarydata.txt είναι ένα αρχείο κειμένου το οποίο περιέχει τις καταχωρήσεις της βιβλιοθήκης (DataBase, DB) Assignment 3 Slide 3

Sample file Matthew Donnel 3 The Raven A Space Odyssey The Hobbit Peter Whatley 2 To kill a Mockingbird A clockwork Orange Ari Shapiro 1 Dune Paul Lem 2 The Invisible Man Submarine # of Books Book title Separator Book title Name Surname Assignment 3 Slide 4

Commands >p Εκτύπωση της βάσης με αλφαβητική σειρά (ώς προς το name) Παράδειγμα: Arnold Shapiro 1 Dune Matthew Donnel 3 The Raven A Space Odyssey The Hobbit Peter Whatley 2 To kill a Mockingbird A clockwork Orange >n Steve Albert Εγγραφή νέου μέλους με όνομα και επίθετο >b Steve Albert The Raven Δανεισμός του βιβλίου The Raven από το μέλος Steve Albert >r Steve Albert The Raven Επιστροφή του βιβλίου The Raven από το μέλος Steve Albert Assignment 3 Slide 5

Commands >h Steve Εκτύπωση των μελών με όνομα ή επίθετο Steve συνοδευόμενη του αριθμού των βιβλίων που έχουν δανειστεί άλλα δεν έχουν επιστρέψει ακόμα και από τους αντίστοιχους τίτλους. >d Steve Albert Διαγραφή του μέλους Steve Albert >q Tερματισμός προγράμματος και ενημέρωση του αρχείου librarydata.txt. Μπορείτε να υποθέσετε πως δε θα εμφανιστούν συνωνυμίες. Assignment 3 Slide 6

Error Correction Το πρόγραμμα ζητείται να τυπώνει σχετικά μηνύματα λάθους σε περίπτωση λανθασμένης εισόδου του χρήστη Εντολή d χωρίς όνομα Διαγραφή ανύπαρκτης καταχώρησης κ.α Assignment 3 Slide 7

Structs Για την αναπαράσταση και επεξεργασία της βάσης θα χρειαστούν 2 δομές δεδομένων. Την δομή Member που με τα πεδία name, surname, numberofbooks και ένα πεδίο για την λίστα με τα βιβλία που έχει στην κατοχή του ο χρήστης. Αυτή η λίστα αποτελείται από στοιχεία Book τα οπο ία θα έχουν το πεδίο title. Assignment 3 Slide 8

Structs Assignment 3 Slide 9

Vectors Assignment 3 Slide 10

Lists C style Implement whatever you want! (Lists, tables, vectors, classes ) Assignment 3 Slide 11

File Parsing Read file from arguments ifstream infile(argv[1]) Pay attention to string separators : ( ) Arnold Shapiro 1 Dune Matthew Donnel 3 The Raven A Space Odyssey The Hobbit Peter Whatley 2 To kill a Mockingbird A clockwork Orange Read characters (maybe push them to strings ) When a special character appears Do something Assignment 3 Slide 12

Command Parsing Each command has a unique form Pay attention to string separators : and, >d Steve Albert >b Steve Albert The Raven Surname Title of Book Name Command Read characters (maybe push them to strings ) Maybe use a switch to implement a shell When a special character appears Do something Assignment 3 Slide 13

Bonus 1 Ζητείται να δώσετε την δυνατότητα αποθήκευσης του είδους των βιβλίων που δανείζετε το εκάστοτε μέλος (History, Art, Horror, Poetry κτλ). Για την αποθήκευση αυτή χρειαζόμαστε την προσθήκη του πεδίου genre στην δομή Book. Σε αυτή την περίπτωση ένας νέος δανεισμός θα είναι υπό την μορφή: >b Mark Jones The Raven,Poetry >b Peter Parker Omnibus 2,Horror Check input parsing for special chars, Make new field to struct Book Το είδος του βιβλίου θα πρέπει να αποθηκεύεται και αυτό στην βάση δεδομένων με τον εξής τρόπο: Matthew Donnel 3 The Raven(Poetry) A Space Odyssey(Fiction) The Hobbit(Adventure) Special chars ( and ) Assignment 3 Slide 14

Bonus 2 Αφού κάνετε την προσθήκη είδους βιβλίου (Bonus 1) υλοποιήστε και την παρακάτω εντολή >f Mark Jones που θα επιστρέφει το αγαπημένο είδος βιβλίου του μέλους (εκείνο που έχει δανειστεί περισσότερες φορές) Example Matthew Donnel 3 Dune(Fiction) A Space Odyssey(Fiction) The Hobbit(Adventure) Peter Whatley 2 To kill a Mockingbird(Adventure) A clockwork Orange(Horror) >f Matthew Donnel Favorite genre: Fiction Assignment 3 Slide 15

Extra Material Vectors http://www.cplusplus.com/reference/vector/vector/ http://stackoverflow.com/questions/8067338/c-vector-of-structs-initialization http://www.cplusplus.com/forum/general/69722/ Structs http://www.cplusplus.com/doc/tutorial/structures/ http://stackoverflow.com/questions/2889232/how-to-make-a-struct-of-structs-in-c File streams http://www.cplusplus.com/doc/tutorial/files/ Get chars of string (parsing strings) http://www.cplusplus.com/reference/string/string/at/ Search also for file parsing in C++ Assignment 3 Slide 16

Construct Data types Parse input (user commands) Read DB Apply changes Update DB or print message Summary Assignment 3 Slide 17

Questions Assignment 3 Slide 18