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

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

Восстановить пароль Регистрация
 
Alex1000
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 17
14.01.2012, 13:09     помогите создать класс #1
нужно создать класс который будет организовывать турнирную таблицу.
т.е нам в файле дан список результатов команд : "команда1 - команда2 ,2-1"
а нам нужно исходя из этих результатов упорядочить команды по сумме набраных очков.
за победу дается 3 очка за поражение 0 , а за ничью 1.
P.S "заранее спасибо"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2012, 13:09     помогите создать класс
Посмотрите здесь:

C++ Создать класс Matrix и класс Size
Как создать класс кот может создать general purpose counting objects C++
Помогите пожалуйста создать класс треугольник C++
Помогите создать класс с именем ZARPLATA C++
Создать класс линия и производный класс отрезок C++
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы C++
C++ Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle
C++ Создать класс и класс-потомок с полями

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.01.2012, 19:56     помогите создать класс #2
Формат входящего файла -- записи, разделенные символом ';', строка заканчивается переводом каретки.
Код
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"));
 
};
Yandex
Объявления
14.01.2012, 19:56     помогите создать класс
Ответ Создать тему
Опции темы

Текущее время: 05:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru