📋 Πληροφορίες Εργασίας
Μάθημα:
Προγραμματισμός σε C
Θεματική Ενότητα:
Κεφάλαια 1-5 (Βασικές Έννοιες, Μεταβλητές, Δομές Ελέγχου, Πίνακες, Συναρτήσεις)
Βαθμολογία:
10 μονάδες
Απαιτούμενες Λειτουργίες:
11 πλήρεις λειτουργίες
Τρόπος Υποβολής:
Αρχείο .c με πλήρη σχολιασμό
🎯 Περιγραφή Εργασίας
Να αναπτύξετε ένα πρόγραμμα σε γλώσσα C που θα λειτουργεί ως σύστημα διαχείρισης βαθμολογίας μαθητών. Το πρόγραμμά σας θα πρέπει να διαβάζει τους βαθμούς 5 μαθητών, να υπολογίζει στατιστικά στοιχεία και να εμφανίζει τα αποτελέσματα με οργανωμένο τρόπο μέσω ενός διαδραστικού μενού.
📋 Απαιτήσεις - Οι 11 Λειτουργίες
Το πρόγραμμά σας θα πρέπει να υλοποιεί όλες τις παρακάτω 11 λειτουργίες:
1Μενού επιλογών με επανάληψη
- Δημιουργήστε μενού με επιλογές:
- Εισαγωγή βαθμών
- Εμφάνιση στατιστικών
- Αναζήτηση μαθητή
- Έξοδος
- Χρησιμοποιήστε βρόχο do-while για επανάληψη
- Χρησιμοποιήστε switch-case για τις επιλογές
2Δημιουργία πινάκων για δεδομένα
- Πίνακας int grades[5] για 5 βαθμούς
- Πίνακας char names[5][50] για τα ονόματα (5 μαθητές, 50 χαρακτήρες)
3Εισαγωγή ονομάτων και βαθμών με έλεγχο
- Διαβάστε το όνομα κάθε μαθητή με scanf("%s", names[i])
- Διαβάστε 5 βαθμούς με έλεγχο ορίων (0-100)
- Αν ο βαθμός είναι εκτός ορίων, ζητήστε ξανά
4Υπολογισμός μέσου όρου
- Υπολογίστε το άθροισμα με βρόχο
- Διαιρέστε με 5 (χρησιμοποιήστε (float) για δεκαδικά)
- Εμφανίστε με 2 δεκαδικά ψηφία
5Εύρεση μέγιστου και ελάχιστου βαθμού
- Βρείτε τον υψηλότερο βαθμό και το όνομα του μαθητή
- Βρείτε τον χαμηλότερο βαθμό και το όνομα του μαθητή
6Μετατροπή αριθμητικού βαθμού σε γράμμα
- 90-100 → A (Άριστα)
- 80-89 → B (Πολύ Καλά)
- 70-79 → C (Καλά)
- 60-69 → D (Μέτρια)
- 0-59 → F (Αποτυχία)
7Καταμέτρηση επιτυχόντων
- Μετρήστε πόσοι μαθητές πέρασαν (βαθμός ≥ 50)
- Υπολογίστε το ποσοστό επιτυχίας
8Ταξινόμηση βαθμών
- Ταξινομήστε τους βαθμούς από τον μικρότερο στον μεγαλύτερο
- Εμφανίστε τους ταξινομημένους βαθμούς
9Αναζήτηση μαθητή
- Ζητήστε όνομα μαθητή
- Αναζητήστε συγκρίνοντας χαρακτήρα-χαρακτήρα
- Εμφανίστε τον βαθμό και το γράμμα αν βρεθεί
10Εμφάνιση πλήρων στατιστικών
- Λίστα όλων των μαθητών με βαθμούς και γράμματα
- Μέσος όρος με γράμμα
- Μέγιστος/ελάχιστος με ονόματα
- Αριθμός και ποσοστό επιτυχόντων
- Ταξινομημένοι βαθμοί
11Οργάνωση και εμφάνιση
- Ευανάγνωστη μορφοποίηση
- Τίτλοι και διαχωριστές
- Το μενού επαναλαμβάνεται μετά από κάθε επιλογή
💻 Παραδείγματα Εκτέλεσης
Παράδειγμα 1: Εκκίνηση και Μενού
$ ./sistema_bathmologias
====================================
ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΘΜΟΛΟΓΙΑΣ
====================================
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 1
Παράδειγμα 2: Εισαγωγή Βαθμών
====================================
ΕΙΣΑΓΩΓΗ ΒΑΘΜΩΝ
====================================
Εισάγετε όνομα μαθητή 1: Γιώργος
Εισάγετε βαθμό (0-100): 85
Εισάγετε όνομα μαθητή 2: Μαρία
Εισάγετε βαθμό (0-100): 92
Εισάγετε όνομα μαθητή 3: Νίκος
Εισάγετε βαθμό (0-100): 78
Εισάγετε όνομα μαθητή 4: Ελένη
Εισάγετε βαθμό (0-100): 65
Εισάγετε όνομα μαθητή 5: Κώστας
Εισάγετε βαθμό (0-100): 88
✅ Οι βαθμοί αποθηκεύτηκαν επιτυχώς!
Παράδειγμα 3: Έλεγχος Ορίων
Εισάγετε όνομα μαθητή 1: Πέτρος
Εισάγετε βαθμό (0-100): 105
❌ Μη έγκυρος βαθμός! Πρέπει να είναι μεταξύ 0 και 100.
Εισάγετε βαθμό (0-100): 95
Εισάγετε όνομα μαθητή 2: Άννα
Εισάγετε βαθμό (0-100): -5
❌ Μη έγκυρος βαθμός! Πρέπει να είναι μεταξύ 0 και 100.
Εισάγετε βαθμό (0-100): 72
Παράδειγμα 4: Εμφάνιση Στατιστικών (Πλήρης Έξοδος)
====================================
ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΘΜΟΛΟΓΙΑΣ
====================================
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 2
====================================
ΣΤΑΤΙΣΤΙΚΑ ΒΑΘΜΟΛΟΓΙΑΣ
====================================
📊 ΛΙΣΤΑ ΜΑΘΗΤΩΝ:
------------------------------------
1. Γιώργος : 85 (B - Πολύ Καλά)
2. Μαρία : 92 (A - Άριστα)
3. Νίκος : 78 (C - Καλά)
4. Ελένη : 65 (D - Μέτρια)
5. Κώστας : 88 (B - Πολύ Καλά)
📈 ΓΕΝΙΚΑ ΣΤΑΤΙΣΤΙΚΑ:
------------------------------------
Μέσος όρος : 81.60 (B - Πολύ Καλά)
Μέγιστος βαθμός: 92 (A) - Μαρία
Ελάχιστος βαθμός: 65 (D) - Ελένη
✅ ΕΠΙΤΥΧΟΝΤΕΣ:
------------------------------------
Αριθμός επιτυχόντων: 5/5 μαθητές
Ποσοστό επιτυχίας : 100.00%
📋 ΤΑΞΙΝΟΜΗΜΕΝΟΙ ΒΑΘΜΟΙ:
------------------------------------
65, 78, 85, 88, 92
Παράδειγμα 5: Αναζήτηση Μαθητή (Βρέθηκε)
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 3
====================================
ΑΝΑΖΗΤΗΣΗ ΜΑΘΗΤΗ
====================================
Εισάγετε όνομα μαθητή: Μαρία
✓ Μαθητής βρέθηκε!
------------------------------------
Όνομα: Μαρία
Βαθμός: 92
Αξιολόγηση: A (Άριστα)
Παράδειγμα 6: Αναζήτηση Μαθητή (Δεν Βρέθηκε)
====================================
ΑΝΑΖΗΤΗΣΗ ΜΑΘΗΤΗ
====================================
Εισάγετε όνομα μαθητή: Πέτρος
❌ Ο μαθητής 'Πέτρος' δεν βρέθηκε στο σύστημα.
Παράδειγμα 7: Έξοδος από το Πρόγραμμα
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 4
Ευχαριστούμε! Το πρόγραμμα τερματίστηκε.
Παράδειγμα 8: Μη Έγκυρη Επιλογή Μενού
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 9
❌ Μη έγκυρη επιλογή! Παρακαλώ επιλέξτε 1-4.
--- ΜΕΝΟΥ ---
1. Εισαγωγή βαθμών
2. Εμφάνιση στατιστικών
3. Αναζήτηση μαθητή
4. Έξοδος
Επιλέξτε λειτουργία (1-4): 2
⚠️ Παρακαλώ εισάγετε πρώτα τους βαθμούς (επιλογή 1)!
📊 Κριτήρια Αξιολόγησης
| Κριτήριο | Ποσοστό | Περιγραφή |
|---|---|---|
| Ορθότητα | 35% | Το πρόγραμμα λειτουργεί σωστά και δίνει σωστά αποτελέσματα |
| Πληρότητα | 35% | Υλοποίηση όλων των 11 απαιτούμενων λειτουργιών |
| Ποιότητα κώδικα | 20% | Ευκρίνεια, οργάνωση, σχόλια, ονόματα μεταβλητών |
| Έλεγχος σφαλμάτων | 10% | Χειρισμός ακραίων περιπτώσεων και εσφαλμένων δεδομένων |
⚠️ Σημαντική Σημείωση
Όλες οι 11 λειτουργίες πρέπει να υλοποιηθούν πλήρως για να θεωρηθεί επιτυχημένη η εργασία. Μη ολοκληρωμένες εργασίες θα βαθμολογούνται αναλογικά.
📤 Οδηγίες Υποβολής
Τι πρέπει να περιέχει η υποβολή σας:
- Αρχείο κώδικα (.c): Με όνομα onoma_epiteto_AM.c
- Σχόλια στον κώδικα:
- Στην αρχή: Όνομα, ΑΜ, ημερομηνία
- Σε κάθε συνάρτηση: Τι κάνει
- Σε σημαντικά σημεία: Εξήγηση λογικής
- Μεταγλωττισμένο πρόγραμμα: Βεβαιωθείτε ότι μεταγλωττίζεται χωρίς σφάλματα
💡 Συμβουλές Επιτυχίας
✅ Πώς να Ξεκινήσετε
- Δημιουργήστε πρώτα το βασικό μενού με do-while και switch
- Υλοποιήστε την εισαγωγή βαθμών με έλεγχο
- Προσθέστε μία-μία τις υπόλοιπες λειτουργίες
- Δοκιμάστε κάθε λειτουργία ξεχωριστά
- Τέλος, ενοποιήστε όλα μαζί
⚠️ Συνηθισμένα Λάθη που Πρέπει να Αποφύγετε
- ❌ Ξεχνάτε τον έλεγχο ορίων (0-100) στην εισαγωγή βαθμών
- ❌ Δεν βάζετε break στον βρόχο αναζήτησης
- ❌ Ξεχνάτε το (float) στη διαίρεση για δεκαδικά
- ❌ Οι πίνακες ξεκινούν από 0, όχι από 1
- ❌ Ξεχνάτε να αρχικοποιείτε τις μεταβλητές
✅ Checklist Πριν την Υποβολή
Ελέγξτε τα παρακάτω:
- ☐ Το πρόγραμμα μεταγλωττίζεται χωρίς errors
- ☐ Χρησιμοποιώ συναρτήσεις για οργάνωση του κώδικα
- ☐ Όλες οι 11 λειτουργίες δουλεύουν
- ☐ Το μενού επαναλαμβάνεται μέχρι την έξοδο
- ☐ Ο έλεγχος ορίων (0-100) λειτουργεί
- ☐ Η αναζήτηση βρίσκει ΚΑΙ δεν βρίσκει σωστά
- ☐ Τα στατιστικά υπολογίζονται σωστά
- ☐ Η ταξινόμηση δουλεύει
- ☐ Έχω σχόλια στον κώδικα
- ☐ Το αρχείο έχει σωστό όνομα
🎓 Τι θα μάθετε από αυτή την εργασία
Με την ολοκλήρωση αυτής της εργασίας θα έχετε εξασκηθεί σε:
- ✅ Δομημένο προγραμματισμό με συναρτήσεις
- ✅ Διαδραστικά μενού με switch-case
- ✅ Χειρισμό πινάκων (int και char)
- ✅ Αλγόριθμους αναζήτησης και ταξινόμησης
- ✅ Έλεγχο εισόδου και χειρισμό σφαλμάτων
- ✅ Υπολογισμούς και στατιστική ανάλυση
- ✅ Χρήση συναρτήσεων με παραμέτρους και επιστροφή τιμών
Καλή επιτυχία με την εργασία σας! 🚀