Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #define NSTUDENTS 2
- #define NAME_LENGTH 16
- #define GROUP_LENGTH 7
- struct student
- {
- char name[NAME_LENGTH];
- char group[GROUP_LENGTH];
- int ses[5];
- }students[NSTUDENTS],fstudents[NSTUDENTS],tmp;
- int main()
- {
- FILE *fp;
- int b, i, j, counter=0, f=0, n;
- char search[16];
- for (i=0; i<NSTUDENTS; i++)//
- {
- printf("enter the surname and initials <max 16 symbols>: ");
- gets(students[i].name);
- if (strlen(students[i].name)>NAME_LENGTH)
- {
- printf("Name is out of range");
- return EXIT_FAILURE;
- }
- printf("enter the group number <max 7 symbols>: ");
- scanf("%s", &students[i].group);
- getchar();
- if (strlen(students[i].group)>GROUP_LENGTH)
- {
- printf("Group name is out of range");
- return EXIT_FAILURE;
- }
- printf("enter the marks: \n");
- for (j=0; j<5; j++)
- {
- scanf("%d", &students[i].ses[j]);
- }
- getchar();
- }
- i=0;
- while (i<(NSTUDENTS-1))//
- {
- b=0;
- while (b<NSTUDENTS)
- if (students[i].name[b]>students[i+1].name[b])
- {
- tmp=students[i];
- students[i]=students[i+1];
- students[i+1]=tmp;
- b=10;
- i=0;
- }
- else
- {
- if (students[i].name[b]==students[i+1].name[b])
- {
- b++;
- }
- else
- {
- i++;
- b=10;
- }
- }
- }
- printf("\nsorted students: \n");//
- for (i=0; i<NSTUDENTS; i++)
- printf("\nstudent: %-32s group: %s", students[i].name, students[i].group);
- printf("\n");
- printf("\nstudents w/ a bad mark: \n");//
- for (i=0; i<NSTUDENTS; i++)
- {
- for (j=0; j<5; j++)
- {
- if (students[i].ses[j]==2)
- {
- printf("\nstudent: %-32s group: %s", students[i].name, students[i].group);
- counter++;
- break;
- }
- }
- }
- if (counter==0)
- printf("\nwe don't have such a students\n");
- fp=fopen("structures.txt", "wb"); //
- if (fp!=NULL)
- {
- printf("\nthe file structures.txt was created successfully for writing\n") ;
- }
- else
- {
- fprintf(stderr,"the file can't be created or open\n");
- return EXIT_FAILURE;
- }
- for (i=0; i<NSTUDENTS; i++)
- {
- fprintf(fp, "%s %s ", students[i].name, students[i].group);
- for (j=0; j<5; j++)
- fprintf(fp, "%d ", students[i].ses[j]);
- fprintf(fp, "\n");
- }
- fclose(fp);
- fp=fopen("structures.txt", "r+b"); //
- if (fp!=NULL)
- {
- printf("\nthe file structures.txt was created successfully for reading\n") ;
- }
- else
- {
- fprintf(stderr,"the file can't be created or open\n");
- return EXIT_FAILURE;
- }
- fseek(fp,0,SEEK_SET);//
- for(i=0;i<NSTUDENTS;i++)
- {
- fgets(fstudents[i].name, strlen(students[i].name)+1, fp);//
- fseek(fp,1,SEEK_CUR);//
- fgets(fstudents[i].group, strlen(students[i].group)+1, fp);//
- fseek(fp,1,SEEK_CUR);//
- for(j=0;j<5;j++)
- {
- fscanf(fp,"%d", &fstudents[i].ses[j]);//
- fseek(fp,1,SEEK_CUR);
- }
- fseek(fp,1,SEEK_CUR);//
- }
- printf("\nfile test: \n");//
- for (i=0; i<NSTUDENTS; i++)
- {
- printf("\nstudent: %-16s group: %-16s", fstudents[i].name, fstudents[i].group);
- printf("marks: ");
- for (j=0;j<5;j++)
- printf("%d ",fstudents[i].ses[j]);
- }
- printf("\n");
- printf("\nSearching by Name\n");
- printf("Enter the name: ");
- fscanf(stdin, "%[^\n]", search);
- for (i=0; i<NSTUDENTS; i++)
- {
- if (strncmp(students[i].name, search, 4) == 0)
- {
- printf ("\nstudent: %s\t group: %s\t marks: ", students[i].name, students[i].group);
- for(j=0;j<5;j++)
- printf("%d ", students[i].ses[j]);
- printf("\n");
- f=1;
- }
- }
- if (!f)
- printf ("There is no %s\n", search);
- fclose(fp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement