0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 8
1

Случайным образом заполнять турнирную таблицу

11.05.2012, 23:41. Показов 2380. Ответов 6
Метки нет (Все метки)

Сижу с курсачом, никак не допру как вписать код... Текст во вложенном файле...
Я так предполагаю, что надо рандомить и уже относительного него заполнять турнирную таблицу... Но что-то никак не соображу, как это все грамотно вписать, чтобы работало... Да и как-то не особо в GUI шарю, ибо объясняли нам C# всего семестр с одной лекцией в две недели...
Миниатюры
Случайным образом заполнять турнирную таблицу  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2012, 23:41
Ответы с готовыми решениями:

Массив данных заполнять случайным образом. Рассмотреть массивы данных из элементов типа long и float. Использо
Исправьте пожалуйста!! Очень срочно! Массив данных заполнять случайным образом. Рассмотреть...

как заполнять массив случайным образом?????????
ПОМОГИТЕ КТО НИКАК НЕ МОГУ РЕШИТЬ ЗАДАЧКУ!!!!!!!! Массив заполнен случайными числами в диапазоне...

Как случайным образом заполнить таблицу (диапазон B2:H16) числами от 3 до 5?
Сабж. Добавлено через 15 минут Dim f As Range, e As Range For i = 2 To 16 Step 1 For j = 2 To...

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

6
659 / 529 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
12.05.2012, 02:45 2
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Игра_скачки
{
    class Program
    {
        static void Main( string[] args )
        {
            int kol_N = -1; // Кол-во наездников
            int tur = -1; // Номер тура
            Random rand = new Random( DateTime.Now.Millisecond ); // Переменная для рандома дистанции
 
            Console.Write( "Введите количевство участников: " );
            kol_N = int.Parse( Console.ReadLine() );
 
            Наездник[] guys = new Наездник[kol_N]; // Массив наездников
            List<int> winer = new List<int>( 10 ); // Лист для хранения победителей в каждом туре
 
            for ( int i = 0; i < guys.Length; i++ )
                guys[i] = new Наездник();
 
            for ( tur = 1; tur <= 5; tur++ )
            {
                for ( int i = 0; i < guys.Length; i++ )
                {
                    guys[i].dist = rand.Next( 1, 5 );
                    guys[i].point += guys[i].dist;
                }
 
                Console.WriteLine( "\nПо результатам тура номер: {0} ------------------", tur );
 
                int j = 1;
                int max_point = 0;
 
                foreach ( Наездник s in guys ) // Вот примерно отсюда начинаються косяки с самого начало почти незнаю как сделать если ничя.
                {
                    if ( max_point == s.dist )
                        winer.Add( j );
 
                    if ( max_point < s.dist )
                    {
                        max_point = s.dist;
                        winer.Clear();
                        winer.Add( j );
                    }
 
                    Console.WriteLine( "Наездник номер: {0} проехал {1} км. и набрал {2} очков.",
                        j, s.dist, s.point );
 
                    j++;
                }
 
                for ( int i = 0; i < winer.Count; i++)
                    Console.WriteLine( "В даннорм туре победил наездник под номером: {0}, набравший {1} баллa",
                        winer[i], guys[winer[i] - 1].point);
            }
 
            int maxPoint = 0;
            int J = 1;
            List<int> absolutlyWinner = new List<int>(10);
 
            foreach ( Наездник s in guys )
            {
                if ( maxPoint == s.dist )
                    absolutlyWinner.Add( J );
 
                if ( maxPoint < s.dist )
                    {
                        maxPoint = s.dist;
                        absolutlyWinner.Clear();
                        absolutlyWinner.Add( J );
                }
 
                J++;
            }
 
            Console.ForegroundColor = ConsoleColor.Green;
 
            for ( int i = 0; i < absolutlyWinner.Count; i++ )
                Console.WriteLine( "Победителем во всех турах становиться наездник под номером: {0}",
                    J - 2 );
 
            Console.ReadKey();
        }
    }
}
Добавлено через 15 секунд
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
using System;
 
