Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AI\EKCAH^P
104 / 101 / 20
Регистрация: 18.05.2009
Сообщений: 201
#1

Корректировать функцию - C++

06.06.2010, 16:42. Просмотров 357. Ответов 2
Метки нет (Все метки)

Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа.Структура имеет вид: фамилия студента, номер зачетной книжки, 4 оценки за экзамен. Выводить информацию о всех двоечниках и корректировать ее.

Программу сделал,тока корректировать функцию ,которая выводит информацию о двоечниках неполучаеться.Изменения вводишь ,а потом прога зависает. Посмотрите ,где ошибка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void find(FILE*tf)
{
char c;
int s;
long int i;
tf=fopen("file.dat","r+b");
puts(" Esli nado informaciya o dvoi4nikah vvedite 2: ");
scanf("%d",&s);
fread(&sp,sizeof(sp),1,tf);
 while (!feof(tf))
  {
   if ((sp.oc1==s)||(sp.oc2==s)||(sp.oc3==s)||(sp.oc4==s))
    {
    printf("\n familiya %s\n nomer za4etnoy knigki %d  ",sp.name,sp.number);
    printf("\n 1-ya ocenka:%d\n 2-ya oceka:%d\n 3-ya ocenka:%d\n 4-ya ocenka:%d\n ",sp.oc1,sp.oc2,sp.oc3,sp.oc4);
    printf("\n Izmenity/Next ? y/n");
    c=getch();
    if (c=='y')
     {
      printf("\n 1-ya ocenka: ");
      scanf("%d",&sp.oc1);
      printf(" 2-ya ocenka: ");
      scanf("%d",&sp.oc2);
      printf(" 3-ya ocenka: ");
      scanf("%d",&sp.oc3);
      printf(" 4-ya ocenka: ");
      scanf("%d",&sp.oc4);
      printf(" nomer za4etnoy knigki: ");
      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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2010, 16:42     Корректировать функцию
Посмотрите здесь:

Запилить функцию-аллюзию на функцию switch(), принимающую буквенные значения - C++
Фрагмент кода: ... int fu; cout << "Сделать что-то? (1=да, 2=нет) "; //здесь предполагается введение не цифры, а буквы Y или N cin...

рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х - C++
рекурсия.написать функцию,принимающую указ. на другую функцию, осуществл. некую операцию с переданным х. прога должна иметь вид...

Разработать программу, которая содержит функцию замены местами первого и последнего столбцов матрицы и функцию - C++
Разработать программу, которая содержит функцию замены местами первого и последнего столбцов матрицы и функцию,которая, первый...

Сделать задачу через функцию (добавить функцию) - C++
#pragma hdrstop #pragma argsused #include <tchar.h> #include <iostream.h> int _tmain(int argc, _TCHAR* argv) { int...

Передача указателя на шаблонную функцию в другую функцию - C++
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает итераторы для диапазона элементов, указатель...

Заменить функцию tolower на ручную функцию - C++
В общем проблема такова. Tolower работает только с англ.яз вводимых данных. А мне нужно что бы работало на рус. Какой ручной функцией...

Преобразовать функцию strcmp в СВОЮ функцию - C++
Нужно заменить функцию strcmp на свою. я создала свою, но код не коректний и выбивает ошибки. #include <iostream> #include <stdio.h>...

Дан массив из прототипов функций или указателей на функцию, сделать функцию, возвращающую этот массив - C++
Не охота создавать лишнею тему извиняюсь заранее Вопрос такой Можете подсказать есть массив из прототипов функций или...

Как разделить функцию на функцию? - C++
Доброго время суток всем, подскажите как мне сделать отношение двух функций, отдельно я их решил, а как разделить 1-ю на 2-ю не знаю, ниже...

Корректировать программу - Pascal ABC
Надо исправить программу так чтобы между словами можно было вводить не один а несколько пробелов. Program N_3; uses crt; var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.06.2010, 03:37     Корректировать функцию #2
C
1
scanf("%d", &sp.oc1);
C
1
scanf("%d%*c", &sp.oc1);
это поглотит Enter
там для всех вводов
Alina_1986
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 28
06.01.2012, 20:32     Корректировать функцию #3
Здравствуйте!
Не могли бы Вы выложить полный листинг данной программы???!

Заранее спасибо!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru