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

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

Войти
Регистрация
Восстановить пароль
 
Катюша :)
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 36
#1

Создание и обработка файлов в С - C++

08.12.2009, 00:08. Просмотров 583. Ответов 5
Метки нет (Все метки)

Информация об участниках соревнований содержит:
- Ф.И.О. игрока;
- игровой номер;
- возраст;
- рост;
- вес.
Вывести информацию о самом молодом и рослом игроке.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2009, 00:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание и обработка файлов в С (C++):

Создание и обработка файлов в С - C++
Для участия в конкурсе исполнителей необходимо заполнить анкету с данными: -Ф.И.О; -год рождения; -название страны; -класс...

Создание и обработка файлов - C++
1. Составить программу, которая создает файл и записывает в него 5 введённых пользователем целых чисел. Причем каждое число должно...

СОЗДАНИе И ОБРАБОТКа ФАЙЛОВ - C++
Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовой тариф. Рабочее время...

Создание и обработка файлов - C++
В массиве целых чисел M (14) найти среднее арифметическое всех четных элементов, стоящих на четных местах. Вывести на экран массив и...

обработка файлов - C++
товарищи подскажите что не так??? заранее благодарен!!! суть задачи следующая: "Найти максимальный из отрицательных элементов в файле целых...

Обработка файлов - C++
Дан текстовый файл. Каждая строка имеет следующий формат: фамилия пол рост. Создать новый текстовый файл, включающий список мужчин из...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
08.12.2009, 00:22 #2
Катюша ,

Информация об участниках соревнований содержит:

это лучше упаковать в такую структуру:

C++
1
2
3
4
5
6
7
8
struct Info
{
std::string fio;
size_t number;
size_t age;
size_t height;
size_t wight;
};
Вывести информацию о самом молодом и рослом игроке.
просматриваешь в цикле весь массив этих структур и ищешь сначала минимум из поля age, а потом среди найденного - максимум по полю heigth

спасите а то завтра препод просто убьет..................
надо усыпить его бдительность. для этого прими невинный вид и сблизься с преподом до дистанции ближнего боя, после чего проведи резкий хук в челюсть. должно помочь
0
Катюша :)
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 36
08.12.2009, 10:36  [ТС] #3
Вопрос все еще актуален
0
Катюша :)
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 36
08.12.2009, 22:33  [ТС] #4
спасите кто может...........
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.12.2009, 23:25 #5
Вот
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
#include <iostream>
#include <string>
 
