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

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

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

Author24 — интернет-сервис помощи студентам
нужно создать класс который будет организовывать турнирную таблицу.
т.е нам в файле дан список результатов команд : "команда1 - команда2 ,2-1"
а нам нужно исходя из этих результатов упорядочить команды по сумме набраных очков.
за победу дается 3 очка за поражение 0 , а за ничью 1.
P.S "заранее спасибо"
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2012, 13:09
Ответы с готовыми решениями:

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

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

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

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

1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
14.01.2012, 19:56 2
Лучший ответ Сообщение было отмечено Alex1000 как решение

Решение

Формат входящего файла -- записи, разделенные символом ';', строка заканчивается переводом каретки.
Код
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
14.01.2012, 19:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2012, 19:56
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru