Премини към съдържанието

Препоръчан отговор


#include <stdio.h>
#include <conio.h>
#include<string.h>
#include<stdlib.h>
#include<Windows.h>
#include<locale.h>

struct STUDENT
{    char ime[20];
    char EGN[11];
 int ocenkaMat[6];
    int ocenkaFiz[6];
    int ocenkaProg[6];
};
     FILE *fl;
     char imefl[30];
     STUDENT student;
     STUDENT studenti[50];
     int brVuvedeniStudenti=0;

     void readSTUDENT(STUDENT *st)
     {
    printf("%20sВъвидeтe имeто:","");
     gets(st->ime);

    printf("%20sВъвидетe ЕГН:","");
    scanf("%d", &(st->EGN));

    
    printf("Fizika!\n");
    scanf("%d", &(st->ocenkaFiz));

    printf("Matematika!\n");
     scanf("%d", &(st->ocenkaMat));

    printf("Programirane!\n");
    scanf("%d", &(st->ocenkaProg));
}


void writeSTUDENT(STUDENT st)

{

    printf("име: %-21s ЕГН: %-21s оценкиФиз: %-21s оценкиМат: %-21s оценкиПрог: %s\n",st.ime, st.EGN, st.ocenkaFiz, st.ocenkaMat, st.ocenkaProg);
}
     bool exist(char *ime)
{
    FILE *f=fopen(ime,"r");
    if(f!=NULL)
    fclose(f);
    return f!=NULL;
}

     void SzdPrz()
     {

    char ch;
    if(exist(imefl))
    
    {

        printf("Файлът съществува!");
        printf("Да го презапеша ли ?");

        ch=getchar();
        if(ch=='n') return;
    }

    fl=fopen(imefl,"w");
        fclose(fl);
    printf("\n ФАЙЛЪТ Е СЪЗДАДЕН. \n");
    
     }

void dobavqne()

    {
        char ch;
        if(!exist(imefl))
        {
            printf("ФАЙЛЪТ НЕ Е СЪЗДАДЕН!\n");
            return;
        }
        //fl=fopen(imefl,"a+b");
        do
        {
            readSTUDENT(&student);
            //fwrite(&jivotno,sizeof(jivotno),1,fl);
            studenti[brVuvedeniStudenti]=student;
            brVuvedeniStudenti++;

            printf("ЩЕ ПРОДЪЛЖИТЕ ЛИ ВЪВЕЖДАНЕТО? ");
            ch=getchar();
            //getchar();
        }
        while (ch != 'n');
        fclose(fl);
        }
      
void iztrivane()
    {
        FILE *delFL;
        char ime[20];
        if (!exist(imefl))
        {
            printf("ФАЙЛЪТ НЕ Е СЪЗДАДЕН!\n");
            return;
        }
        printf(" VYVEDETE IME: ");
        gets(ime);
        fl=fopen(imefl,"rb");
        delFL=fopen("Del","wb");
        fread(&student,sizeof(student),1,fl);
        while(!feof(fl))
        {
            if( strcmp(student.ime,ime)!=0)
                fwrite(&student,sizeof(student),1,delFL);
        else printf(" ДАННИ Име %s изтрити. \n",ime );
        fread(&student,sizeof(student),1,fl);

        }
        fclose(fl);
        fclose(delFL);
        remove(imefl);
        rename("Del",imefl);
        }

void zamiana()
{
    char EGN[11];
    if (!exist(imefl))
    {

        printf("Faulut ne e suzdaden!\n");
        return;
    
    }

    printf("Vuvedete ЕГН: ");
    gets(EGN);
    fl = fopen(imefl, "r+b");
    fread(& student, sizeof(student), 1, fl);
    
    while (!feof(fl))
    //fclose(fl);
    {
        if (strcmp(student.EGN, EGN) == 0)
        
        {
            readSTUDENT(&student);
            fseek(fl, -(long)sizeof(student), SEEK_CUR);
            fwrite(&student, sizeof(student), 1, fl);
            printf("Dannite za EGN %s sa zameneni.\n", EGN);
            break;
        }

        fread(&student ,sizeof(student), 1, fl);
    }
    fclose(fl);
    printf("\n");
}
void izvSrUspeh ()
{
    int n,i,Br=0;
float **Grupa,SrUsp=0,Suma=0;
for (i=0;i<n;i++)
if (Grupa[2]>2)
{Suma+=Grupa[1];Br++;}
if (Br==0) printf("Niama hora uspe6no izdarjali izpita po matematika!");
else
{SrUsp=Suma/Br;
printf("Sredniq uspeh po fizika na uspe6no polojilite izpita po matematika e %2.2f!",SrUsp);}
for (i=0;i<n;i++) delete[] Grupa;
delete []Grupa;
}  
void obSpis()

       {
           int k;
           if(!exist(imefl))
           {
               printf("ФАЙЛЪТ НЕ Е СЪЗДАДЕН!\n");
            return;
           }
           fl=fopen(imefl,"rb");
           k=0;
           fread(&student,sizeof(student),1,fl);
           while(!feof(fl))
           {
               k++;
               writeSTUDENT(student);
               fread(&student,sizeof(student),1,fl);
           }
           if (k==0) 
               printf("Файлът е празен \n");
           fclose(fl);}

       void zapisFail()

       {
           fl=fopen(imefl,"a+b");

           int i;
           for(i=0;i<brVuvedeniStudenti;i++)
           {
            STUDENT st = studenti;

                if(st.ocenkaMat > 2) 
                    fwrite(&st,sizeof(st),1,fl);
           }

           fclose(fl);
       }

void main()
{
    setlocale(LC_ALL,"bulgarian");
    
    int x;
    printf("Ime na faila: ");
    gets(imefl);

    do
    {
        
        printf(" MENU \n ");
        printf("1. Suzdavane na prazen fail\n", "");
        printf("2. Dobavqne na danni za studenti kum faila\n", "");

         
        //printf("3. Iztrivane na dannite za sudenti po zadadeno EGN\n", "");  
        //printf("4.замяна на компонент\n","");
        printf("5. Izvejdane naSredniq uspeh po fizika na uspe6no polojilite izpita po matematika\n", "");
        //printf("6.списък на всички\n","");
        printf("9.zapis vyv fail\n","");
        printf("Izberete chislata ot 1 do 4 ili 0 za izhod:\n ", "");
        scanf("%d", &x);
        getchar();
        switch (x)
        {
        case 1:SzdPrz();break;
        case 2:dobavqne();break;
        case 3:iztrivane();break;
        case 4:zamiana();break;
        case 5:izvSrUspeh();break;
        case 6:obSpis();break;
        case 9:zapisFail();break;
        }
    } while (x != 0);
}
Условието на задачата е за група студенти са зададени име,ЕГН,оценки по физика,математика,програмиране.Да се състави програма,която съхранява данните във файл и избира следните операции от меню: създаване на празен файл;добавяне на данни за студенти към файла; промяна на данните за студент по зададено ЕГН;извеждане в текстов файл на средния успех по физика на студентите , които са положили успешно изпита по математика;

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.