struct Info
{
    std::string fio;
    short number;
    short age;
    short height;
    short weight;
};
std::istream& operator>>(std::istream& in, Info &inf)
{
    fflush(stdin);
    std::cout<<"ФИО:\n> ", getline(in, inf.fio, '\n');
    std::cout<<"Номер:\n> ", in>>inf.number;
    std::cout<<"Возраст:\n> ", in>>inf.age;
    std::cout<<"Рост:\n> ", in>>inf.height;
    std::cout<<"Вес:\n> ", in>>inf.weight;
    return in;
}
std::ostream& operator<<(std::ostream& out, Info &inf)
{
    std::cout<<"\nФИО:\n< ", out<<inf.fio;
    std::cout<<"\nНомер:\n< ", out<<inf.number;
    std::cout<<"\nВозраст:\n< ", out<<inf.age;
    std::cout<<"\nРост:\n< ", out<<inf.height;
    std::cout<<"\nВес:\n< ", out<<inf.weight;
    return out;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    short n, i, a(0), h(0);
    std::cout<<"Введите количество игроков:\n> ", std::cin>>n;
    Info* inf = new Info[n];
    for(i = 0; i < n; ++i)
        std::cout<<"Игрок №"<<(i + 1)<<std::endl, std::cin>>inf[i], std::cout<<std::endl;
 
    for(i = 1; i < n; ++i)
    {
        if(inf[i].age < inf[a].age)
            a = i;
        if(inf[i].height > inf[h].height)
            h = i;
    }
 
    std::cout<<"\n\nСамый молодой:\n"<<inf[a]<<std::endl;
    std::cout<<"\n\nСамый рослый:\n"<<inf[h]<<std::endl;
    fflush(stdin);
    std::cin.get();
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
09.12.2009, 00:00 #6
Вот
на С
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define STR_LEN 255
 
typedef struct {
    char name[STR_LEN];
    int number;
    int age;
    int growth;
    int weight;
} Person_t;
 
/* заполняет структуру, возвращает указатель на неё, если удачно, NULL, если нет */
Person_t *newPerson(){
    Person_t* p;
    char *c;
    
    if ( (p = (Person_t*)malloc(sizeof(Person_t))) == NULL ){
        perror("Memory error!\n");
        exit(1);
    }
    
    printf("Name: ");
    if ( !fgets(p->name, STR_LEN, stdin) ){
        free(p);
        return NULL;
    }
    if ( c = strrchr(p->name, '\n') )
        *c = '\0';
    printf("Number: ");
    if ( scanf("%d%*c", &p->number) != 1 ){
        free(p);
        return NULL;
    }
    printf("Age (years): ");
    if ( scanf("%d%*c", &p->age) != 1 ){
        free(p);
        return NULL;
    }
    printf("Growth (cm): ");
    if ( scanf("%d%*c", &p->growth) != 1 ){
        free(p);
        return NULL;
    }
    printf("Weight (kg): ");
    if ( scanf("%d%*c", &p->weight) != 1 ){
        free(p);
        return NULL;
    }
    
    return p;
}
 
/* функция для сравнения по возрасту */
int byAgeAsc(const void *a, const void *b){
    return (*(Person_t**)a)->age - (*(Person_t**)b)->age;
}
 
int main(void){
    Person_t **persons = NULL, *pp = NULL, *pmax = NULL;
    size_t count = 0, i;
    int stop = 0, max_growth, action;
    
    while ( !stop ){
        printf("\nSportsmens in base: %d\n", count);
        printf("1 - add a new one; 2 - show all; 3 - find the youngest and tall; 0 - quit\n> ");
        scanf("%d%*c", &action);
        switch ( action ){
            case 1 :
                if ( (pp = newPerson()) == NULL ){
                    printf("Bad data for new person!\n");
                    break;
                }
                if ( (persons = (Person_t**)realloc(persons, sizeof(Person_t*) * (count + 1))) == NULL ){
                    perror("Memory error!\n");
                    exit(1);
                }
                persons[count++] = pp;
                break;
            case 2 :
                if ( !count ){
                    printf("No sportsmens in base!\n");
                    break;
                }
                printf("Name                     Number  Age     Growth  Weight\n-------------------------------------------------------\n");
                for ( i = 0; i < count; i++ )
                    printf("%-25s%-8d%-8d%-8d%-8d\n", (persons[i])->name, (persons[i])->number, (persons[i])->age, (persons[i])->growth, (persons[i])->weight);
                printf("-------------------------------------------------------\n\n");
                break;
            case 3 :
                if ( !count ){
                    printf("No sportsmens in base!\n");
                    break;
                }
                qsort((void*)persons, count, sizeof(Person_t*), byAgeAsc);
                pmax = *persons;
                max_growth = pmax->growth;
                for ( i = 1; i < count; i++ ){
                    if ( (persons[i])->growth > max_growth ){
                        pmax = persons[i];
                        max_growth = (persons[i])->growth;
                    }
                }
                printf("\nThe youngest and long is:\n");
                printf("Name                     Number  Age     Growth  Weight\n-------------------------------------------------------\n");
                printf("%-25s%-8d%-8d%-8d%-8d\n", pmax->name, pmax->number, pmax->age, pmax->growth, pmax->weight);
                printf("-------------------------------------------------------\n\n");
                break;
            case 0 :
                stop = 1;
                break;
            default :
                printf("Wrong command!\n");
                break;
        }
    }
        
    if ( persons ){
        for ( i = 0; i < count; i++ ){
            if ( persons[i] ){
                free(persons[i]);
                persons[i] = NULL;
            }
        }
        free(persons);
        persons = NULL;
    }
    
    exit(0);
}
. Два момента есть: во-первых если самый древний - он же самый длинный, его же програмка и покажет; а второе - после поиска список отсортирован по возрасту.
Создание и обработка файлов в С
Кстати, а файлы-то тут каким боком?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2009, 00:00
Привет! Вот еще темы с ответами:

c++ обработка файлов - C++
ОЧЕНЬ нужна программа на c++. Из текстового файла А.txt вывести кол-во символов (не учитывая пробел) в файл B.txt Например в файле...

Обработка файлов - C++
Программа рассчитывает и показывает правильный результат через раз. Как я понял прога работает всегда НЕ правильно, возможно мне везет и...

обработка файлов - C++
Записать в файл п произвольных натуральных чисел Переписать в другой файл те элементы, которые кратны К. Вывести полученный файл на печать.

обработка файлов - C++
дан текстовый файл. получить строку, в которой минимальное число слов.


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

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

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