Посчитать общее число

Ответить
devl13
Сообщения: 3
Зарегистрирован: 25 сен 2013, 18:18

19 ноя 2013, 18:25

Задание: Обработка бинарных файлов: Запись имеет вид: название вуза, число студентов, количество факультетов. Добавить в конце файла информацию о трех новых вузах и посчитать общее число студентов.

Я создаю функцию создания файл с записью, потом функцию просмотра, потом функцию добавления новых записей в файл, а вот расчет общего количества студентов не знаю как произвести. Прошу помочь в до писании программы.
&quot писал(а):#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<locale.h>

struct tov {char name[10];float c;int kol;} t1;
void input(FILE *);//создание нового файла
void print(FILE *);//просмотр файла
void app(FILE *);//добавление в файл
main()
{setlocale(LC_CTYPE,"Russian");
char c;
FILE *tf;
while (1)
{system("CLS");
puts("1 - новый файл");
puts("2 - просмотр файла");
puts("3 - добавление в файл");
puts("0 - выход");
c=getch();
switch(c)
{case '1': input(tf);break;
case '2': print(tf);break;
case '3': app(tf);break;
case '0': return 0;
default: puts("неверный режим");
}
}
}
void input(FILE *tf)
{char ch;
tf=fopen("file1.dat","wb");//открытие бинарного файла для записи
system("CLS");
printf("\n Ввод информации о вузах\n");
do
{printf("\n Название вуза: "); scanf("%s",&t1.name);
printf(" Количество студентов: "); scanf("%f",&t1.c);
printf(" Количество факультетов: "); scanf("%d",&t1.kol);
fwrite(&t1,sizeof(t1),1,tf);//запись в файл одной структуры t1
printf("\n Закончить? y/n ");
ch=getch();
}
while(ch != 'y');
fclose(tf);
}
void print(FILE *tf)
{int i;
system("CLS");
tf=fopen("file1.dat","rb");//открытие бинарного файла для чтения
i=1;
fread(&t1,sizeof(t1),1,tf);//чтение в файл одной структуры t1
while(!feof(tf))
{printf("\n %3d Vuz %10s Kol student %6.2f Kol fakult %4d",i,t1.name,t1.c,t1.kol);
fread(&t1,sizeof(t1),1,tf);
i++;
}
getch();
}
void app(FILE *tf)
{char ch;
tf=fopen("file1.dat","ab");//открытие бинарного файла для добавления
system("CLS");
printf("\n Название вуза \n");
do
{printf("\n Название вуза: "); scanf("%s",&t1.name);
printf(" Количество студентов: "); scanf("%f",&t1.c);
printf(" Количество факультетов: "); scanf("%d",&t1.kol);
fwrite(&t1,sizeof(t1),1,tf);
printf(" Закончить? y/n ");
ch=getch();
}
while(ch != 'y');
fclose(tf);
}
Ответить