By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Το τμήμα συντήρησης μιας βιομηχανικής μονάδας διατηρεί αρχείο βλαβών για το μηχανολογικό εξοπλισμό της μονάδας, καταχωρώντας τις εξής πληροφορίες για κάθε στοιχείο του εξοπλισμού (όλες οι τιμές είναι τύπου int) :
1. Κωδικός μηχανής (τιμές 1-20)
2. Κατηγορία βλάβης (επιτρεπτές τιμές 1-10)
3. Πλήθος ωρών κατά τις οποίες το στοιχείο τέθηκε εκτός λειτουργίας (θετικός αριθμός)
Το αρχείο είναι σειριακό, δίνεται, και έχει όνομα maintenance.txt. Μερικές γραμμές του αρχείου είναι:
45 3 52
3 2 8

45 5 127
….
Κάθε κωδικός μηχανής μπορεί να υπάρχει περισσότερες από μία φορές στο αρχείο.
Να οριστεί μια δομή με όνομα maintenance για τη διαχείριση αυτών των δεδομένων. Τα μέλη της δομής θα είναι αυτές οι πληροφορίες.
Να οριστεί ένας πίνακας δομών τύπου maintenance, Ν θέσεων (Ν = γνωστό) .
Τα δεδομένα στον πίνακα δομών θα εισάγονται μέσω προσπέλασης του σειριακού αρχείου maintenance.txt . Να θεωρήσετε ως δεδομένο ότι η τιμή του N υπερκαλύπτει το πλήθος των εγγραφών του αρχείου.
Ζητούνται τα παρακάτω (συνάρτηση main( ) ):
1. να γίνει η εισαγωγή των δεδομένων από το αρχείο maintenance.txt στον πίνακα δομών, ελέγχοντας την ύπαρξη του αρχείου (δείτε τον κώδικα στη συνέχεια), σύμφωνα με τoν ανωτέρω περιορισμό. Να βρείτε και να εμφανίσετε το πλήθος των γραμμών του αρχείου που θα περιέχει ο πίνακας δομών [ΜΟΝΑΔΕΣ 3].
2. Χρησιμοποιώντας όλα τα στοιχεία του πίνακα δομών να βρείτε και να εμφανίσετε :
a. Το πλήθος των βλαβών ανά κατηγορία βλαβών.
b. Το σύνολο των ωρών εκτός λειτουργίας για μία μηχανή, εάν ο κωδικός της μηχανής εισάγεται από το χρήστη.
FILE *fp;
errno_t err;

if (err=(fopen_s(&fp,filename,mode))!=0)
{
printf(\"error reading file....\\n\");
exit(1);
}
else // reading from file

\r\n

{