Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2012, 17:36   #1
pachuk
 
Регистрация: 06.12.2011
Сообщений: 5
По умолчанию Запись и корректировка файла

Составить на одной из алгоритмических языков программу, которая запускается и выдает на экран меню из трех пунктов (формирование файла, запрос, выход).
На выбор первой опции меню сформировать на одном из дисковых устройств двоичный файл AEROPORT.DAT, содержащий сведения о наличии билетов и рейсы из аэропорта. Структура записи: номер рейса (5 символов), пункт назначения, время вылета, время прибытия, количество мест в салоне. Организовать заполнения файла содержанием в режиме диалога с пользователем (ввод закончить набором № рейса, что составляет, состоящий из 5 пробелов. Если файл с таким именем существует, его корректировка не делать.
На выбор второй опции меню предоставить возможность пользователю
- Узнать время отправления самолетов в город N;
- Наличие мест на рейс в город N с временем отправки Х час Y мин;
- Узнать все рейсы, которые отправляются после X час Y мин.

На выбор третий опции и меню нажатии пользователем на клавишу ESC осуществить выход из программы с сохранением введенной информации.

Я никак не могу записать в файл даные так что бы потом можна было сделать сортировку или поиск по второму пункту меню. Помогите если можете. Кидайте примеры работ в Builder или на языке си

Последний раз редактировалось pachuk; 30.04.2012 в 22:42.
pachuk вне форума Ответить с цитированием
Старый 15.05.2012, 15:29   #2
pachuk
 
Регистрация: 06.12.2011
Сообщений: 5
По умолчанию

Вот мои соображения но не могу понять как организовать поиск 3 пункт и почему то поиск работает через раз

Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include<iostream.h>
int p;
struct tov {char name[10]; char t[7]; char tt[7]; int m;} t1;
void input(FILE *);
void print(FILE *);
void app(FILE *);
void find(FILE *);
void find1(FILE *);
main()
{
clrscr();
int k;
char c;
FILE *tf;
while (1)
{
 puts("\n 1 - Novui fail");
 puts(" 2 - Prosmotr faila");
 puts(" 3 - Dobavlenie v fail");
 puts(" 4 - Poisk i izmenienie");
 puts(" 0 - Vuhod");
 c=getch();
 switch(c)
 { case '1':input(tf);break;
  case '2':print(tf);break;
  case '3':app(tf);break;
  case '4':

  cout<<"\n 1 - Za Punkt";
  cout<<"\n 2 - Za Chas\n";
  cin>>k;
  if (k==1)
  find1(tf);break;
 // if (k=2)

  case '0':return 0;
  default : puts("error");
 }
}
}
void input(FILE *tf)
{char ch;
 tf=fopen("AEROPORT.dat","wb");
 printf("\n Vvod informatsii:\n");
 do
 { printf("\n Punkt pruznachennia: "); scanf("%s",t1.name);
  printf(" Time 1: "); scanf("%s",&t1.t);
  printf(" Time 2: "); scanf("%s",&t1.tt);
  printf(" Mistsia: ");   scanf("%d",&t1.m);
  fwrite(&t1,sizeof(t1),1,tf);
  printf("\n Zakonchit? y/n \n");
  ch=getch();
 }
while (ch != 'y');
 fclose(tf);
}
void print(FILE *tf)
{ int i;
 tf=fopen("AEROPORT.dat","rb");
 i=1;
 fread(&t1,sizeof(t1),1,tf);
 while (!feof(tf))
 {printf("\n %3d)Punkt: %s Time 1: %s Time 2: %s ",i, t1.name, t1.t, t1.tt);
 printf(" Mistsia: %d",t1.m);
  printf("\n");
  fread(&t1,sizeof(t1),1,tf);
  i++;
 }
getch();
}
void app(FILE *tf)
{char ch;
 tf=fopen("AEROPORT.dat","ab"); // открытие бинарного файла для добавления
 printf("\n Vvod informatsii:\n");
 do
 { printf("\n Punkt: "); scanf("%s",t1.name);
  printf(" Time 1: "); scanf("%s",&t1.t);
  printf(" Time 2: "); scanf("%s",&t1.tt);
  printf(" Mistsia: ");scanf("%d",&t1.m);
  fwrite(&t1,sizeof(t1),1,tf);
  printf("\n Zakonchit? y/n ");
  ch=getch();
 }
while (ch != 'y');
 fclose(tf);
}

void find1(FILE *tf)
{char c, tov[10];
 long int i;
 tf=fopen("AEROPORT.dat","rb+");
 puts(" Punkt ");
 gets(tov);
 fread(&t1,sizeof(t1),1,tf);
 while (!feof(tf))
 {if (strcmp(t1.name,tov)==0)
  {printf("\n %3d)Punkt: %s Time 1: %s Time 2: %s ",i, t1.name, t1.t, t1.tt);
  printf(" Mistsia: %d",t1.m);
   printf("\n Izmenit? y/n ");
   c=getch();
   if (c=='y')
     {
  printf(" Time 1 "); scanf("%s",&t1.t);
  printf(" Time 2 "); scanf("%s",&t1.tt);
  printf(" Mistsia: ");   scanf("%d",&t1.m);
    i=sizeof(t1);
       fseek(tf, -i, 1);
      fwrite(&t1,sizeof(t1),1,tf);
     }
   }           fread(&t1,sizeof(t1),1,tf);
}
fclose(tf);
}
pachuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись файла YourLastSong Общие вопросы C/C++ 0 09.10.2011 21:20
Запись файла Angryant Общие вопросы C/C++ 1 06.07.2011 00:03
запись файла dedyshka PHP 5 07.12.2009 17:15
Запись и чтение из файла МаксMorfey Общие вопросы по Java, Java SE, Kotlin 5 10.06.2009 11:39
корректировка xls файла с помощью delphi Adept БД в Delphi 2 06.03.2008 10:26