Софтуерно Инженерство
Loading...
polinausheva123 avatar polinausheva123 2 Точки

C++ Задача

Да се състави компютърна програма за обслужване на национално състезание по
лека атлетика за мъже и жени, в което участват до 100 състезатели от различни отбори.
Всички състезатели са родени преди 2000 г. За целта:

  1. За всеки участник да се въведе следната информация:
    • ЕГН (десетцифрен единен граждански номер);
    • име (знаков низ до 40 знака, състоящ се от две или повече подимена, разделени с точно един интервал);
    • име на отбор (знаков низ до 20 знака);
    • дисциплина (знаков низ до 25 знака);
    • място в класирането по съответната дисциплина (цяло число).
  2. Да се изведе списък на всички състезатели, съдържащ последно име на участник, име на отбор, дисциплина и място в класирането. Списъкът трябва да бъде подреден по име на отбор (в азбучен ред), а за един и същи отбор по място в класирането(възходящо). Полетата да бъдат разделени със запетая и един интервал. Например:
    Николов, Спартак-Плевен, хвърляне на копие, 1

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Здравейте, това е условието, ако някой може да ми го реши, за да видя как става. Мога да направя само това до този момент.

https://pastebin.com/Zh1xa1sr

0
Programming Basics
kolioi avatar kolioi 612 Точки

Така изглежда функцията main(). Използването на set  с функция за сортиране дефинирана от потребителя е малко tricky. Няма ограничение за броя на въведените атлети, но може да се добави.

int main()
{
	set<Athlete, Athlete::Comparator> athlete_list;

	do
	{
		Athlete athlete;
		cin >> athlete;
		athlete_list.insert(athlete);
		cout << "Press Enter for next athlete or Ctrl+z, Enter to finish ";
		cin.ignore();
	} while (cin.get() != EOF);

	for (const auto& athlete : athlete_list)
		cout << athlete;

	return 0;
}

Целия код https://pastebin.com/6ktg1byc

П.П. И една "олекотена" версия, в която се използва qsort() https://pastebin.com/ZxFbmm7M

0
22/06/2018 15:42:30