Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужны комментарии к функции корректировки[C++], нужно написать комментрарии 
V
    Опции темы
lrad
Дата 15.12.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 20.1.2007
Где: Ленинградская обл асть

Репутация: нет
Всего: 2



Напишите, пожалуйста, комменты к каждой строке кода
Код

void korrec()
{
  fstream f;
  char fam[FIO];
  DISK z;
  int m,p;
  f.open("disk.txt", ios::in | ios::out | ios::binary);
  if ( !f )
    {
      cerr << "Не удалось открыть файл disk.txt для корректировки";
      exit (1);
    }
  cout << "\nВведите Исполнителя для корректировки->";
  cin.seekg(0,ios::end);
  cin.get(fam,FIO,'\n');
  p=strlen(fam);

  while ( !f.eof() )
  {
    m = f.tellg();
    f.get(z.fio, FIO, '\n');
    f.get(z.name, NAME, '\n');
    f.get(z.izd,IZD,'\n');
    f.get(z.form,FORM,'\n');
    f>>setw(4)>>z.god;
    f>>setw(4)>>z.kol;
    f>>setw(3)>>z.tir;
    if (strncmp(z.fio,fam,p) == 0 )
      {

    cout << "Вводите новую информацию:\n";
    cout << "Исполнитель ->";
    cin.seekg(0,ios::end);
    cin.get(z.fio,FIO-1,'\n');

    cout << "Назание диска ->";
    cin.seekg(0,ios::end);
    cin.get(z.name,NAME-1,'\n');

    cout<<" Издание- [10] ->";
    cin.seekg(0,ios::end);
    cin.getline(z.izd,IZD-1,'\n');

    cout<<" Формат записи- [6] ->";
    cin.seekg(0,ios::end);
    cin.getline(z.form,FORM-1,'\n');

    cout<<" Год издания- [гггг] ->";
    cin.seekg(0,ios::end);
    cin>>z.god;

    cout<<" Количество песен на диске- [1-999] ->";
    cin.seekg(0,ios::end);
    cin>>z.kol;

    cout<<" Тираж- [1-99] ->";
    cin.seekg(0,ios::end);
    cin>>z.tir;

   f.seekp(m);
   f.setf(ios::left);
   f<<setw(FIO-1)<<z.fio
    <<setw(NAME-1)<<z.name
    <<setw(IZD-1)<<z.izd
    <<setw(FORM)<<z.form;
   f.setf(ios::right);
   f<<setw(4)<<z.god
    <<setw(4)<<z.kol
    <<setw(3)<<z.tir;

    break;
      }
  }
  f.close();

}


PM MAIL ICQ   Вверх
archimed7592
Дата 15.12.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Чисто, интересу ради: что ты понимаешь под комментами? Я понял бы, если бы это было 5 строк засысловатого кода. Но 80 строк... fstream f - коммент можно растянуть на целую главу из Страуструпа. А если не растягивать, то вряд ли тебя осенит что это такое. Может быть лучше попробовать книгу полистать? Это будет быстрее, чем ждать комментов и потом разбираться в них. С другой стороны, не во всех книгах описано что такое f.setf(...). Прокомментировать такие строки можно, но прежде нужно быть уверенным, что ты понимаешь другие строки.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
lrad
Дата 15.12.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 20.1.2007
Где: Ленинградская обл асть

Репутация: нет
Всего: 2



Код

 p=strlen(fam);
 m = f.tellg();
    f.get(z.fio, FIO, '\n');
    f.get(z.name, NAME, '\n');
    f.get(z.izd,IZD,'\n');
    f.get(z.form,FORM,'\n');
    f>>setw(4)>>z.god;
    f>>setw(4)>>z.kol;
    f>>setw(3)>>z.tir;
    if (strncmp(z.fio,fam,p) == 0

интересует конкрентно эти строчки
типа этого нужно
Код

 fstream f // открываем поток f для чтения и записи


PM MAIL ICQ   Вверх
Xenon
Дата 15.12.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 1
Всего: 50



Код

void korrec()
{
  fstream f;
  char fam[FIO];
  DISK z;
  int m,p;
  f.open("disk.txt", ios::in | ios::out | ios::binary);
  if ( !f )
    {
      cerr << "Не удалось открыть файл disk.txt для корректировки";
      exit (1);
    }
  cout << "\nВведите Исполнителя для корректировки->";
  cin.seekg(0,ios::end);
  cin.get(fam,FIO,'\n');
  p=strlen(fam);
//Пока не закончился файл ищем запись
  while ( !f.eof() )
  {
      //Получить текущую позицию в файле
    m = f.tellg();
    //Считать ФИО
    f.get(z.fio, FIO, '\n');
    //Считать имя
    f.get(z.name, NAME, '\n');
    //Считать какой-то IZD
    f.get(z.izd,IZD,'\n');
    //Считать какую-то форму
    f.get(z.form,FORM,'\n');
    f>>setw(4)>>z.god;
    f>>setw(4)>>z.kol;
    f>>setw(3)>>z.tir;
    //Если нашли человека с необходимой фамилией - редактируем ее
    if (strncmp(z.fio,fam,p)== 0 )
      {

    cout << "Вводите новую информацию:\n";
    cout << "Исполнитель ->";
    //Передвигаем каретку ввода на начало
    cin.seekg(0,ios::end);
    //Считываем новое ФИО
    cin.get(z.fio,FIO-1,'\n');
    //и т.д.
    cout << "Назание диска ->";
    cin.seekg(0,ios::end);
    cin.get(z.name,NAME-1,'\n');

    cout<<" Издание- [10] ->";
    cin.seekg(0,ios::end);
    cin.getline(z.izd,IZD-1,'\n');

    cout<<" Формат записи- [6] ->";
    cin.seekg(0,ios::end);
    cin.getline(z.form,FORM-1,'\n');

    cout<<" Год издания- [гггг] ->";
    cin.seekg(0,ios::end);
    cin>>z.god;

    cout<<" Количество песен на диске- [1-999] ->";
    cin.seekg(0,ios::end);
    cin>>z.kol;

    cout<<" Тираж- [1-99] ->";
    cin.seekg(0,ios::end);
    cin>>z.tir;
   
   f.seekp(m);
   //Устанавливаем форматирование по левому краю
   f.setf(ios::left);
   //Последовательно вносим поля в файл
   f<<setw(FIO-1)<<z.fio
    <<setw(NAME-1)<<z.name
    <<setw(IZD-1)<<z.izd
    <<setw(FORM)<<z.form;
   f.setf(ios::right);
   f<<setw(4)<<z.god
    <<setw(4)<<z.kol
    <<setw(3)<<z.tir;
    //Так как запись найдена - выходим из цикла
    break;
      }
  }
  f.close();


}



--------------------
user posted image  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1844 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.