Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 17

помогите создать класс

14.01.2012, 13:09. Показов 1233. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно создать класс который будет организовывать турнирную таблицу.
т.е нам в файле дан список результатов команд : "команда1 - команда2 ,2-1"
а нам нужно исходя из этих результатов упорядочить команды по сумме набраных очков.
за победу дается 3 очка за поражение 0 , а за ничью 1.
P.S "заранее спасибо"
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2012, 13:09
Ответы с готовыми решениями:

Помогите создать класс с именем ZARPLATA
1.Создать класс с именем ZARPLATA, содержащий следующие поля: •табельный номер; •фамилия И.О. работника; •оплата за один час...

Помогите пожалуйста создать класс треугольник
Добрый день, помогите пожалуйста создать класс треугольник, члены класса - длины трех сторон, предусмотреть в классе методы проверки...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

1
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
14.01.2012, 19:56
Лучший ответ Сообщение было отмечено Alex1000 как решение

Решение

Формат входящего файла -- записи, разделенные символом ';', строка заканчивается переводом каретки.
Code
1
2
3
team one;team two;2;1;
team three;team one;1;0;
team three;team two;1;1;
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
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <map>
#include <vector>
#include <algorithm>
#include <iterator>
 
class Team {
 public:
  Team(const std::string &name) : name_(name) {}
  const std::string &getName() const { return name_; }
 private:
  std::string name_;
};
 
class GameResult {
 public:
  GameResult()
    : a_(""), b_(""), scoreA_(0), scoreB_(0) {}
  GameResult(const Team &a, const Team &b, int scoreA, int scoreB)
    : a_(a), b_(b), scoreA_(scoreA), scoreB_(scoreB) {}
  const Team &getTeamA() const { return a_; }
  const Team &getTeamB() const { return b_; }
  int getScoreA() const { return scoreA_; }
  int getScoreB() const { return scoreB_; }
  bool isValid() const {
    return getTeamA().getName().size() > 0 && getTeamB().getName().size() > 0;
  }
  bool isDraw() const { return scoreA_ == scoreB_; }
  const Team &getWinner() const { return (scoreA_ >= scoreB_) ? a_ : b_; }
  friend std::istream &operator>>(std::istream &stream, GameResult &gameResult) {
    std::string line;
    getline(stream, line);
    std::string buffer;
    std::istringstream lineBuffer(line);
    getline(lineBuffer, buffer, ';');
    gameResult.a_ = Team(buffer);
    getline(lineBuffer, buffer, ';');
    gameResult.b_ = Team(buffer);
    getline(lineBuffer, buffer, ';');
    std::stringstream(buffer) >> gameResult.scoreA_;
    getline(lineBuffer, buffer, ';');
    std::stringstream(buffer) >> gameResult.scoreB_;
    return stream;
  }
 private:
  Team a_;
  Team b_;
  int scoreA_;
  int scoreB_;
};
 
bool operator<(const Team &a, const Team &b) {
  return a.getName() < b.getName();
}
 
std::ostream &operator<<(std::ostream &stream, const Team &team) {
  return stream << team.getName();
}
 
std::ostream &operator<<(std::ostream &stream, const GameResult &result) {
  return stream << result.getTeamA() << " - " << result.getTeamB() <<
    " : " << result.getScoreA() << " - " << result.getScoreB();
}
 
std::ostream &operator<<(std::ostream &stream,
  const std::pair<Team, int> &result) {
  return stream << result.first << ": " << result.second;
}
 
bool operator<(const std::pair<Team, int> &a, const std::pair<Team, int> &b) {
  return a.second < b.second;
}
 
int main(int argc, char *argv[]) {
  std::ifstream file("имя файла с данными");
  std::map<Team, int> teamsPlayed;
 
  while (file.good()) {
    GameResult result;
    file >> result;
    if (result.isValid()) {
      std::cout << result << std::endl;
      if (result.isDraw()) {
        teamsPlayed[result.getTeamA()] += 1;
        teamsPlayed[result.getTeamB()] += 1;
      } else {
        teamsPlayed[result.getWinner()] += 3;
      }
    }
  }
  
  std::vector<std::pair<Team, int> > results;
  std::copy(teamsPlayed.begin(), teamsPlayed.end(),
    std::back_inserter(results));
  std::sort(results.begin(), results.end());
  std::copy(results.begin(), results.end(),
    std::ostream_iterator<std::pair<Team, int> >(std::cout, "\n"));
 
};
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2012, 19:56
Помогаю со студенческими работами здесь

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать класс - данные - абстрактный базовый класс. Создать производные классы
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Создать класс Элемент списка (Node), а затем класс Список (List)
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

Создать класс Point и производный класс ColoredPoint (цветная точка)
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Создать класс Pair(пара чисел) и класс-наследник Fraction
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1&gt;first.p2) или...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru