CS 150 Assignment 2 Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A
CS 150 Assignment 2 Overview Ζητείται ένα πρόγραμμα το διαβάζει από ένα αρχείο ένα κατάλογο ΑΜ, βαθμών και ονομάτων μαθητών, διαχωρισμένα με ένα κενό το κάθε ένα. Συγκεκριμένα, κάθε του γραμμή περιέχει τα εξής στοιχεία: [ΑΜ] [Όνομα] [Επώνυμο] [διεύθυνση ηλεκτρονικού ταχυδρομείου] [Βαθμός 1] [Βαθμός 2] [Βαθμός 3].
CS 150 Assignment 2 Overview Κατά την εκτέλεση του, το πρόγραμμα ζητείται να τοποθετεί στην κύρια μνήμη τον κατάλογο που περιέχεται στο αρχείο και να εμφανίζει μια γραμμή εντολών (command prompt) με την οποία ο χρήστης θα μπορεί να δίνει εντολές για τη διαχείριση του καταλόγου. Οι ζητούμενες εντολές που μπορούν να δοθούν στη γραμμή εντολών είναι:
CS 150 Assignment 2 Overview >pa εκτύπωση των καταχωρήσεων με αλφαβητική σειρά, με βάση το επώνυμο. >ps τα ονόματα των μαθητών και τα υπόλοιπα στοιχεία τους, ταξινομημένα με φθίνουσα σειρά με βάση τον τελικό βαθμό των φοιτητών. > f georgiou εκτύπωση των καταχωρήσεων που το όνομα ή το επώνυμο περιέχουν το αλφαριθμητικό georgiou σε μικρά ή κεφαλαία, > d Nikos Georgiou διαγραφή της καταχώρησης που αφορά τον φοιτητή με όνομα και επώνυμο την πρώτη και δεύτερη λέξη της εντολής, αντίστοιχα, > m Εκτύπωση του (α) Τελικού βαθμού του κάθε φοιτητή. Ο τελικός βαθμός του κάθε μαθητή ορίζεται ως ο μέσος όρος των τριών βαθμών του, (β) Τον μέσο όρο κάθε άσκησης για όλους τους φοιτητές, (γ) Τον μέσο όρο βαθμολογίας όλης της τάξης (δ) τον διάμεσο βαθμολογίας όλης της τάξης. >i Giorgos Nikolaou gnik@example.address.gr 6 9 10 εισαγωγή καταχώρησης, όνομα, επώνυμο, διεύθυνση ηλεκτρονικού ταχυδρομείου, και βαθμοί. >q τερματισμός προγράμματος.
CS 150 Assignment 2 Overview Το πρόγραμμα θα πρέπει να τυπώνει σχετικά μηνύματα λάθους σε περίπτωση λανθασμένης εισόδου του χρήστη και να μην επιτρέπει την εκτέλεση των αντίστοιχων εντολών (π.χ. εντολή d χωρίς όνομα, λάθος αριθμός ορισμάτων, συντακτικά λανθασμένη διεύθυνση ηλεκτρονικού ταχυδρομείου). Εάν θέλετε μπορείτε να υποθέσετε πως ισχύουν τα παρακάτω. Τα ονόματα και διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι παραπάνω από 50 χαρακτήρες. Όλοι οι χαρακτήρες είναι λατινικοί. Σε οποιαδήποτε στιγμή, ο κατάλογος δεν περιέχει παραπάνω από 100 καταχωρήσεις. Συνωνυμίες μπορούν να υπάρχουν στα επώνυμα και στα ονόματα αλλά όχι και στα δύο ταυτόχρονα. Βοήθεια 1: Διάμεσος (Median) είναι η τιμή εκείνη της μεταβλητής που χωρίζει το σύνολο των τιμών σε δυο ίσα μέρη, ώστε ο αριθμός των παρατηρήσεων που είναι μικρότερες από το Μ, να είναι ίσος με τον αριθμό αυτών που είναι μεγαλύτερες από το Μ. Περισσότερα εδώ: http://goo.gl/jzbov1
CS 150 Assignment 2 Overview Πώς σας φαίνεται?
CS 150 Assignment 2 Overview Χρειαζόμαστε : Ένα απλό commandline interface Να ανοίγουμε αρχεία και να τα διαβάζουμε γραμμή γραμμή Η κάθε γραμμή να χωρίζεται και αποθηκεύεται σε κάποια arrays Να μπορούμε να τα ταξινομήσουμε ( όλους τους πίνακες με βάση 1 ) Να μπορούμε να ψάξουμε κάποια συγκεκριμένη καταχώρηση Να μπορούμε να προσθέσουμε κάποια καταχώρηση Να μπορούμε να σβήσουμε κάποια καταχώρηση Να μπορούμε να αθροίσουμε βαθμούς σε καταχωρήσεις Να γράφουμε αρχεία για να μην χάνονται τα δεδομένα μας
CS 150 Arrays Γενικά τα arrays και κατα συνέπεια ( πιο γενικευμένα pointers / memory management ) είναι από τα πιο σημαντικά topics τα οποία οδηγούν σε πολύ μεγάλα και αόρατα προβλήματα. https://en.wikipedia.org/wiki/list_of_software_bugs
CS 150 Arrays http://www.around.com/ariane.html This shutdown occurred 36.7 seconds after launch, when the guidance system's own computer tried to convert one piece of data -- the sideways velocity of the rocket -- from a 64-bit format to a 16-bit format. The number was too big, and an overflow error resulted. When the guidance system shut down, it passed control to an identical, redundant unit, which was there to provide backup in case of just such a failure. But the second unit had failed in the identical manner a few milliseconds before. And why not? It was running the same software.
CS 150 Arrays
CS 150 Arrays
CS 150 Arrays
CS 150 Arrays int namei[100]; What happens if we : namei[110] = 0;? Is there a difference between? int IA, int IB[1];
CS 150 Arrays Ex 4. cpp
CS 150 File I/O Πώς παίρνουμε file Input?
CS 150 File I/O Πώς γράφουμε file Output?
CS 150 Arrays Ex 2. cpp
CS 150 File I/O Πώς ταξινομούμε? Προσοχή synchronization πινάκων Προσοχή case insensitive..! Ex2.cpp & Ex3.cpp & Ex5.cpp
CS 150 Arrays 2 Ερωτήσεις? Παρασκευή δεν θα γίνει αναπλήρωση Μην αφήσετε την εργασία τελευταία στιγμή Comments / Indentation / Style etc matter Error checking matters