задача в билдере с файлами

Тема в разделе "C/C++/C#", создана пользователем Наталли, 20 янв 2011.

  1. Наталли

    Регистрация:
    8 янв 2011
    Сообщения:
    8
    Симпатии:
    0
    выдает ошибку и думаю с сортировкой что-то не то

    условие:Написать программу обработки файла типа запись, содержащую следую-щие пункты меню:
    "Создание", "Просмотр", "Добавление новых данных" , «Решение индивидуального задания».
    Каждая запись должна содержать следующую информацию о студентах:
    – фамилия и инициалы;
    – год рождения;
    – оценки за семестр: по физике, математике, информатике, химии;
    – средний балл.
    Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.

    Индивидуальное задание:
    Распечатать анкетные данные студентов интересующей вас группы, имеющих средний балл выше введенного с клавиатуры.


    код:
    struct Sved{
    char Fam[30];
    int Ph_Bal,M_Bal,Inf_Bal,Ch_Bal;
    double S_Bal;
    }zap;
    char Spis[]="Sp.dat";
    char Spis2[]="Sort.dat";
    FILE *F_zap,*F_rez;
    FILE* Open_file(char*,char*);

    void main(void)
    {int i,kodR,size=sizeof(Sved),D_f,kol;
    long len;
    Sved st, *mas_Z;
    double sb;
    while(1){
    puts("\n Создать - 1\n Просмотр - 2\n Добавление записи - 3\n Сортировка - 4\n Выход - 0");
    scanf("%d",&kodR);
    switch(kodR){
    case 1: case 3: if(kodR==1)F_zap=Open_file(Spis,"w+");
    else F_zap=Open_file(Spis,"a+");
    while(2){
    puts("\n Fam (.-end)");
    scanf("%s",zap.Fam);
    if ((zap.Fam[0])=='.') break;
    puts("\n Ball po fizike: ");
    scanf("%d",&zap.Ph_Bal);
    puts("\n Ball po matematike: ");
    scanf("%lf",&zap.M_Bal);
    puts("\n Ball po informatike: ");
    scanf("%lf",&zap.Inf_Bal);
    puts("\n Ball po himii: ");
    scanf("%lf",&zap.Ch_Bal);
    zap.S_Bal=(zap.Ph_Bal+zap.M_Bal+zap.Inf_Bal+zap.Ch_Bal)/4;
    fwrite(&zap,size,1,F_zap);
    }
    fclose(F_zap);
    break;
    case 2: F_zap=Open_file(Spis,"r+"); int nom=1;
    while(2){
    if(!fread(&zap,size,1,F_zap)) break;
    printf("%d: %s %lf\n",nom++,zap.Fam,zap.S_Bal);
    }
    fclose(F_zap);
    break;
    case 4: F_zap=fopen(Spis,"rb");
    D_f=fileno(F_zap);
    len=filelength(D_f);
    kol=len/size;
    mas_Z=new Sved[kol];
    for (i=0;i<kol;i++)
    fread((mas_Z+1),size,1,F_zap);
    fclose(F_zap);
    F_rez=fopen(Spis2,"w");
    printf("Vvedite naimen'shii srednii ball");
    scanf("%lf",sb);
    printf("\n\t----- S O R T -----\n");
    fprintf(F_rez,"\n\t----- S O R T -----\n");
    for (i=0;i<kol;i++)
    if (mas_Z.S_Bal>sb){
    printf("\n %s, %d, %d, %d, %d, %lf6.3",
    zap.Fam,zap.Ph_Bal,zap.M_Bal,zap.Inf_Bal,zap.Ch_Bal,zap.S_Bal);
    fprintf(F_zap,"\n %s, %d, %d, %d, %d, %lf6.3",
    zap.Fam,zap.Ph_Bal,zap.M_Bal,zap.Inf_Bal,zap.Ch_Bal,zap.S_Bal);
    }
    fclose(F_rez);
    break;
    case 0: return;
    }
    }
    }
    //---------------------------------------------------------------------------
    FILE *Open_file(char *file,char *kod){
    FILE *f;
    if(!(file,kod)){
    puts("Open File Error!");
    exit(1);
    }
    return(f);
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Используй тэги! Мало кто читать будет....
     
  3. Наталли

    Регистрация:
    8 янв 2011
    Сообщения:
    8
    Симпатии:
    0
    уже не надо, сама разобралась :(
     
  4. RiCrO

    RiCrO Гость

    :facepalm:
     
Загрузка...
Похожие Темы - задача билдере файлами
  1. Янчик
    Ответов:
    0
    Просмотров:
    483
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    781
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.122
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.106

Поделиться этой страницей