class Наездник
{
    private int position = 0;
    private int distance = 0;
    private int _point = 0;
 
    public int pos
    {
        get { return position; }
        set 
        {
            if ( value > 10 && value < 1 )
                throw new IndexOutOfRangeException( "Позиция наездника не может быть менее 1 и более 10" );
            else
                position = value; 
        }
    }
 
    public int dist
    {
        get { return distance; }
        set 
        {
            if ( value > 5 && value < 0 )
                throw new IndexOutOfRangeException( "Пройденное расстояние не может быть менее 1 и более 5" );
            else
                distance = value; 
        }
    }
 
    public int point
    {
        get { return _point; }
        set
        {
            if ( value < 1 )
                throw new IndexOutOfRangeException( "Кол-во начисляемых очков не может быть менее 1" );
            else
                _point = value;
        }
    }
}
1
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 8
12.05.2012, 03:14  [ТС] 3
Ништяк Оперативно то как Утром разгребу, посмотрю что и как и тогда отпишу
0
659 / 529 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
12.05.2012, 11:24 4
Вот полностью работает, предыдущий пост можно даже не смотреть.
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
using System;
 
class Rider
{
    private int position = 0;
    private int distance = 0;
    private int _point = 0;
    private int number = 0;
 
    public int pos
    {
        get { return position; }
        set 
        {
            if ( value > 10 && value < 1 )
                throw new IndexOutOfRangeException( "Позиция наездника не может быть менее 1 и более 10" );
            else
                position = value; 
        }
    }
 
    public int dist
    {
        get { return distance; }
        set 
        {
            if ( value > 5 && value < 0 )
                throw new IndexOutOfRangeException( "Пройденное расстояние не может быть менее 1 и более 5" );
            else
                distance = value; 
        }
    }
 
    public int point
    {
        get { return _point; }
        set
        {
            if ( value < 1 )
                throw new IndexOutOfRangeException( "Кол-во начисляемых очков не может быть менее 1" );
            else
                _point = value;
        }
    }
 
