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

Структуры (Записи) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить попадание... http://www.cyberforum.ru/cpp-beginners/thread403459.html
Определить попадание произвольной точки в заштрихованную область.
C++ Написать функцию, которая удаляет... Написать функцию, которая удаляет начальные пробелы из строки, полученной в качестве аргумента. http://www.cyberforum.ru/cpp-beginners/thread403458.html
C++ Написать программу, которая вводит по строкам...
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по строкам.
Написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки C++
Написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки.
C++ Составить программу поиска элементов массива http://www.cyberforum.ru/cpp-beginners/thread403454.html
Задан числовой массив А. Составить программу поиска элементов массива, которые являются наибольшими из отрицательных и положительных чисел.
C++ Программу, которая определяет... Написать программу, которая определяет минимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена). подробнее

Показать сообщение отдельно
Lawlietb32
 Аватар для Lawlietb32
14 / 14 / 2
Регистрация: 31.03.2011
Сообщений: 118
10.12.2011, 13:16     Структуры (Записи)
В каком формате хранится файл с результатами чемптоната? При чем тут структуры (можно все найти и вывести без них)? Задание такое?

На вскидку структура:
C++
1
2
3
4
5
6
7
8
9
struct Champ
{
       char *Name;
       int Points;
       int Wins;
       int Draw;
       int Losses;
       char *Goals;
};
Считываем все данные в структуру... Ищем победителей и выводим в файл и в консоль... Определись с файлом чемпионата и если возникнут трудности могу помочь с считкой данных в файл...

Добавлено через 1 час 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
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <time.h>
#include <string.h>
 
struct Champ
{
    char Name[255];
    int Points;
    int Wins;
    int Draw;
    int Losses;
    char Goals[10];
    Champ *head;
    Champ *next;
    
    Champ()
    {
        memset(Name, 0, sizeof(Name));
        Points=-1;
        Wins=-1;
        Draw=-1;
        Losses=-1;
        memset(Goals, 0, sizeof(Goals));
        head=NULL;
        next=NULL;
    }
    
    ~Champ()
    {
        memset(Name, 0, sizeof(Name));
        Points=-1;
        Wins=-1;
        Draw=-1;
        Losses=-1;
        memset(Goals, 0, sizeof(Goals));
        head=NULL;
        next=NULL;
    }
    
    Champ *NewChamp()
    {
        Champ *p;
        p = (Champ*)malloc(sizeof(Champ));
        memset(p->Name, 0, sizeof(p->Name));
        memset(p->Goals, 0, sizeof(p->Goals));
        return p;
    }
    
    Champ *ReadTXT(char *filename)
    {
        FILE *f;
        int i, j, k;
        Champ *current=NULL;
        char buf[255];
        char data[255];
        if (filename!="")
        {
            f = fopen(filename, "r");
            if (!f)
                return NULL;
            
            while(!feof(f))
            {
                memset(buf, 0, sizeof(buf));
                memset(data, 0, sizeof(data));
                fgets(buf, 255, f);
                if (current==NULL)
                {
                    current = NewChamp();
                    this->head = current;
                    current->head = current;
                    current->next = NULL;
                }
                else
                {
                    current->next = NewChamp();
                    current = current->next;
                    current->next = NULL;
                }
                i=0;
                j=0;
                k=0;
                while(buf[i]!='\0')
                {
                    if (buf[i]==' ')
                    {
                        j=0;
                        switch(k)
                        {
                            case 0: memcpy(current->Name, data, strlen(data)); break;
                            case 1: current->Wins = atoi(data); break;
                            case 2: current->Draw = atoi(data); break;
                            case 3: current->Losses = atoi(data); break;
                            case 4: current->Points = atoi(data); break;
                            case 5: memcpy(current->Goals, data, strlen(data)); break;
                        }
                        k++;
                        memset(data, 0, sizeof(data));
                    }
                    else 
                    {
                        data[j] = buf[i];
                        j++;
                    }
                    i++;
                }
            }
            fclose(f);
            return this->head;
        }
        return NULL;
    }
    
    void PrintAll()
    {   
        Champ *h;
        h = this->head;
        while (h)
        {
            cout << "\n\n\nTeam = " << h->Name;
            cout << "\nWins = " << h->Wins;
            cout << "\nDraws = " << h->Draw;
            cout << "\nLosses = " << h->Losses;
            cout << "\nPoints = " << h->Points;
            cout << "\nGoals = " << h->Goals;
            h = h->next;
        }
    }
};
 
 
void main()
{
    clrscr();
    Champ *ch;
    ch = ch->ReadTXT("C:/test.txt");
    ch->PrintAll();
    getch();
}
Вот такой тестовый файл: (слево-направо: команда, победы, ничьи, поражения, очки, забитые-пропущенные голы... обязательно пробелы в конце каждой строки!)
C++
1
2
Team1 10 2 1 30 66-33 
Team2 12 3 4 20 30-50
Осталось тебе только найти победителей и вывести их...
 
Текущее время: 10:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru