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

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

Войти
Регистрация
Восстановить пароль
 
Линка
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 17
#1

Файлы. Вывести данные о самом высоком спортсмене - C++

18.04.2011, 09:11. Просмотров 1071. Ответов 5
Метки нет (Все метки)

Используя функции и режим меню, создать файл из 10 записей, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа выполнить:
Информация о спортсменах: фамилия, пол, год рождения, рост. (Это все сделала)
Вот только надо вывести данные о самом высоком спортсмене, а не о всех HELP ME!!!!
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#pragma hdrstop
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
 struct sport {char name[10]; char pol[5]; char god[10]; float r;} t1;
void input(FILE *); // создание нового файла
void print(FILE *); //  просмотр файла
void app(FILE *); //  добавление в файл
 
int main(int argc, char* argv[])
{  char c; int i;
   FILE *tf;
    while (i != 0)
      { clrscr();
        puts("  1 - new file");
        puts("  2 - look file ");
        puts("  3 - dobavlenie v file");
        puts("  0 - vihod");
        c=getch();
        switch(c)
         {case '1':input(tf);break;
          case'2':print(tf);break;
          case'3':app(tf);break;
          case '0':return 0;
         default : puts("neverni rezgim" );
         }
       }
   }
 void input(FILE *tf)
{ char ch;
  tf=fopen("file1.dat","wb"); // открытие бинарного файла для записи
  clrscr();
  printf("\n Vvod dannih \n");
  do
  { printf("\n familiya: "); scanf("%s",t1.name);
    printf(" pol: "); scanf("%s",&t1.pol);
    printf(" god rozgdeniya: "); scanf("%s",&t1.god);
    printf(" rost: "); scanf("%f",&t1.r);
    fwrite(&t1,sizeof(t1),1,tf); // запись в файл одной структуры t1
    printf("\n Zakonchit?  y/n  ");
    ch=getch();
  }   while (ch != 'y');
  fclose(tf);  }
void print(FILE *tf)
 { int i;
  clrscr();
  tf=fopen("file1.dat","rb"); // открытие бинарного файла для чтения
  i=1;
  fread(&t1,sizeof(t1),1,tf); // чтение из файла одной структуры t1
  while (!feof(tf))
  {printf("\n  %3d familya %10s pol %5s god %5s rost %6.2f",i,t1.name,t1.pol,t1.god,t1.r);
    fread(&t1,sizeof(t1),1,tf);
    i++;
  }  getch(); }
void app(FILE *tf)
{ char ch;
  tf=fopen("file1.dat","ab"); // открытие бинарного файла для добавления
  clrscr();
  printf("\n  Vvod dannih \n");
  do
  {  printf("\n familiya: "); scanf("%s",t1.name);
    printf(" pol: "); scanf("%s",&t1.pol);
    printf(" god rojdenia: "); scanf("%s",&t1.god);
    printf(" rost: "); scanf("%f",&t1.r);
    fwrite(&t1,sizeof(t1),1,tf);
    printf(" zakonchit  y/n ");
    ch=getch();
  }
  while (ch != 'y');
  fclose(tf);
  }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 09:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы. Вывести данные о самом высоком спортсмене (C++):

Вывести данные о самом высоком спортсмене - C++
Запись имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене.

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

Вывести на экран информацию о самом высоком мосте. - C++
Условие: Сделать структуру в виде функции, Мосты. Название, высота, длинна. Вывести на экран информацию о самом высоком, мосте. Вод...

Написать friend функцию, которая выведет информацию о самом легком спортсмене в команде - C++
Здравствуйте помогите написать функцию друг которая выводит информацию о самом легком спотсмене должно выводиться так ФИО Игровой...

Выдать данные о спортсмене, показавшем лучший результат. - C++
Даны сведения о результатах соревнования по бегу на 100 метров: фамилия и имя спортсмена, спортивное общество, результат в секундах. Выдать...

