Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: GeorgeIV   (01.06.2009 в 12:29)
Примерно так:
#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);

  }


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: