ΚΑΛΗΣΠΕΡΑ ΣΑΣ ,ΣΤΟΝ ΠΑΡΑΚΑΤΩ ΚΩΔΙΚΑ ΑΝΤΙΜΕΤΟΠΙΖΩ ΕΝΑ ΠΡΟΒΛΗΜΑ ΥΠΑΡΧΕΙ ΚΑΠΟΙΟΣ ΓΝΩΣΤΗΣ ΝΑ ΜΟΥ ΤΟ ΛΥΣΕΙ ;
ΟΙ ΣΥΝΑΡΤΗΣΕΙΣ ΠΟΥ ΧΡΗΣΗΜΟΠΟΙΟΥΝΤΑΙ ΒΡΙΣΚΟΝΤΑΙ ΥΛΟΠΟΙΗΜΕΝΕΣ ΣΕ ΕΝΑ ΑΛΛΟ ΔΙΣΔΙΑΣΤΑΤΟ ΑΡΧΕΙΟ ΣΥΝΔΕΔΕΜΕΝΟ ΜΕ ΤΗΝ MAIN,ΤΟ ΠΡΟΒΛΗΜΑ ΕΙΝΑΙ ΠΩΣ ΕΝΩ ΤΡΕΧΕΙ ΚΑΝΟΝΙΚΑ ΣΤΑΜΑΤΑΕΙ ΑΚΡΙΒΩΣ ΣΤΟ ΣΗΜΕΙΟ ΜΕΤΑ ΤΗΝ printmenu(); ΟΠΟΥ ΖΗΤΑ ΚΑΙ ΤΗΝ ΕΠΙΛΟΓΗ ΚΑΙ ΤΕΛΟΣ ΣΕ ΒΓΑΖΕΙ ΕΚΤΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΚΑΙ ΠΡΕΠΕΙ ΝΑ ΤΟ ΞΑΝΑΤΡΕΞΕΙΣ ΜΕΤΑ, ΕΧΩ ΚΑΝΕΙ ΠΟΛΛΕΣ ΔΟΚΙΜΕΣ-ΑΛΛΑΓΕΣ ΤΙΠΟΤΑ ΔΕΝ ΛΕΙΤΟΥΡΓΕΙ !
ΚΑΠΟΙΑ ΠΡΟΤΑΣΗ - ΛΥΣΗ !;
Ο ΚΩΔΙΚΑΣ :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
#include "students.h"
int main(int argc, char *argv[]){
student s;
srand(time(NULL));
printf("GIVE US YOUR FILENAME!\n");
char filen;
scanf("%s",&filen);
int ids,id1,id2,id3,id4,pr;
char nam[25],n3[25],n[25];
list L=malloc(sizeof(struct listR));
L->head=NULL;
L->tail=NULL;
printMenu();
//ΦΟΡΤΩΣΗ ΤΟΥ ΑΡΧΕΙΟΥ
load(filen,&L);
//ΕΚΤΥΠΩΣΗ ΤΟΥ ΜΕΝΟΥ ΕΠΙΛΟΓΩΝ
int choice;
printf("GIVE US YOUR NUMBER-CHOICE !");
scanf("%d", &choice);
if (isdigit(choice)==1){
}
else{
printf("THE ENTRANCE WAS WRONG !\n");
}
while(isdigit(choice)==1){
while(choice>=1 && choice<=6){
//ΕΠΙΛΟΓΗ ΠΡΟΣΘΕΣΗΣ ΝΕΟΥ ΜΑΘΗΤΗ ΣΤΗΝ ΛΙΣΤΑ
if (choice==1){
printf("GIVE THE NAME OF THE STUDENT \n");
scanf("%s",n);
printf("GIVE THE ID OF THE STUDENT\n");
scanf("%ld",&ids);
strcpy(s.name, n);
s.id = ids;
if (isError(addStudent(s,L))==0){
addStudent(s,L);
}
else{
printf("THERE WAS AN ERROR FANCTION!\n");
break;
}}
//ΕΠΙΛΟΓΗ ΑΦΑΙΡΕΣΗΣ ΜΑΘΗΤΗ ΑΠΟ ΛΙΣΤΑ
else if(choice==2){
printf("GIVE THE ID OF THE STUDENT YOU WANT TO DELETE!");
scanf("%ld",&id1);
if (isError(deleteStudentById(id1,L))==0){
deleteStudentById(id1,L);
}
else{
printf("THERE WAS AN ERROR FUNCTION!\n");
break;
}
}
//ΕΠΙΛΟΓΗ ΑΝΑΖΗΤΗΣΗΣ ΜΑΘΗΤΗ ΑΠΟ ΛΙΣΤΑ
else if(choice==3){
printf("GIVE THE ID OF THE STUDENT YOU WANT TO SEARCH!");
scanf("%ld",&id2);
if( isError(findStudent(id2,L,&s))==0){
findStudent(id2 ,L ,&s);
}
else{
printf("THERE WAS AN ERROR FUNCTION!\n");
break;
}
}
//ΕΠΙΛΟΓΗ ΑΝΑΝΕΩΣΗΣ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΤΟΥ ΜΑΘΗΤΗ
else if(choice==4){
printf("PLEASE PROVIDE US WITH THE ID OF THE STUDENT YOU WANT TO UPDATE\n");
scanf("%ld",&id3);
printf("PLEASE PROVIDE US WITH THE NAME YOU WANT TO UPDATE THE STUDENT!\n");
scanf("%s",n3);
s.id = id3;
//updateStudent( s,L);
if (isError(updateStudent(s,L))==0){
updateStudent(s,L);
}
else{
printf("THERE WAS AN ERROR FANCTION!\n");
break;
}
}
//ΕΠΙΛΟΓΗ ΕΚΤΥΠΩΣΗΣ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΕΝΟΣ Η ΟΛΩΝ ΤΩΝ ΜΑΘΗΤΩΝ ΤΗΣ ΛΙΣΤΑΣ
else if(choice==5){
printf("GIVE 1 IF YOU WANT TO PRINT ONE STUDENT ,OR GIVE 2 IF YOU WANT TO PRINT ALL OF THEM!\n");
scanf("%d",&pr);
if (pr==1){
printf("PREASE GIVE THE NAME OF THE STUDENT !\n");
scanf("%s",&nam);
printf("PLEASE GIVE TH ID OF THE STRUDENT !\n");
scanf("%ld",&id4);
strcpy(s.name, nam);
s.id = id4;
printStudent(s);
}
else if (pr==2){
printStudents(L);
}
}
//ΕΠΙΛΟΓΗ ΕΞΟΔΟΥ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ
if (choice==6){
printf("YOU WANTED TO EXIT THE PROGRAM ,BYE!!!\n");
exit(1);
}
printMenu();
printf("GIVE US YOUR NUMBER-CHOICE !");
scanf("%d", &choice);
if (isdigit(choice)==1){
}
else{
printf("THE ENTRANCE WAS WRONG !\n");
}
//ΑΠΟΘΗΚΕΥΣΗ ΑΡΧΕΙΟΥ
save(filen,L);
}}}