    public int num
    {
        get { return number; }
        set
        {
            if ( value < 1 && value > 10 )
                throw new IndexOutOfRangeException( "Номер наездника может быть в пределах от 1 до 10" );
            else
                number = value;
        }
    }
}
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
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Игра_скачки
{
    class Program
    {
        static List<Rider> winers_of_dist( List<Rider> riders )
        {
            int[] mas = new int[riders.Count];
            List<Rider> res = new List<Rider>(10);
 
            for ( int i = 0; i < riders.Count; i++ )
                mas[i] = riders[i].dist;
 
            int max = mas.Max();
 
            for ( int i = 0; i < mas.Length; i++ )
                if ( riders[i].dist == max )
                    res.Add( riders[i] );
 
            foreach ( Rider rid in res )
                rid.point += 5;
 
            return res;
        }
 
        static List<Rider> winers_of_point( List<Rider> riders )
        {
            int[] mas = new int[riders.Count];
            List<Rider> res = new List<Rider>( 10 );
 
            for ( int i = 0; i < riders.Count; i++ )
                mas[i] = riders[i].point;
 
            int max = mas.Max();
 
            for ( int i = 0; i < mas.Length; i++ )
                if ( riders[i].point == max )
                    res.Add( riders[i] );
 
            return res;
        }
 
        static void swap_color( ConsoleColor color )
        {
            Console.ForegroundColor = color;
        }
 
        static void Main( string[] args )
        {
            //----------------------------------Оболочка----------------------------------------------
            int kol_N = -1; // Кол-во наездников
            int tur = -1; // Номер тура
            Random rand = new Random( DateTime.Now.Millisecond ); // Переменная для рандома дистанции
 
            Console.Write( "Введите количевство участников: " );
            kol_N = int.Parse( Console.ReadLine() );
 
            List<Rider> riders = new List<Rider>( kol_N );
            for ( int i = 0; i < kol_N; i++ )
            {
                riders.Add( new Rider() );
                riders[i].num = i + 1;
            }
            //----------------------------------Оболочка - конец--------------------------------------
 
            for ( tur = 1; tur <= 5; tur++ )
            {
                swap_color( ConsoleColor.Cyan );
                Console.WriteLine( "\nНачался {0} тур, все участники готовы к старту!", tur );
 
                for ( int i = 0; i < riders.Count; i++ )
                    riders[i].dist = rand.Next( 1, 6 );
 
                swap_color( ConsoleColor.White );
                Console.WriteLine( "Все участники прошли дистанцию, ждем результатов..." );
 
                swap_color( ConsoleColor.Red );
                for ( int i = 0; i <riders.Count; i++ )
                {
                    Console.WriteLine( "Участник по номером: {0}, проехал дистанцию: {1} км.",
                        riders[i].num, riders[i].dist );
                }
 
                List<Rider> win = winers_of_dist( riders );
 
                swap_color( ConsoleColor.Green );
                foreach ( Rider rid in win )
                {
                    Console.WriteLine( "В даннорм туре победил наездник с номером: {0}, его общее кол-во баллов = {1}", 
                        rid.num, rid.point );
                }
            }
 
            swap_color( ConsoleColor.Yellow );
            List<Rider> absolutly = winers_of_point( riders );
            Console.WriteLine( "\n********************************" );
            foreach ( Rider rid in absolutly )
                Console.WriteLine( "Турнир закончен, абсолютным победителем становиться участник под номером: {0}.\n" +
                "Он победил в {1} заездах и набрал общее кол-во баллов = {2}.", rid.num, rid.point / 5, rid.point   );
            Console.ReadKey();
        }
    }
}
1
584 / 371 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
12.05.2012, 14:14 5
У меня получилось так:
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
Random random = new Random(1912);
var winners =
    from favorite in 
    (
        from tour in Enumerable.Range(1, 5) // 5 туров
        from favorite in
            (
                from number in Enumerable.Range(1, 10)           // 10 наездников
                let result = 
                new 
                { 
                    Number = number, 
                    Distance = random.Next(1, 6) 
                }                                               // формируем результаты заезда
                group result by result.Distance                 // группируем результаты заезда по пройденому расстоянию
            )
            .OrderByDescending((favorite) => favorite.Key)      // сортируем результаты по расстоянию
            .First()                                            // берем лучшую группу наездников
        select favorite                                         // выбираем наездников с лучшим результатом
    )
    .GroupBy((favorite) => favorite.Number)                     // группируем выигрышные заезды по наездникам
    .GroupBy((favorite) => favorite.Count())                    // группируем по количеству выигранных заездо
    .OrderByDescending((wins) => wins.Key)                      // сортируем
    .First()                                                    // выбираем лучшую группу наездников(победителей)
    let winner = new
    { 
        Number = favorite.Key, 
        Points = favorite.Count() * 5 
    }
    orderby winner.Number                                       // сортируем победителей по номерам
    select winner                                               // выводим итоговые результаты
;
Console.WriteLine("Победители: ");
foreach (var winner in winners)
{
    Console.WriteLine(winner);
}
2
659 / 529 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
12.05.2012, 14:47 6
Я парой удивляюсь как много я еще не знаю в c#, из кода sigmov, я понял только:
C#
1
2
3
4
foreach (var winner in winners)
{
    Console.WriteLine(winner);
}
C#
1
Random random = new Random(1912);
Остальное мне даже не знакомо.
0
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 8
13.05.2012, 12:29  [ТС] 7
Ты не один такой
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2012, 12:29
Помогаю со студенческими работами здесь

Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл
Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл в виде:...

Как сделать способ закраски случайным образом и случайным цветом?
Как сделать способ закраски случайным образом и случайным цветом? т.е чтобы он закрашивал,...

Составить турнирную таблицу
Для исходных данных и результата обработки используется двумерный массив hockey, количество строк...

Нужно написать турнирную таблицу
Ребята, помогите пожалуйста, надо написать программу, в которую надо ввести данные о футбольных...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru