#include<stdio.h>
#include<conio.h>
#include<string.h>
#include "locale.h"
struct sport
{
char name[10];
int number;
int kol;
}sp;
void input();
void print();
void app();
void findsport();
void smena();
int main()
{
char c = 'a';
setlocale(LC_ALL,"Russian");
while (c!='0')
{
puts("1-novuy fail");
puts("2-prosmotr faila");
puts("3-dobavlenie v fail");
puts("4-poisk i izmenenie");
puts("5-Смена спортсмена");
puts("0-vyhod");
c = getch();
switch(c)
{
case '1':input(); break;
case '2':print();break;
case '3':app();break;
case '4':findsport();break;
case '5':smena();break;
case '0':break;
default : puts("nevernuy regim");
}
}
}
void input()
{
char ch;
int res=0;
FILE *tf=fopen("file1.dat","wb");
printf("\n vvedite informaciu o sportcmene \n");
do
{
printf("\n familiya: ");
scanf("%s",sp.name);
printf(" nomer: ");
scanf("%d",&sp.number);
printf(" kolichestvo ochkov: ");
scanf("%d",&sp.kol);
res = fwrite(&sp,sizeof(sp),1,tf);
printf("\n Zakonchity ? y/n");
ch=getch();
}while (ch != 'y');
fclose(tf);
}
void app()
{
char ch;
FILE *tf=fopen("file1.dat","ab");
printf("\n vvedite informaciu o sportcmene \n");
do
{
printf("\n familiya: ");
scanf("%s",sp.name);
printf(" nomer: ");
scanf("%d",&sp.number);
printf(" kolichestvo ochkov: ");
scanf("%d",&sp.kol);
fwrite(&sp,sizeof(sp),1,tf);
printf("\n Zakonchity ? y/n");
ch=getch();
} while (ch != 'y');
fclose(tf);
}
void print()
{
int i;
FILE *tf=fopen("file1.dat","rb");
i=1;
fread(&sp,sizeof(sp),1,tf);
printf("\n \tfamiliya \tnumber \tkolichestvo ochkov ");
while(!feof(tf))
{
printf("\n %3d \t%10s \t%6d \t%4d ",i,sp.name,sp.number,sp.kol);
fread(&sp,sizeof(sp),1,tf);
i++;
}
getch();
printf("\n");
fclose(tf);
}
void findsport()
{
char c, sport[10];
long int i;
FILE *tf=fopen("file1.dat","rb+");
puts(" Familiya sportcmena: ");
gets(sport);
fread(&sp,sizeof(sp),1,tf);
while (!feof(tf))
{
if (strcmp(sp.name,sport)==0)
{
printf(" familya %10s number %6.2d kolichestvo ochkov %d",sp.name,sp.number,sp.kol);
printf("/n Izmenity ? y/n");
c=getch();
if (c=='y')
{
printf("\n kolichestvo: ");
scanf("%d",&sp.kol);
printf("\n number: ");
scanf("%d",&sp.number);
i=sizeof(sp);
fseek(tf,-i,1);
fwrite(&sp,sizeof(sp),1,tf);
}
}
fread(&sp,sizeof(sp),1,tf);
}
fclose(tf);
}
void smena()
{
struct sport sportsmans[2];
FILE *tf=fopen("file1.dat","rb+");
fread(&sportsmans, sizeof(sp), 2, tf);
fseek(tf,0,SEEK_SET);
fwrite(&sportsmans[1],sizeof(sp), 1, tf);
fwrite(&sportsmans[0],sizeof(sp), 1, tf);
fclose(tf);
} |