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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2338 / 1053 / 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
Регистрация: 29.11.2009
Сообщений: 36
08.12.2009, 10:36  [ТС]     Создание и обработка файлов в С #3
Вопрос все еще актуален
Катюша :)
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 36
08.12.2009, 22:33  [ТС]     Создание и обработка файлов в С #4
спасите кто может...........
M128K145
Эксперт С++
8283 / 3502 / 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;
}
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
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);
}
. Два момента есть: во-первых если самый древний - он же самый длинный, его же програмка и покажет; а второе - после поиска список отсортирован по возрасту.
Создание и обработка файлов в С
Кстати, а файлы-то тут каким боком?
Yandex
Объявления
09.12.2009, 00:00     Создание и обработка файлов в С
Ответ Создать тему
Опции темы

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