Помощь - Поиск - Пользователи - Календарь
Полная версия: разработка программы Шахматный турнир
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Насяня
Помогите пожалуйста с программой....у самой никак не выходит(( Если честно не очень у меня и получаеться писать их...а сдавать в Пн....эх((

Разработать программу,обработки итоговой таблицы шахматного турнира.В программе предусмотреть ввод исходных данных(фамилии шахматистов и результаты их встреч друг с другом).Турнир проходит в 1 круг.Обработка должна включать:
-формирование итоговой таблицы турнира с расстановкой участников,согласно занятым местам с подсчётом набранных очков(за победу присуждается -1очко,за ничьюю-0,5,за поражение-0очков);
-определение и вывод фамилии участника (участников),одержавшего наибольшее число побед завершившего больше всех партий в ничью,потерпевшего больше всех поражений.

есть алгоритмы

Добавлено через 7 мин.
вот ещё...
klem4
Класс! Особенно "алгоритмы". Язык-то какой, brainfuck ?
Насяня
и..вот

Добавлено через 3 мин.
язык С++
klem4
в общих чертах:

#include <iostream>
#include <vector>

using namespace std;


struct TableRecord
{

string name;

int wins;
int draws;
int loses;

TableRecord()
{
wins = 0;
draws = 0;
loses = 0;
}

float GetTotalPoints()
{
return wins + static_cast<float>(draws) * 0.5;
};
};

class PlayersList
{
private:
vector<TableRecord> list;
public:
PlayersList();
~PlayersList();

void FillPlayersInfo(int count);
void PrintPlayersList();

void SortByTotalScores();
void GenerateScoresInformation();

string GetMaxWinsName();
string GetMaxDrawsName();
};

PlayersList :: PlayersList()
{
}

PlayersList :: ~PlayersList()
{
list.clear();
}

void PlayersList :: FillPlayersInfo(int count)
{
TableRecord temp;

for (int i = 0; i < count; i++)
{
cout << "Name of player #" << i + 1 << ": ";
cin >> temp.name;
list.push_back(temp);
}
}

void PlayersList :: PrintPlayersList()
{
cout << endl;

for (unsigned i = 0; i < list.size(); i++)
{
cout << i + 1 << '\t' << list[i].name << '\t' << list[i].GetTotalPoints() <<endl;
}

cout << endl;
}

void PlayersList :: SortByTotalScores()
{
for (unsigned i = list.size() - 1; i > 0; i--)
for (unsigned j = 0; j < i; j++)
if (list[j].GetTotalPoints() < list[j + 1].GetTotalPoints())
{
TableRecord temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}

void PlayersList :: GenerateScoresInformation()
{
srand(time(NULL));

for (unsigned i = 0; i < list.size() - 1; i++)
for (unsigned j = i + 1; j < list.size(); j++)
{
int game_result = -1 + rand() % 3;
/*
-1: first wins
0: draw
1: second wins
*/

string strResult = "";

switch(game_result)
{
case -1:
{
list[i].wins++;
list[j].loses++;
strResult = " has won at ";
};
break;

case 0:
{
list[i].draws++;
list[j].draws++;
strResult = " has played a drawn game with ";
};
break;
case 1:
{
list[i].loses++;
list[j].wins++;
strResult = " has lost ";
};
break;
}

cout << endl << list[i].name << strResult << list[j].name << endl;
}
}

string PlayersList :: GetMaxWinsName()
{
int max_wins_id = 0;
for (unsigned i = 1; i < list.size(); i++)
max_wins_id = list[i].wins > list[max_wins_id].wins ? i : max_wins_id;
return list[max_wins_id].name;
}

string PlayersList :: GetMaxDrawsName()
{
int max_draws_id = 0;
for (unsigned i = 1; i < list.size(); i++)
max_draws_id = list[i].draws > list[max_draws_id].draws ? i : max_draws_id;
return list[max_draws_id].name;
}

int main()
{
PlayersList *plist = new PlayersList();
(*plist).FillPlayersInfo(4);
(*plist).GenerateScoresInformation();
(*plist).SortByTotalScores();
(*plist).PrintPlayersList();

cout << "Player with maximum wins: " << (*plist).GetMaxWinsName() << endl;
cout << "Player with maximum draws: " << (*plist).GetMaxDrawsName() << endl;

delete plist;
return 0;
}
Насяня
спасибо огромное клемыч.....а на каком это языке?
smile.gif
klem4
А на какой похоже ? Ты же сказала что с++, вот это он и есть.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.