Вывести на экран все слова убрав в самом длинном слове среднюю букву - C++
Для заданной строки вывести на экран все ее слова, убрав при этом в самом длинном слове среднюю букву(или две буквы, если слово имеет...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Alina_1986
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 28
07.01.2012, 19:53 #2
Привет Линка!
Не могла бы мне помочь в решении той же задачи, что была у тебя в прошлом году?
Структура имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене.

Заранее спасибо,
Alina
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
07.01.2012, 21:28 #3
Линка, вот как-то так:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <stdio.h>
 
/**********************************
 * У меня нет clrscr. Своя замена *
 **********************************/
void clrscr( )
{
    int i;
    for( i = 0; i < 25; i++ ) putchar( '\n' );
}
 
struct sport
{
    char name[10];
    char pol[5];
    char god[10];
    float r;
} t1;
 
void input( FILE * ); // создание нового файла
void print( FILE * ); //  просмотр файла
void app( FILE * ); //  добавление в файл
void max_height( ); // поиск спортсмена с максимальным ростом
 
int main( int argc, char * argv[] )
{
    char c;
    int i;
    FILE * tf;
 
    while( i != 0 )
    {
        clrscr();
        puts( "  1 - new file\n"
              "  2 - look file\n"
              "  3 - dobavlenie v file\n"
              "  4 - find max height\n"
              "  0 - vihod" );
        c = getch();
 
        switch( c )
        {
        case '1':
            input( tf );
            break;
        case '2':
            print( tf );
            break;
        case '3':
            app( tf );
            break;
        case '4':
            max_height( );
            break;
        case '0':
            return 0;
        default :
            puts( "neverni rezgim" );
        }
    }
}
 
void input( FILE * tf )
{   char ch;
    tf = fopen( "file1.dat", "wb" ); // открытие бинарного файла для записи
    clrscr();
    printf( "\n Vvod dannih \n" );
 
    do
    {   printf( "\n familiya: " );
        scanf( "%s", t1.name );
        printf( " pol: " );
        scanf( "%s", &t1.pol );
        printf( " god rozgdeniya: " );
        scanf( "%s", &t1.god );
        printf( " rost: " );
        scanf( "%f", &t1.r );
        fwrite( &t1, sizeof( t1 ), 1, tf ); // запись в файл одной структуры t1
        printf( "\n Zakonchit?  y/n  " );
        ch = getch();
    }   while( ch != 'y' );
 
    fclose( tf );
}
 
void print( FILE * tf )
{
    int i;
    clrscr();
    tf = fopen( "file1.dat", "rb" ); // открытие бинарного файла для чтения
    i = 1;
    fread( &t1, sizeof( t1 ), 1, tf ); // чтение из файла одной структуры t1
 
    while( !feof( tf ) )
    {
        printf( "\n  %3d familya %10s pol %5s god %5s rost %6.2f", i, t1.name, t1.pol, t1.god, t1.r );
        fread( &t1, sizeof( t1 ), 1, tf );
        i++;
    }
 
    getch();
}
 
void app( FILE * tf )
{   char ch;
    tf = fopen( "file1.dat", "ab" ); // открытие бинарного файла для добавления
    clrscr();
    printf( "\n  Vvod dannih \n" );
 
    do
    {   printf( "\n familiya: " );
        scanf( "%s", t1.name );
        printf( " pol: " );
        scanf( "%s", &t1.pol );
        printf( " god rojdenia: " );
        scanf( "%s", &t1.god );
        printf( " rost: " );
        scanf( "%f", &t1.r );
        fwrite( &t1, sizeof( t1 ), 1, tf );
        printf( " zakonchit  y/n " );
        ch = getch();
    }
    while( ch != 'y' );
 
    fclose( tf );
}
 
void max_height( )
{
    clrscr();
 
    FILE * fd = fopen( "file1.dat", "rb" );
 
    if( !fd )
       return;
 
    struct sport temp_buff,
                 max;
 
    max.r = 0;
 
    while( fread( &temp_buff, sizeof( struct sport ), 1, fd ) )
    {
        if( temp_buff.r > max.r )
           max = temp_buff;
    }
 
    fclose( fd );
 
    printf( "%s %s %s %6.2f\n", max.name, max.pol, max.god, max.r );
    getch();
}
Добавлено через 1 минуту
Линка, учитывайте, что если я, например, ввиду отрицательный рост спортсмена, будет серьёзная ошибка. Делайте проверку корректности введённых данных.
1
Alina_1986
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 28
07.01.2012, 23:42 #4
Спасибо Вам Линка и talis!!!!!!!!!!!
0
Sanekkk1
0 / 0 / 0
Регистрация: 17.02.2013
Сообщений: 17
07.02.2015, 10:08 #5
talis подскажите а для чего эта строка:
C
1
2
struct sport temp_buff,
                 max;
0
Julia1994
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 29
03.03.2016, 09:48 #6
Цитата Сообщение от talis Посмотреть сообщение
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <stdio.h>
 
/**********************************
 * У меня нет clrscr. Своя замена *
 **********************************/
void clrscr( )
{
    int i;
    for( i = 0; i < 25; i++ ) putchar( '\n' );
}
 
struct sport
{
    char name[10];
    char pol[5];
    char god[10];
    float r;
} t1;
 
void input( FILE * ); // создание нового файла
void print( FILE * ); //  просмотр файла
void app( FILE * ); //  добавление в файл
void max_height( ); // поиск спортсмена с максимальным ростом
 
int main( int argc, char * argv[] )
{
    char c;
    int i;
    FILE * tf;
 
    while( i != 0 )
    {
        clrscr();
        puts( "  1 - new file\n"
              "  2 - look file\n"
              "  3 - dobavlenie v file\n"
              "  4 - find max height\n"
              "  0 - vihod" );
        c = getch();
 
        switch( c )
        {
        case '1':
            input( tf );
            break;
        case '2':
            print( tf );
            break;
        case '3':
            app( tf );
            break;
        case '4':
            max_height( );
            break;
        case '0':
            return 0;
        default :
            puts( "neverni rezgim" );
        }
    }
}
 
void input( FILE * tf )
{   char ch;
    tf = fopen( "file1.dat", "wb" ); // открытие бинарного файла для записи
    clrscr();
    printf( "\n Vvod dannih \n" );
 
    do
    {   printf( "\n familiya: " );
        scanf( "%s", t1.name );
        printf( " pol: " );
        scanf( "%s", &t1.pol );
        printf( " god rozgdeniya: " );
        scanf( "%s", &t1.god );
        printf( " rost: " );
        scanf( "%f", &t1.r );
        fwrite( &t1, sizeof( t1 ), 1, tf ); // запись в файл одной структуры t1
        printf( "\n Zakonchit?  y/n  " );
        ch = getch();
    }   while( ch != 'y' );
 
    fclose( tf );
}
 
void print( FILE * tf )
{
    int i;
    clrscr();
    tf = fopen( "file1.dat", "rb" ); // открытие бинарного файла для чтения
    i = 1;
    fread( &t1, sizeof( t1 ), 1, tf ); // чтение из файла одной структуры t1
 
    while( !feof( tf ) )
    {
        printf( "\n  %3d familya %10s pol %5s god %5s rost %6.2f", i, t1.name, t1.pol, t1.god, t1.r );
        fread( &t1, sizeof( t1 ), 1, tf );
        i++;
    }
 
    getch();
}
 
void app( FILE * tf )
{   char ch;
    tf = fopen( "file1.dat", "ab" ); // открытие бинарного файла для добавления
    clrscr();
    printf( "\n  Vvod dannih \n" );
 
    do
    {   printf( "\n familiya: " );
        scanf( "%s", t1.name );
        printf( " pol: " );
        scanf( "%s", &t1.pol );
        printf( " god rojdenia: " );
        scanf( "%s", &t1.god );
        printf( " rost: " );
        scanf( "%f", &t1.r );
        fwrite( &t1, sizeof( t1 ), 1, tf );
        printf( " zakonchit  y/n " );
        ch = getch();
    }
    while( ch != 'y' );
 
    fclose( tf );
}
 
void max_height( )
{
    clrscr();
 
    FILE * fd = fopen( "file1.dat", "rb" );
 
    if( !fd )
       return;
 
    struct sport temp_buff,
                 max;
 
    max.r = 0;
 
    while( fread( &temp_buff, sizeof( struct sport ), 1, fd ) )
    {
        if( temp_buff.r > max.r )
           max = temp_buff;
    }
 
    fclose( fd );
 
    printf( "%s %s %s %6.2f\n", max.name, max.pol, max.god, max.r );
    getch();
}
А почему мне выдаёт ошибку: [Error] 'getch' was not declared in this scope
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2016, 09:48
Привет! Вот еще темы с ответами:

Вопросы о высоком или кому что пренадлижит в C++ ? - C++
1) Суть вопроса кому принадлежит С++? Кому-то именно? Какие-то лицензии, патенты, крупным и влиятельным компаниям? 2) Почему стандарт...

Структуры: ввести данные о работниках и вывести их данные, отсортированные по алфавиту - C++
Всем привет! Подскажите пожалуйста, что не так с моей функцией proverka? Мне нужно ввести данные о работниках и вывести их данные,...

С помощью методов ввести данные, вывести данные из массива - C++
Создать класс собак (название породы, возраст (больше двух лет), вес, средний вес породы, группа). В функции main создать массив собак трех...

Вывести сведения о самом старшем и о самом младшем абитуриенте - C (СИ)
Сведения об абитуриентах состоят из фамилии, имени, адреса, года рождения и среднего балла аттестата. б) Вывести сведения о самом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.03.2016, 09:48
Ответ Создать тему
Опции темы

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