#include #include #include #define MAX_NAME 50 #define MAX_NUM 50 typedef struct { char name[MAX_NAME]; char surname[MAX_NAME]; char number[MAX_NUM]; } Student; void insertStudent(Student *student) { char number[MAX_NUM]; int flag = 0; printf("Enter name: "); scanf("%s", student->name); printf("Enter surname: "); scanf("%s", student->surname); do { printf("Enter number: "); scanf("%s", student->number); flag = 0; FILE *fp = fopen("ogrenci.txt", "r"); char name[MAX_NAME], surname[MAX_NAME], num[MAX_NUM]; while (fscanf(fp, "%s %s %s", name, surname, num) != EOF) { if (strcmp(student->number, num) == 0) { printf("Farkli id Giriniz..\n"); flag = 1; break; } } fclose(fp); } while (flag); FILE *fp = fopen("ogrenci.txt", "a"); fprintf(fp, "%s %s %s ", student->name, student->surname, student->number); fclose(fp); } void updateStudent(char *number, Student *student) //dosyadaki veriyi güncelleme { FILE *fp = fopen("ogrenci.txt", "r"); FILE *fp2 = fopen("ogrenci2.txt", "w"); char name[MAX_NAME]; char surname[MAX_NAME]; char num[MAX_NUM]; int flag = 0; while (fscanf(fp, "%s %s %s", name, surname, num) != EOF) { if (strcmp(num, number) == 0) { printf("Enter name: "); scanf("%s", student->name); printf("Enter surname: "); scanf("%s", student->surname); fprintf(fp2, "%s %s %s ", student->name, student->surname, num); flag = 1; } else { fprintf(fp2, "%s %s %s ", name, surname, num); } } fclose(fp); fclose(fp2); remove("ogrenci.txt"); rename("ogrenci2.txt", "ogrenci.txt"); if (flag == 0) { printf("No student"); } } void deleteStudent(char *number) //dosyadaki veriyi silme { FILE *fp = fopen("ogrenci.txt", "r"); FILE *fp2 = fopen("ogrenci2.txt", "w"); char name[MAX_NAME]; char surname[MAX_NAME]; char num[MAX_NUM]; while (fscanf(fp, "%s %s %s", name, surname, num) != EOF) { if (strcmp(num, number) != 0) { fprintf(fp2, "%s %s %s ", name, surname, num); } } fclose(fp); fclose(fp2); remove("ogrenci.txt"); rename("ogrenci2.txt", "ogrenci.txt"); } void listStudents() //dosyadaki verileri listeleme { FILE *fp = fopen("ogrenci.txt", "r"); char name[MAX_NAME]; char surname[MAX_NAME]; char number[MAX_NUM]; while (fscanf(fp, "%s %s %s", name, surname, number) != EOF) { printf("%s %s %s \n", name, surname, number); } fclose(fp); } int main() { Student * student; // bir struct oluşturuluyor. student = (Student *)malloc(sizeof(Student)); //Struct için sistemden bellek alınıyor if(!student){ printf("bellek hatası"); return 1; } char number[MAX_NUM]; int sec; while (1) { printf("\n1-Insert Student 2-Update Student 3-Delete Student 4-List Students 5-Exit\n"); scanf("%d", &sec); switch (sec) { case 1: insertStudent(&student); break; case 2: printf("Enter number: "); scanf("%s", number); updateStudent(number, &student); break; case 3: printf("Enter number: "); scanf("%s", number); deleteStudent(number); break; case 4: listStudents(); break; case 5: exit(0); break; default: printf("Wrong choice"); } } return 0; }